Exemplo n.º 1
0
static void cleanup_services(void)
{
	int i;

	DBG("");

	for (i = HAL_SERVICE_ID_BLUETOOTH; i < HAL_SERVICE_ID_MAX; i++) {
		if (!services[i])
			continue;

		switch (i) {
		case HAL_SERVICE_ID_BLUETOOTH:
			bt_bluetooth_unregister();
			break;
		case HAL_SERVICE_ID_SOCK:
			bt_socket_unregister();
			break;
		case HAL_SERVICE_ID_HIDHOST:
			bt_hid_unregister();
			break;
		case HAL_SERVICE_ID_A2DP:
			bt_a2dp_unregister();
			break;
		case HAL_SERVICE_ID_PAN:
			bt_pan_unregister();
			break;
		}

		services[i] = false;
	}
}
Exemplo n.º 2
0
static void service_unregister(const void *buf, uint16_t len)
{
	const struct hal_cmd_unregister_module *m = buf;
	uint8_t status;

	if (m->service_id > HAL_SERVICE_ID_MAX || !services[m->service_id]) {
		status = HAL_STATUS_FAILED;
		goto failed;
	}

	switch (m->service_id) {
	case HAL_SERVICE_ID_BLUETOOTH:
		bt_bluetooth_unregister();
		break;
	case HAL_SERVICE_ID_SOCKET:
		bt_socket_unregister();
		break;
	case HAL_SERVICE_ID_HIDHOST:
		bt_hid_unregister();
		break;
	case HAL_SERVICE_ID_A2DP:
		bt_a2dp_unregister();
		break;
	case HAL_SERVICE_ID_PAN:
		bt_pan_unregister();
		break;
	case HAL_SERVICE_ID_AVRCP:
		bt_avrcp_unregister();
		break;
	case HAL_SERVICE_ID_HANDSFREE:
		bt_handsfree_unregister();
		break;
	case HAL_SERVICE_ID_GATT:
		bt_gatt_unregister();
		break;
	case HAL_SERVICE_ID_HEALTH:
		bt_health_unregister();
		break;
	default:
		/*
		 * This would indicate bug in HAL, as unregister should not be
		 * called in init failed
		 */
		DBG("service %u not supported", m->service_id);
		status = HAL_STATUS_FAILED;
		goto failed;
	}

	services[m->service_id] = false;

	status = HAL_STATUS_SUCCESS;

	info("Service ID=%u unregistered", m->service_id);

failed:
	ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_CORE, HAL_OP_UNREGISTER_MODULE,
								status);
}
static bool unregister_service(uint8_t id)
{
	if (id > HAL_SERVICE_ID_MAX || !services[id])
		return false;

	switch (id) {
	case HAL_SERVICE_ID_BLUETOOTH:
		bt_bluetooth_unregister();
		break;
	case HAL_SERVICE_ID_SOCKET:
		bt_socket_unregister();
		break;
	case HAL_SERVICE_ID_HIDHOST:
		bt_hid_unregister();
		break;
	case HAL_SERVICE_ID_A2DP:
		bt_a2dp_unregister();
		break;
	case HAL_SERVICE_ID_PAN:
		bt_pan_unregister();
		break;
	case HAL_SERVICE_ID_AVRCP:
		bt_avrcp_unregister();
		break;
	case HAL_SERVICE_ID_HANDSFREE:
		bt_handsfree_unregister();
		break;
	case HAL_SERVICE_ID_GATT:
		bt_gatt_unregister();
		break;
	case HAL_SERVICE_ID_HEALTH:
		bt_health_unregister();
		break;
	case HAL_SERVICE_ID_HANDSFREE_CLIENT:
		bt_hf_client_unregister();
		break;
	case HAL_SERVICE_ID_MAP_CLIENT:
		bt_map_client_unregister();
		break;
	default:
		DBG("service %u not supported", id);
		return false;
	}

	services[id] = false;

	return true;
}
Exemplo n.º 4
0
static void cleanup_services(void)
{
	int i;

	DBG("");

	for (i = HAL_SERVICE_ID_BLUETOOTH; i < HAL_SERVICE_ID_MAX + 1; i++) {
		if (!services[i])
			continue;

		switch (i) {
		case HAL_SERVICE_ID_BLUETOOTH:
			bt_bluetooth_unregister();
			break;
		case HAL_SERVICE_ID_SOCKET:
			bt_socket_unregister();
			break;
		case HAL_SERVICE_ID_HIDHOST:
			bt_hid_unregister();
			break;
		case HAL_SERVICE_ID_A2DP:
			bt_a2dp_unregister();
			break;
		case HAL_SERVICE_ID_AVRCP:
			bt_avrcp_unregister();
			break;
		case HAL_SERVICE_ID_PAN:
			bt_pan_unregister();
			break;
		case HAL_SERVICE_ID_HANDSFREE:
			bt_handsfree_unregister();
			break;
		case HAL_SERVICE_ID_GATT:
			bt_gatt_unregister();
			break;
		case HAL_SERVICE_ID_HEALTH:
			bt_health_unregister();
			break;
		}

		services[i] = false;
	}
}