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;