gdma_queue
struct gdma_queue;
typedef void gdma_eq_callback(void *context, struct gdma_queue *q,
typedef void gdma_cq_callback(void *context, struct gdma_queue *q);
struct gdma_queue *parent;
struct gdma_queue *parent_eq;
struct gdma_queue *eq;
struct gdma_queue **cq_table;
uint8_t *mana_gd_get_wqe_ptr(const struct gdma_queue *wq, uint32_t wqe_offset);
uint32_t mana_gd_wq_avail_space(struct gdma_queue *wq);
int mana_gd_test_eq(struct gdma_context *gc, struct gdma_queue *eq);
struct gdma_queue **queue_ptr);
struct gdma_queue **queue_ptr);
struct gdma_queue **queue_ptr);
void mana_gd_destroy_queue(struct gdma_context *gc, struct gdma_queue *queue);
int mana_gd_poll_cq(struct gdma_queue *cq, struct gdma_comp *comp, int num_cqe);
void mana_gd_ring_cq(struct gdma_queue *cq, uint8_t arm_bit);
int mana_gd_post_work_request(struct gdma_queue *wq,
int mana_gd_post_and_ring(struct gdma_queue *queue,
struct gdma_queue *queue);
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
mana_gd_destroy_queue(struct gdma_context *gc, struct gdma_queue *queue)
mana_gd_wq_avail_space(struct gdma_queue *wq)
mana_gd_get_wqe_ptr(const struct gdma_queue *wq, uint32_t wqe_offset)
mana_gd_write_sgl(struct gdma_queue *wq, uint8_t *wqe_ptr,
mana_gd_post_work_request(struct gdma_queue *wq,
mana_gd_post_and_ring(struct gdma_queue *queue,
mana_gd_read_cqe(struct gdma_queue *cq, struct gdma_comp *comp)
mana_gd_poll_cq(struct gdma_queue *cq, struct gdma_comp *comp, int num_cqe)
struct gdma_queue *queue)
int mana_gd_disable_queue(struct gdma_queue *queue)
mana_gd_wq_ring_doorbell(struct gdma_context *gc, struct gdma_queue *queue)
mana_gd_ring_cq(struct gdma_queue *cq, uint8_t arm_bit)
mana_gd_process_eqe(struct gdma_queue *eq)
struct gdma_queue *cq;
struct gdma_queue *eq = arg;
mana_gd_register_irq(struct gdma_queue *queue,
mana_gd_deregiser_irq(struct gdma_queue *queue)
mana_gd_test_eq(struct gdma_context *gc, struct gdma_queue *eq)
struct gdma_queue *queue)
bool create_hwq, struct gdma_queue *queue)
struct gdma_queue *queue)
struct gdma_queue *queue)
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
mana_hwc_init_event_handler(void *ctx, struct gdma_queue *q_self,
struct gdma_queue *rq;
struct gdma_queue **queue)
struct gdma_queue *parent_eq,
struct gdma_queue **queue)
struct gdma_queue **queue)
mana_hwc_comp_event(void *ctx, struct gdma_queue *q_self)
struct gdma_queue *eq, *cq;
struct gdma_queue *queue;
struct gdma_queue *rq = hwc->rxq->gdma_wq;
struct gdma_queue *sq = hwc->txq->gdma_wq;
struct gdma_queue *eq = hwc->cq->gdma_eq;
struct gdma_queue *cq = hwc->cq->gdma_cq;
gc->cq_table = malloc(gc->max_num_cqs * sizeof(struct gdma_queue *),
struct gdma_queue *gdma_cq;
struct gdma_queue *gdma_eq;
struct gdma_queue *gdma_wq;
struct gdma_queue *gdma_sq;
struct gdma_queue *gdma_cq;
struct gdma_queue *gdma_rq;
struct gdma_queue *eq;
mana_move_wq_tail(struct gdma_queue *wq, uint32_t num_units)
struct gdma_queue *gdma_wq;
mana_cq_handler(void *context, struct gdma_queue *gdma_queue)
KASSERT(cq->gdma_cq == gdma_queue,
("cq do not match %p, %p", cq->gdma_cq, gdma_queue));
mana_gd_ring_cq(gdma_queue, arm_bit);
mana_schedule_task(void *arg, struct gdma_queue *gdma_queue)
mana_can_tx(struct gdma_queue *wq)
struct gdma_queue *gdma_sq;