(Page 7 of 14 in this chapter)
typedef struct
{
WORD message ;
WORD channel ;
WORD object ;
BYTE stream ;
BYTE instance ;
DWORD time ;
WORD reserved ;
BYTE bufcnt ;
BYTE parmcnt ;
WORD parms[16];
} AGM_AGMSG ;
for (;;)
{
AGM_AGMSG agmsg;
DWORD ret;
/* Wait for muxhd to be signaled */
if (wait_event (muxhd) != SUCCESS)
break;
ret = agmGetAGMessage (agmhd, &agmsg);
if (ret == AGMERR_QUEUE_EMPTY)
puts ("False alarm -- no message.");
else if (ret == AGMERR_SIGNALLED)
{
printf ("muxhd was signaled via agmSignalMuxHandle: code=%d, board=%d\n",
agmsg.parms[0], agmsg.parms[1]);
break;
}
else if (ret == AGMERR_FAILURE)
{
puts ("agmGetAGMessage failed");
break;
}
else
{
char tmpstr[256];
agmFormatAGMessage (agmsg, tmpstr, sizeof tmpstr);
printf (tmpstr);
}
}
(Page 7 of 14 in this chapter)