Example #1
0
/*
 * @brief sdcard detect callback.
 * @param present:
 *        @arg present 1-card insert, 0-card remove
 * @retval  none
 */
void sdcard_detect_callback(uint32_t present)
{
	int ret;
	uint16_t subtype;

	FS_CTRL_LOCK();

	if (!fs_ctrl.mount_auto) {
		FS_CTRL_UNLOCK();
		return;
	}

	if (present) {
		FS_INFO("card insert\n");
		subtype = FS_CTRL_MSG_SDCARD_INSERT;
	} else {
		FS_INFO("card remove\n");
		subtype = FS_CTRL_MSG_SDCARD_REMOVE;
	}

	ret = sys_event_send(CTRL_MSG_TYPE_SDCARD, subtype, 0, 0);
	if (ret != 0) {
		FS_ERROR("send fail\n");
	}

	FS_CTRL_UNLOCK();
}
Example #2
0
static void fs_ctrl_msg_process(uint32_t event, uint32_t data, void *arg)
{
	int ret;
	uint16_t msg = FS_CTRL_MSG_NULL;
	uint32_t param = 0;

	FS_CTRL_LOCK();

	switch (EVENT_SUBTYPE(event)) {
		case FS_CTRL_MSG_SDCARD_INSERT:
			if (fs_ctrl_mount(FS_MNT_DEV_TYPE_SDCARD, 0) < 0) {
				param = FS_MNT_MSG_PARAM(FS_MNT_DEV_TYPE_SDCARD,
				                         0, FS_MNT_STATUS_MOUNT_FAIL);
			} else {
				param = FS_MNT_MSG_PARAM(FS_MNT_DEV_TYPE_SDCARD,
				                         0, FS_MNT_STATUS_MOUNT_OK);
			}
			msg = FS_CTRL_MSG_FS_MNT;
			break;
		case FS_CTRL_MSG_SDCARD_REMOVE:
			ret = fs_ctrl_unmount(FS_MNT_DEV_TYPE_SDCARD, 0);
			if (ret == 0) {
				msg  = FS_CTRL_MSG_FS_MNT;
				param = FS_MNT_MSG_PARAM(FS_MNT_DEV_TYPE_SDCARD,
				                         0, FS_MNT_STATUS_UNMOUNT);
			}
			break;
		default:
			break;
	}

	if (msg != FS_CTRL_MSG_NULL) {
		ret = sys_event_send(CTRL_MSG_TYPE_FS, msg, param, 0);
		if (ret != 0)
			FS_ERROR("send fail\n");
	}

	FS_CTRL_UNLOCK();
}
Example #3
0
int
sys_send_event(int pid, int event, unsigned int timeout) {
    return sys_event_send( pid, event, timeout);
}