/* module written by G. Gagnon, Mar 24, 1987 */ #include "sb:sb.h" extern int level; void PrMsgPort(string, msgport) char *string; struct MsgPort *msgport; { static struct StructData structdata[] = { { "-mp_Node", "Node structure", 0, 0 }, { " .ln_Succ", "struct Node *", 5, PTRSIZE }, { " .ln_Pred", "struct Node *", 5, PTRSIZE }, { "- .ln_Type", "UBYTE", 13, BYTESIZE }, { "- .ln_Pri", "BYTE", 3, BYTESIZE }, { " .ln_Name", "CHAR *", 4, PTRSIZE }, { "-mp_Flags", "UBYTE", 13, BYTESIZE }, { "-mp_SigBit", "UBYTE", 13, BYTESIZE }, { "(mp_SigTask", "struct Task *)", 5, PTRSIZE }, { "-mp_MsgList", "List structure", 0, 0 }, { " .lh_Head", "struct Node *", 5, PTRSIZE }, { " .lh_Tail", "struct Node *", 5, PTRSIZE }, { " .lh_TailPred", "struct Node *", 5, PTRSIZE }, { "- .lh_Type", "UBYTE", 13, BYTESIZE }, { "- .l_pad", "UBYTE", 13, BYTESIZE } }; int sum, choice = -1; level++; while (choice) { sum = SetOptionText(string, structdata, (APTR)msgport, DATASIZE, 0); switch (choice = GetChoice(DATASIZE)) { case 2: if (msgport->mp_Node.ln_Succ) PrNode("MsgPort->mp_Node.ln_Succ", msgport->mp_Node.ln_Succ); break; case 3: if (msgport->mp_Node.ln_Pred) PrNode("MsgPort->mp_Node.ln_Pred", msgport->mp_Node.ln_Pred); break; case 6: PrString("mp_Node->ln_Name",msgport->mp_Node.ln_Name); break; case 11: if (msgport->mp_MsgList.lh_Head) PrNode("MsgPort->mp_MsgList.lh_Head", msgport->mp_MsgList.lh_Head); break; case 12: if (msgport->mp_MsgList.lh_Tail) PrNode("MsgPort->mp_MsgList.lh_Tail", msgport->mp_MsgList.lh_Tail); break; case 13: if (msgport->mp_MsgList.lh_TailPred) PrNode("MsgPort->mp_MsgList.lh_TailPred", msgport->mp_MsgList.lh_TailPred); break; } } level--; }