Lines Matching refs:ceq_cb
152 struct hinic_ceq_cb *ceq_cb = &ceqs->ceq_cb[event]; in hinic_ceq_register_cb() local
154 ceq_cb->handler = handler; in hinic_ceq_register_cb()
155 ceq_cb->handle = handle; in hinic_ceq_register_cb()
156 ceq_cb->ceqe_state = HINIC_EQE_ENABLED; in hinic_ceq_register_cb()
167 struct hinic_ceq_cb *ceq_cb = &ceqs->ceq_cb[event]; in hinic_ceq_unregister_cb() local
169 ceq_cb->ceqe_state &= ~HINIC_EQE_ENABLED; in hinic_ceq_unregister_cb()
171 while (ceq_cb->ceqe_state & HINIC_EQE_RUNNING) in hinic_ceq_unregister_cb()
174 ceq_cb->handler = NULL; in hinic_ceq_unregister_cb()
286 struct hinic_ceq_cb *ceq_cb; in ceq_event_handler() local
296 ceq_cb = &ceqs->ceq_cb[event]; in ceq_event_handler()
298 eqe_state = cmpxchg(&ceq_cb->ceqe_state, in ceq_event_handler()
302 if (eqe_state == HINIC_EQE_ENABLED && ceq_cb->handler) in ceq_event_handler()
303 ceq_cb->handler(ceq_cb->handle, CEQE_DATA(ceqe)); in ceq_event_handler()
307 ceq_cb->ceqe_state &= ~HINIC_EQE_RUNNING; in ceq_event_handler()