int cfw_register_service(T_QUEUE queue, service_t * svc, handle_msg_cb_t handle_message, void * data) { uint16_t port_id = port_alloc(queue); cfw_port_set_handler(port_id, handle_message, data); svc->port_id = port_id; return _cfw_register_service(svc); }
cfw_client_t *cfw_client_init(void *queue, handle_msg_cb_t cb, void *cb_data) { _cfw_client_t *client = (_cfw_client_t *)balloc(sizeof(*client), NULL); client->handle_msg = cb; client->data = cb_data; list_init(&client->helper_list); client->client_port_id = port_alloc(queue); cfw_port_set_handler(client->client_port_id, client_handle_message, client); return (cfw_client_t *)client; }