• Home
  • Raw
  • Download

Lines Matching refs:queue

93 static inline void *ipz_qeit_calc(struct ipz_queue *queue, u64 q_offset)  in ipz_qeit_calc()  argument
96 if (q_offset >= queue->queue_length) in ipz_qeit_calc()
98 current_page = (queue->queue_pages)[q_offset >> EHCA_PAGESHIFT]; in ipz_qeit_calc()
106 static inline void *ipz_qeit_get(struct ipz_queue *queue) in ipz_qeit_get() argument
108 return ipz_qeit_calc(queue, queue->current_q_offset); in ipz_qeit_get()
118 void *ipz_qpageit_get_inc(struct ipz_queue *queue);
126 static inline void *ipz_qeit_get_inc(struct ipz_queue *queue) in ipz_qeit_get_inc() argument
128 void *ret = ipz_qeit_get(queue); in ipz_qeit_get_inc()
129 queue->current_q_offset += queue->qe_size; in ipz_qeit_get_inc()
130 if (queue->current_q_offset >= queue->queue_length) { in ipz_qeit_get_inc()
131 queue->current_q_offset = 0; in ipz_qeit_get_inc()
133 queue->toggle_state = (~queue->toggle_state) & 1; in ipz_qeit_get_inc()
142 static inline int ipz_qeit_is_valid(struct ipz_queue *queue) in ipz_qeit_is_valid() argument
144 struct ehca_cqe *cqe = ipz_qeit_get(queue); in ipz_qeit_is_valid()
145 return ((cqe->cqe_flags >> 7) == (queue->toggle_state & 1)); in ipz_qeit_is_valid()
155 static inline void *ipz_qeit_get_inc_valid(struct ipz_queue *queue) in ipz_qeit_get_inc_valid() argument
157 return ipz_qeit_is_valid(queue) ? ipz_qeit_get_inc(queue) : NULL; in ipz_qeit_get_inc_valid()
164 static inline void *ipz_qeit_reset(struct ipz_queue *queue) in ipz_qeit_reset() argument
166 queue->current_q_offset = 0; in ipz_qeit_reset()
167 return ipz_qeit_get(queue); in ipz_qeit_reset()
173 int ipz_queue_abs_to_offset(struct ipz_queue *queue, u64 addr, u64 *q_offset);
178 static inline u64 ipz_queue_advance_offset(struct ipz_queue *queue, u64 offset) in ipz_queue_advance_offset() argument
180 offset += queue->qe_size; in ipz_queue_advance_offset()
181 if (offset >= queue->queue_length) offset = 0; in ipz_queue_advance_offset()
208 int ipz_queue_ctor(struct ehca_pd *pd, struct ipz_queue *queue,
219 int ipz_queue_dtor(struct ehca_pd *pd, struct ipz_queue *queue);
248 void *ipz_qeit_eq_get_inc(struct ipz_queue *queue);
258 static inline void *ipz_eqit_eq_get_inc_valid(struct ipz_queue *queue) in ipz_eqit_eq_get_inc_valid() argument
260 void *ret = ipz_qeit_get(queue); in ipz_eqit_eq_get_inc_valid()
262 if ((qe >> 7) != (queue->toggle_state & 1)) in ipz_eqit_eq_get_inc_valid()
264 ipz_qeit_eq_get_inc(queue); /* this is a good one */ in ipz_eqit_eq_get_inc_valid()
268 static inline void *ipz_eqit_eq_peek_valid(struct ipz_queue *queue) in ipz_eqit_eq_peek_valid() argument
270 void *ret = ipz_qeit_get(queue); in ipz_eqit_eq_peek_valid()
272 if ((qe >> 7) != (queue->toggle_state & 1)) in ipz_eqit_eq_peek_valid()