Lines Matching defs:channel

37  * vxge_hal_channel_allocate - Allocate memory for channel
40 * @type: Type of channel
45 * This function allocates required memory for the channel and various arrays
46 * in the channel
58 __hal_channel_t *channel;
87 channel = (__hal_channel_t *) vxge_os_malloc(hldev->pdev, size);
88 if (channel == NULL) {
94 vxge_os_memzero(channel, size);
95 vxge_list_init(&channel->item);
97 channel->pdev = hldev->pdev;
98 channel->type = type;
99 channel->devh = devh;
100 channel->vph = vph;
102 channel->userdata = userdata;
103 channel->per_dtr_space = per_dtr_space;
105 channel->length = length;
107 channel->dtr_arr = (__hal_dtr_item_t *) vxge_os_malloc(hldev->pdev,
109 if (channel->dtr_arr == NULL) {
110 vxge_hal_channel_free(channel);
116 vxge_os_memzero(channel->dtr_arr, sizeof(__hal_dtr_item_t)*length);
118 channel->compl_index = 0;
119 channel->reserve_index = 0;
122 channel->dtr_arr[i].state = VXGE_HAL_CHANNEL_DTR_FREE;
126 return (channel);
130 * __hal_channel_free - Free memory allocated for channel
131 * @channel: channel to be freed
133 * This function deallocates memory from the channel and various arrays
134 * in the channel
138 __hal_channel_t *channel)
143 vxge_assert(channel != NULL);
145 hldev = (vxge_hal_device_t *) channel->devh;
150 vxge_hal_trace_log_channel("channel = 0x"VXGE_OS_STXFMT,
151 (ptr_t) channel);
153 vxge_assert(channel->pdev);
155 if (channel->dtr_arr) {
156 vxge_os_free(channel->pdev, channel->dtr_arr,
157 sizeof(__hal_dtr_item_t)*channel->length);
158 channel->dtr_arr = NULL;
161 switch (channel->type) {
172 vxge_os_free(channel->pdev, channel, size);
179 * __hal_channel_initialize - Initialize a channel
180 * @channel: channel to be initialized
182 * This function initializes a channel by properly
187 __hal_channel_t *channel)
192 vxge_assert(channel != NULL);
194 hldev = (vxge_hal_device_t *) channel->devh;
196 ((__hal_vpath_handle_t *) channel->vph)->vpath;
203 vxge_hal_trace_log_channel("channel = 0x"VXGE_OS_STXFMT,
204 (ptr_t) channel);
206 switch (channel->type) {
208 vpath->fifoh = (vxge_hal_fifo_h) channel;
209 channel->stats =
210 &((__hal_fifo_t *) channel)->stats->common_stats;
213 vpath->ringh = (vxge_hal_ring_h) channel;
214 channel->stats =
215 &((__hal_ring_t *) channel)->stats->common_stats;
223 channel->is_initd = 1;
231 * __hal_channel_reset - Resets a channel
232 * @channel: channel to be reset
234 * This function resets a channel by properly setting the various references
238 __hal_channel_t *channel)
243 vxge_assert(channel != NULL);
245 hldev = (__hal_device_t *) channel->devh;
250 vxge_hal_trace_log_channel("channel = 0x"VXGE_OS_STXFMT,
251 (ptr_t) channel);
253 vxge_assert(channel->pdev);
255 channel->compl_index = 0;
256 channel->reserve_index = 0;
258 for (i = 0; i < channel->length; i++) {
259 channel->dtr_arr[i].state =
270 * vxge_hal_channel_terminate - Deinitializes a channel
271 * @channel: channel to be deinitialized
273 * This function deinitializes a channel by properly
278 __hal_channel_t *channel)
283 vxge_assert(channel != NULL);
285 if (!channel || !channel->is_initd)
288 hldev = (__hal_device_t *) channel->devh;
290 ((__hal_vpath_handle_t *) channel->vph)->vpath;
297 vxge_hal_trace_log_channel("channel = 0x"VXGE_OS_STXFMT,
298 (ptr_t) channel);
300 switch (channel->type) {
308 vxge_list_remove(&channel->item);
312 vxge_list_remove(&channel->item);
316 vxge_list_remove(&channel->item);
353 __hal_channel_t * channel)
355 __hal_device_t *hldev = (__hal_device_t *) channel->devh;
357 vxge_assert(channel != NULL);
362 vxge_hal_trace_log_channel("channel = 0x"VXGE_OS_STXFMT,
363 (ptr_t) channel);
371 vxge_list_insert_before(&channel->item, &hldev->pending_channel_list);
379 __hal_channel_process_pending_list(channel->devh);
390 __hal_channel_t *channel;
408 channel = (__hal_channel_t *)
411 if (channel != NULL)
412 vxge_list_remove(&channel->item);
420 if (channel == NULL) {
426 switch (channel->type) {
440 vxge_list_insert(&channel->item,