V10/cmd/spitbol/cint/spitblks.h
/*
/ This header file defines structures used by the Macro SPITBOL compiler
/ that are passed into the OS interface.
*/
/*
/ First, define the C type WORD to be the same size as a word used
/ by the Macro SPITBOL compiler. The type of a WORD is a signed
/ integer for now.
*/
typedef int WORD;
/*
/ CHFCB - chain of FCBs block
/
/ For every FCB created by OSINT, the compiler creates a CHFCB pointing
/ to the FCB and links it onto a chain of CHFCBs. At EOJ the head of this
/ CHFCB chain is passed to the interface function SYSEJ so that all files
/ can be closed.
*/
struct chfcb
{
WORD typ; /* type word */
WORD len; /* block length */
struct chfcb *nxt; /* pointer to next chfcb */
struct fcblk *fcp; /* pointer to fcb */
};
/*
/ ICBLK - integer block
/
/ Integer values are stored in ICBLKs. Field icval should be defined
/ to be the appropriate type for the implementation.
*/
struct icblk
{
WORD typ; /* type word - b$icl */
WORD val; /* integer value */
};
/*
/ SCBLK - string block
/
/ String values are stored in SCBLKs. Notice that the scstr field
/ is defined as an array of characters of length 1. This is a slight
/ kludge to side-step C's lack of support for varying length strings.
/
/ The actual length of a SCBLK is 2 words + the number of words necessary
/ to hold a string of length sclen.
*/
struct scblk
{
WORD typ; /* type word - b$scl */
WORD len; /* string length */
char str[1]; /* string characters */
};