3 * \brief Inter-Module Communication
8 typedef void udi_channel_anchor_call_t(udi_cb_t *gcb, udi_channel_t anchored_channel);
9 typedef void udi_channel_spawn_call_t(udi_cb_t *gcb, udi_channel_t new_channel);
11 typedef struct udi_channel_event_cb_s udi_channel_event_cb_t;
13 typedef void udi_channel_event_ind_op_t(udi_channel_event_cb_t *cb);
16 * \brief Anchors a channel end to the current region
18 extern void udi_channel_anchor(
19 udi_channel_anchor_call_t *callback, udi_cb_t *gcb,
20 udi_channel_t channel, udi_index_t ops_idx, void *channel_context
24 * \brief Created a new channel between two regions
26 extern void udi_channel_spawn(
27 udi_channel_spawn_call_t *callback,
29 udi_channel_t channel,
30 udi_index_t spawn_idx,
36 * \brief Attaches a new context pointer to the current channel
38 extern void udi_channel_set_context(
39 udi_channel_t target_channel,
45 extern void udi_channel_op_abort(
46 udi_channel_t target_channel,
51 * \brief Closes an open channel
53 extern void udi_channel_close(udi_channel_t channel);
56 * \brief Describes a channel event
58 struct udi_channel_event_cb_s
68 udi_ubit8_t parent_ID;
69 udi_buf_path_t *path_handles;
74 /* Channel event types */
75 #define UDI_CHANNEL_CLOSED 0
76 #define UDI_CHANNEL_BOUND 1
77 #define UDI_CHANNEL_OP_ABORTED 2
80 * \brief Proxy function
82 extern void udi_channel_event_ind(udi_channel_event_cb_t *cb);
85 * \brief Called when channel event is completed
87 extern void udi_channel_event_complete(
88 udi_channel_event_cb_t *cb, udi_status_t status