Lines Matching refs:queue
39 static void *hw_qpageit_get_inc(struct hw_queue *queue) in hw_qpageit_get_inc() argument
41 void *retvalue = hw_qeit_get(queue); in hw_qpageit_get_inc()
43 queue->current_q_offset += queue->pagesize; in hw_qpageit_get_inc()
44 if (queue->current_q_offset > queue->queue_length) { in hw_qpageit_get_inc()
45 queue->current_q_offset -= queue->pagesize; in hw_qpageit_get_inc()
54 static int hw_queue_ctor(struct hw_queue *queue, const u32 nr_of_pages, in hw_queue_ctor() argument
66 queue->queue_length = nr_of_pages * pagesize; in hw_queue_ctor()
67 queue->queue_pages = kmalloc_array(nr_of_pages, sizeof(void *), in hw_queue_ctor()
69 if (!queue->queue_pages) in hw_queue_ctor()
83 (queue->queue_pages)[i] = (struct ehea_page *)kpage; in hw_queue_ctor()
89 queue->current_q_offset = 0; in hw_queue_ctor()
90 queue->qe_size = qe_size; in hw_queue_ctor()
91 queue->pagesize = pagesize; in hw_queue_ctor()
92 queue->toggle_state = 1; in hw_queue_ctor()
97 if (!(queue->queue_pages)[i]) in hw_queue_ctor()
99 free_page((unsigned long)(queue->queue_pages)[i]); in hw_queue_ctor()
104 static void hw_queue_dtor(struct hw_queue *queue) in hw_queue_dtor() argument
109 if (!queue || !queue->queue_pages) in hw_queue_dtor()
112 pages_per_kpage = PAGE_SIZE / queue->pagesize; in hw_queue_dtor()
114 nr_pages = queue->queue_length / queue->pagesize; in hw_queue_dtor()
117 free_page((unsigned long)(queue->queue_pages)[i]); in hw_queue_dtor()
119 kfree(queue->queue_pages); in hw_queue_dtor()