Exemple #1
0
//----------------------------------------
int file_open(const char* file, int flags)
{
    VMUINT fs_mode;

    if(flags & O_CREAT) {
        fs_mode = VM_FS_MODE_CREATE_ALWAYS_WRITE;
    } else if((flags & O_RDWR) || (flags & O_WRONLY)) {
        fs_mode = VM_FS_MODE_WRITE;
    } else {
        fs_mode = VM_FS_MODE_READ;
    }

    if(flags & O_APPEND) {
        fs_mode |= VM_FS_MODE_APPEND;
    }

    g_fcall_message.message_id = CCALL_MESSAGE_FOPEN;
    g_CCparams.cpar1 = (char *)file;
    g_CCparams.ipar1 = fs_mode;
    vm_thread_send_message(g_main_handle, &g_fcall_message);
    // wait for call to finish...
    vm_signal_wait(g_shell_signal);

    return g_shell_result;
}
Exemple #2
0
//---------------------
int file_size(int file)
{
    g_fcall_message.message_id = CCALL_MESSAGE_FSIZE;
    g_CCparams.ipar1 = file;
    vm_thread_send_message(g_main_handle, &g_fcall_message);
    // wait for call to finish...
    vm_signal_wait(g_shell_signal);

    return g_shell_result;
}
Exemple #3
0
int LWiFiClass::disconnect(void)
{
  LWiFiDisconnectContext context;

  LTask.remoteCall(&wifiDisconnect, &context);

  vm_signal_wait(context.sigDisconnect);

  return 0;
}
Exemple #4
0
//-----------------------------------
int file_exists(const char *filename)
{
    g_fcall_message.message_id = CCALL_MESSAGE_FCHECK;
    g_CCparams.cpar1 = (char *)filename;
    g_CCparams.ipar1 = VM_FS_MODE_READ;
    vm_thread_send_message(g_main_handle, &g_fcall_message);
    // wait for call to finish...
    vm_signal_wait(g_shell_signal);

    return g_shell_result;
}
Exemple #5
0
//---------------------------------------------
int file_seek(int file, int offset, int whence)
{
    g_fcall_message.message_id = CCALL_MESSAGE_FSEEK;
    g_CCparams.ipar1 = file;
    g_CCparams.ipar2 = offset;
    g_CCparams.ipar3 = whence + 1;
    vm_thread_send_message(g_main_handle, &g_fcall_message);
    // wait for call to finish...
    vm_signal_wait(g_shell_signal);

    return g_shell_result;
}
Exemple #6
0
//------------------------------------------
int file_write(int file, char* ptr, int len)
{
    g_fcall_message.message_id = CCALL_MESSAGE_FWRITE;
    g_CCparams.ipar1 = file;
    g_CCparams.ipar2 = len;
    g_CCparams.cpar1 = ptr;
    vm_thread_send_message(g_main_handle, &g_fcall_message);
    // wait for call to finish...
    vm_signal_wait(g_shell_signal);

    return g_shell_result;
}
int retarget_getc(void)
{
    char ch;
    if (retarget_rx_buffer_head == retarget_rx_buffer_tail)
    {
        vm_signal_wait(retarget_rx_signal_id);
    }


    ch = retarget_rx_buffer[retarget_rx_buffer_tail % SERIAL_BUFFER_SIZE];
    retarget_rx_buffer_tail++;

    return ch;
}
size_t LBTServerClass::write(const uint8_t data)
{
  LBTServerReadWriteContext c;
	c.buf = (void*)&data;
	c.len = 1;

	if (!m_post_write)
	{
        APP_LOG((char*)"LBTServerClass::write wait");
        vm_signal_wait(m_signal_write); // wait for VM_SRV_SPP_EVENT_READY_TO_WRITE
        APP_LOG((char*)"LBTServerClass::write wait ok");
    }
    vm_signal_clean(m_signal_write);
    m_post_write = 0;
    
    remoteCall(btServerWrite, (void*)&c);
    m_post_write = 1;

	return c.lenProcessed;
}