Lines Matching refs:mqd

545 int gru_create_message_queue(struct gru_message_queue_desc *mqd,
561 mqd->mq = mq;
562 mqd->mq_gpa = uv_gpa(mq);
563 mqd->qlines = qlines;
564 mqd->interrupt_pnode = nasid >> 1;
565 mqd->interrupt_vector = vector;
566 mqd->interrupt_apicid = apicid;
579 static int send_noop_message(void *cb, struct gru_message_queue_desc *mqd,
591 gru_mesq(cb, mqd->mq_gpa, gru_get_tri(mhdr), 1, IMA);
615 m = mqd->mq_gpa + (gru_get_amo_value_head(cb) << 6);
637 static int send_message_queue_full(void *cb, struct gru_message_queue_desc *mqd,
650 qlines = mqd->qlines;
659 gru_gamir(cb, EOP_IR_CLR, HSTATUS(mqd->mq_gpa, half), XTYPE_DW, IMA);
669 if (send_noop_message(cb, mqd, mesg)) {
670 gru_gamir(cb, EOP_IR_INC, HSTATUS(mqd->mq_gpa, half),
681 gru_gamer(cb, EOP_ERR_CSWAP, mqd->mq_gpa, XTYPE_DW, mqh.val, avalue,
689 gru_gamir(cb, EOP_IR_INC, HSTATUS(mqd->mq_gpa, half), XTYPE_DW,
706 static int send_message_put_nacked(void *cb, struct gru_message_queue_desc *mqd,
712 m = mqd->mq_gpa + (gru_get_amo_value_head(cb) << 6);
722 if (!mqd->interrupt_vector)
734 ret = send_noop_message(cb, mqd, mesg);
754 static int send_message_failure(void *cb, struct gru_message_queue_desc *mqd,
771 ret = send_message_queue_full(cb, mqd, mesg, lines);
779 ret = send_message_put_nacked(cb, mqd, mesg, lines);
792 * mqd message queue descriptor
796 int gru_send_message_gpa(struct gru_message_queue_desc *mqd, void *mesg,
821 gru_mesq(cb, mqd->mq_gpa, gru_get_tri(mhdr), clines, IMA);
824 ret = send_message_failure(cb, mqd, dsr, clines);
837 void gru_free_message(struct gru_message_queue_desc *mqd, void *mesg)
839 struct message_queue *mq = mqd->mq;
869 void *gru_get_next_message(struct gru_message_queue_desc *mqd)
871 struct message_queue *mq = mqd->mq;
877 gru_free_message(mqd, mhdr);
997 struct gru_message_queue_desc mqd;
1009 gru_create_message_queue(&mqd, mq, 8 * GRU_CACHE_LINE_BYTES, 0, 0, 0);
1013 ret = gru_send_message_gpa(&mqd, mes, sizeof(mes));
1025 m = gru_get_next_message(&mqd);
1028 gru_free_message(&mqd, m);