| | 731 | | | | pvm_bufinfo(mid, len, code, tid) | | | 732 | | | | int mid; | | | 733 | | | | int *len; | | | 734 | | | | int *code; | | | 735 | | | | int *tid; | | | 736 | | | | { | | | 737 | | | | struct pmsg *mp; | | | 738 | | | | int cc; | | | 739 | | | | TEV_DECLS
| | | 740 | | | | | | | 741 | | | | if (TEV_EXCLUSIVE) {
| | | 742 | | | | if (TEV_DO_TRACE(TEV_BUFINFO,TEV_EVENT_ENTRY)) {
| | | 743 | | | | TEV_PACK_INT( TEV_DID_MB, TEV_DATA_SCALAR, &mid, 1, 1 );
| | | 744 | | | | TEV_FIN;
| | | 745 | | | | } | | | 746 | | | | } | | | 747 | | | | | | | 748 | | | | if (mid <= 0) | | | 749 | | | | cc = PvmBadParam;
| | | 750 | | | | else | | | 751 | | | | if (mp = midtobuf(mid)) { | | | 752 | | | | cc = PvmOk;
| | | 753 | | | | if (len) { | | | 754 | | | | if (mp->m_flag & MM_PACK)
| | | 755 | | | | pmsg_setlen(mp); | | | 756 | | | | *len = mp->m_len; | | | 757 | | | | } | | | 758 | | | | if (code) | | | 759 | | | | *code = mp->m_tag; | | | 760 | | | | if (tid) | | | 761 | | | | *tid = mp->m_src; | | | 762 | | | | } else | | | 763 | | | | cc = PvmNoSuchBuf;
| | | 764 | | | | | | | 765 | | | | if (TEV_AMEXCL) {
| | | 766 | | | | if (TEV_DO_TRACE(TEV_BUFINFO,TEV_EVENT_EXIT)) {
| | | 767 | | | | int ln, tg, sc; | | | 768 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 769 | | | | if (!cc) { | | | 770 | | | | ln = mp->m_len; | | | 771 | | | | tg = mp->m_tag; | | | 772 | | | | sc = mp->m_src; | | | 773 | | | | } | | | 774 | | | | else | | | 775 | | | | ln = tg = sc = cc; | | | 776 | | | | TEV_PACK_INT( TEV_DID_INB, TEV_DATA_SCALAR, &ln, 1, 1 );
| | | 777 | | | | TEV_PACK_INT( TEV_DID_IMC, TEV_DATA_SCALAR, &tg, 1, 1 );
| | | 778 | | | | TEV_PACK_INT( TEV_DID_IST, TEV_DATA_SCALAR, &sc, 1, 1 );
| | | 779 | | | | TEV_FIN;
| | | 780 | | | | } | | | 781 | | | | TEV_ENDEXCL;
| | | 782 | | | | } | | | 783 | | | | | | | 784 | | | | if (cc < 0) |
|