typdef int TShortDS; struct tagLongDS { ThreadT PagerID; TShortDS DSID; unsigned short MagicWord; unsigned short TaskNo; }; typedef struct tagLongDS TLongDS;
These elements are packed into an eight byte structure, which looks like the following (Caution!: The compiler allocates the bits from the right to the left side) :
struct tagBTask { unsigned Tlb0Low:14; unsigned TaskNo:10; unsigned Tlb0High:8; unsigned VerLow:14; unsigned ChiefNo:10; unsigned VerHigh:8; }; typedef struct tagBTask TBTask; struct tagSTask { int Low,High; }; typedef struct tagSTask TSTask; union tagTask{ TBTask B; TSTask L; long long ID; }; typedef union tagTask TaskT;
The structure looks like the following.
struct tagBThread { unsigned VerLow:12; unsigned ThreadNo:14; unsigned VerHigh:6; unsigned StationNo:12; unsigned ChiefNo:14; unsigned Depth:6; }; typedef struct tagBThread TBThread; struct tagSThread { int Low,High; }; typedef struct tagSThread TSThread; union tagThread{ TBThread B; TSThread L; long long ID; }; typedef union tagThread ThreadT;
struct tagMessageDope { unsigned Dummy:8; unsigned DWords:8; unsigned Strings:4; unsigned Flexpages:4; unsigned Dataspaces:8; }; typedef struct tagMessageDope TMessageDope; union tagMsgDope { DWordT DWord; TMessageDope MsgDope; }; typedef union tagMsgDope MsgDopeT;
struct tagStrDope { DWordT StrLength; DWordT StrAddress; DWordT StrBufSize; DWordT StrBufAddress; }; typedef struct tagStrDope StrDopeT;
struct tagFlexPage { DWordT MapCode; DWordT SndBase; DWordT SndFPage; DWordT RcvFPage; }; typedef struct tagFlexPage TFlexPage;