Lines Matching refs:cc
58 memif_msg_send_from_queue(struct memif_control_channel *cc) in memif_msg_send_from_queue() argument
64 e = TAILQ_FIRST(&cc->msg_queue); in memif_msg_send_from_queue()
68 size = memif_msg_send(cc->intr_handle.fd, &e->msg, e->fd); in memif_msg_send_from_queue()
75 TAILQ_REMOVE(&cc->msg_queue, e, next); in memif_msg_send_from_queue()
82 memif_msg_enq(struct memif_control_channel *cc) in memif_msg_enq() argument
93 TAILQ_INSERT_TAIL(&cc->msg_queue, e, next); in memif_msg_enq()
99 memif_msg_enq_disconnect(struct memif_control_channel *cc, const char *reason, in memif_msg_enq_disconnect() argument
106 if (cc == NULL) { in memif_msg_enq_disconnect()
111 e = memif_msg_enq(cc); in memif_msg_enq_disconnect()
124 if (cc->dev != NULL) { in memif_msg_enq_disconnect()
125 pmd = cc->dev->data->dev_private; in memif_msg_enq_disconnect()
133 memif_msg_enq_hello(struct memif_control_channel *cc) in memif_msg_enq_hello() argument
135 struct memif_msg_queue_elt *e = memif_msg_enq(cc); in memif_msg_enq_hello()
163 memif_msg_enq_disconnect(pmd->cc, "Incompatible memif version", 0); in memif_msg_receive_hello()
184 memif_msg_receive_init(struct memif_control_channel *cc, memif_msg_t *msg) in memif_msg_receive_init() argument
192 memif_msg_enq_disconnect(cc, "Incompatible memif version", 0); in memif_msg_receive_init()
196 if (cc->socket == NULL) { in memif_msg_receive_init()
197 memif_msg_enq_disconnect(cc, "Device error", 0); in memif_msg_receive_init()
202 TAILQ_FOREACH(elt, &cc->socket->dev_queue, next) { in memif_msg_receive_init()
209 memif_msg_enq_disconnect(cc, in memif_msg_receive_init()
215 cc->dev = dev; in memif_msg_receive_init()
216 pmd->cc = cc; in memif_msg_receive_init()
219 memif_msg_enq_disconnect(pmd->cc, in memif_msg_receive_init()
230 memif_msg_enq_disconnect(pmd->cc, in memif_msg_receive_init()
236 memif_msg_enq_disconnect(pmd->cc, in memif_msg_receive_init()
249 memif_msg_enq_disconnect(cc, "ID not found", 0); in memif_msg_receive_init()
263 memif_msg_enq_disconnect(pmd->cc, "Missing region fd", 0); in memif_msg_receive_add_region()
270 memif_msg_enq_disconnect(pmd->cc, "Invalid region index", 0); in memif_msg_receive_add_region()
276 memif_msg_enq_disconnect(pmd->cc, "Failed to alloc memif region.", 0); in memif_msg_receive_add_region()
298 memif_msg_enq_disconnect(pmd->cc, "Missing interrupt fd", 0); in memif_msg_receive_add_ring()
305 memif_msg_enq_disconnect(pmd->cc, "Invalid ring index", 0); in memif_msg_receive_add_ring()
311 memif_msg_enq_disconnect(pmd->cc, "Invalid ring index", 0); in memif_msg_receive_add_ring()
385 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_ack()
398 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_init()
423 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_add_region()
444 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_add_ring()
471 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_connect()
488 struct memif_msg_queue_elt *e = memif_msg_enq(pmd->cc); in memif_msg_enq_connected()
505 struct memif_control_channel *cc = arg; in memif_intr_unregister_handler() local
510 while ((elt = TAILQ_FIRST(&cc->msg_queue)) != NULL) { in memif_intr_unregister_handler()
511 TAILQ_REMOVE(&cc->msg_queue, elt, next); in memif_intr_unregister_handler()
515 rte_free(cc); in memif_intr_unregister_handler()
533 if (pmd->cc != NULL) { in memif_disconnect()
535 for (elt = TAILQ_FIRST(&pmd->cc->msg_queue); elt != NULL; elt = next) { in memif_disconnect()
538 TAILQ_REMOVE(&pmd->cc->msg_queue, elt, next); in memif_disconnect()
543 memif_msg_send_from_queue(pmd->cc); in memif_disconnect()
546 if (TAILQ_FIRST(&pmd->cc->msg_queue) != NULL) { in memif_disconnect()
551 ih = &pmd->cc->intr_handle; in memif_disconnect()
555 pmd->cc); in memif_disconnect()
563 pmd->cc, in memif_disconnect()
567 rte_free(pmd->cc); in memif_disconnect()
569 pmd->cc = NULL; in memif_disconnect()
623 memif_msg_receive(struct memif_control_channel *cc) in memif_msg_receive() argument
647 size = recvmsg(cc->intr_handle.fd, &mh, 0); in memif_msg_receive()
654 memif_msg_enq_disconnect(cc, "Invalid message size", 0); in memif_msg_receive()
670 if (cc->dev == NULL && msg.type != MEMIF_MSG_TYPE_INIT) { in memif_msg_receive()
672 memif_msg_enq_disconnect(cc, "Unexpected message", 0); in memif_msg_receive()
681 ret = memif_msg_receive_hello(cc->dev, &msg); in memif_msg_receive()
684 ret = memif_init_regions_and_queues(cc->dev); in memif_msg_receive()
687 ret = memif_msg_enq_init(cc->dev); in memif_msg_receive()
690 pmd = cc->dev->data->dev_private; in memif_msg_receive()
691 proc_private = cc->dev->process_private; in memif_msg_receive()
693 ret = memif_msg_enq_add_region(cc->dev, i); in memif_msg_receive()
698 ret = memif_msg_enq_add_ring(cc->dev, i, in memif_msg_receive()
704 ret = memif_msg_enq_add_ring(cc->dev, i, in memif_msg_receive()
709 ret = memif_msg_enq_connect(cc->dev); in memif_msg_receive()
718 ret = memif_msg_receive_init(cc, &msg); in memif_msg_receive()
721 ret = memif_msg_enq_ack(cc->dev); in memif_msg_receive()
726 ret = memif_msg_receive_add_region(cc->dev, &msg, afd); in memif_msg_receive()
729 ret = memif_msg_enq_ack(cc->dev); in memif_msg_receive()
734 ret = memif_msg_receive_add_ring(cc->dev, &msg, afd); in memif_msg_receive()
737 ret = memif_msg_enq_ack(cc->dev); in memif_msg_receive()
742 ret = memif_msg_receive_connect(cc->dev, &msg); in memif_msg_receive()
745 ret = memif_msg_enq_connected(cc->dev); in memif_msg_receive()
750 ret = memif_msg_receive_connected(cc->dev, &msg); in memif_msg_receive()
753 ret = memif_msg_receive_disconnect(cc->dev, &msg); in memif_msg_receive()
758 memif_msg_enq_disconnect(cc, "Unknown message type", 0); in memif_msg_receive()
770 struct memif_control_channel *cc = arg; in memif_intr_handler() local
773 ret = memif_msg_receive(cc); in memif_intr_handler()
775 if (cc->dev == NULL) { in memif_intr_handler()
776 memif_msg_send_from_queue(cc); in memif_intr_handler()
777 ret = rte_intr_callback_unregister_pending(&cc->intr_handle, in memif_intr_handler()
779 cc, in memif_intr_handler()
790 ret = memif_msg_send_from_queue(cc); in memif_intr_handler()
797 if (cc->dev == NULL) { in memif_intr_handler()
801 memif_disconnect(cc->dev); in memif_intr_handler()
811 struct memif_control_channel *cc; in memif_listener_handler() local
826 cc = rte_zmalloc("memif-cc", sizeof(struct memif_control_channel), 0); in memif_listener_handler()
827 if (cc == NULL) { in memif_listener_handler()
832 cc->intr_handle.fd = sockfd; in memif_listener_handler()
833 cc->intr_handle.type = RTE_INTR_HANDLE_EXT; in memif_listener_handler()
834 cc->socket = socket; in memif_listener_handler()
835 cc->dev = NULL; in memif_listener_handler()
836 TAILQ_INIT(&cc->msg_queue); in memif_listener_handler()
838 ret = rte_intr_callback_register(&cc->intr_handle, memif_intr_handler, cc); in memif_listener_handler()
844 ret = memif_msg_enq_hello(cc); in memif_listener_handler()
849 ret = memif_msg_send_from_queue(cc); in memif_listener_handler()
860 if (cc != NULL) in memif_listener_handler()
861 rte_free(cc); in memif_listener_handler()
1095 pmd->cc = rte_zmalloc("memif-cc", in memif_connect_client()
1097 if (pmd->cc == NULL) { in memif_connect_client()
1102 pmd->cc->intr_handle.fd = sockfd; in memif_connect_client()
1103 pmd->cc->intr_handle.type = RTE_INTR_HANDLE_EXT; in memif_connect_client()
1104 pmd->cc->socket = NULL; in memif_connect_client()
1105 pmd->cc->dev = dev; in memif_connect_client()
1106 TAILQ_INIT(&pmd->cc->msg_queue); in memif_connect_client()
1108 ret = rte_intr_callback_register(&pmd->cc->intr_handle, in memif_connect_client()
1109 memif_intr_handler, pmd->cc); in memif_connect_client()
1122 if (pmd->cc != NULL) { in memif_connect_client()
1123 rte_free(pmd->cc); in memif_connect_client()
1124 pmd->cc = NULL; in memif_connect_client()