[comp.os.vms] Example output of UNSDL/LANGUAGE=CC

JOE@FHCRCVAX.BITNET (Joe Meadows) (04/05/88)

Note, the following is example output from the CC module I wrote for
SDL. This file was created by extracting STARDEFAE from the
text library SYS$SHARE:STARLETSD. Then the following command was used:
$ UNSDL/LANGUAGE=CC="mask=hex,separate" STARDEFAE
This created several files (one for each module), one of which was
"$ACRDEF.H", which is the included module. Note that the CC module allows
for other options, including changing the case so that #defines are
forced to uppercase and structure definition are in lower case. Also, you
can enable/disable comment generation, etc..

  For more info, contact:
  Joe Meadows Jr.
  VAX/VMS System Manager / guru in training
  Fred Hutchinson Cancer Research Center
  1124 Columbia St.
  Seattle Wa. 98104
     bitnet - JOE@FHCRCVAX
     arpa   - JOE%FHCRCVAX.BITNET@OLY.ACS.WASHINGTON.EDU
     voice  - (206) 467-4970

/* Created by SDL V3.0-2     */
/* Source: 23-FEB-1988 16:38:53 MASS$DISK:[JOE.SDL]STARDEFAE.SDI;1 */

/*** MODULE $ACRDEF ***/
#ifndef $ACRDEF
/*+                                                                           *
/
/* ACRDEF - ACCOUNTING RECORD DEFINITIONS                                     *
/
/*                                                                            *
/
/***********************************************************************      *
/
/* NOTE:  IF ANY FIELDS CHANGE, A NEW VERSION NUMBER MUST BE ADDED AND *      *
/
/*         "ACR$K_CURVER" EQUATED TO IT.                               *      *
/
/***********************************************************************      *
/
/*                                                                            *
/
/*-                                                                           *
/
/* RECORD/PACKET VERSIONS (ACR$V_VERSION)                                     *
/
#define ACR$K_VERSION2 0        /* VMS VERSION 2 ACCOUNTING FORMAT            *
/
#define ACR$K_VERSION3T 1       /* VMS VERSION 3 FIELD TEST                   *
/
#define ACR$K_VERSION3 2        /* VMS VERSION 3 ACCOUNTING FORMAT            *
/
#define ACR$K_CURVER 2  /* CURRENT FORMAT VERSION NUMBER                      *
/
#define ACR$M_PACKET 0x00000001
#define ACR$M_TYPE 0x000000FE
#define ACR$M_SUBTYPE 0x00000F00
#define ACR$M_VERSION 0x00007000
#define ACR$M_CUSTOMER 0x00008000
#define ACR$K_PRCDEL 1  /* PROCESS DELETE                                     *
/
#define ACR$K_PRCPUR 2  /* PROCESS PURGE                                      *
/
#define ACR$K_IMGDEL 3  /* IMAGE DELETE                                       *
/
#define ACR$K_IMGPUR 4  /* IMAGE PURGE                                        *
/
#define ACR$K_SYSINIT 5 /* SYSTEM INITIALIZATION                              *
/
#define ACR$K_SETTIME 6 /* SET SYSTEM TIME                                    *
/
#define ACR$K_LOGFAIL 7 /* LOGIN VALIDATION FAILURE                           *
/
#define ACR$K_PRINT 8   /* PRINT JOB                                          *
/
#define ACR$K_USER 9    /* USER SUPPLIED DATA                                 *
/
#define ACR$K_ENABLE 10 /* ACC. MANG. FUNCTION ENABLE                         *
/
#define ACR$K_DISABLE 11        /* ACC. MANG. FUNCTION DISABLE                *
/
#define ACR$K_ALTACM 12 /* DECLARE ALTERNATE ACC. MANG.                       *
/
#define ACR$K_FILE_FL 13        /* ACCOUNTING FILE - FORWARD LINK             *
/
#define ACR$K_FILE_BL 14        /* ACCOUNTING FILE - BACKWARD LINK            *
/
/* RECORD SUBTYPE (ACR$V_SUBTYPE) CONSTANTS                                   *
/
#define ACR$K_INTERACTIVE 1     /* INTERACTIVE PROCESS                        *
/
#define ACR$K_SUBPROCESS 2      /* SUBPROCESS                                 *
/
#define ACR$K_DETACHED 3        /* DETACHED PROCESS                           *
/
#define ACR$K_BATCH 4   /* BATCH PROCESS                                      *
/
#define ACR$K_NETWORK 5 /* NETWORK PROCESS                                    *
/
/* PACKET TYPE (ACR$V_TYPE) CONSTANTS                                         *
/
#define ACR$K_ID 1      /* IDENTIFICATION PACKET                              *
/
#define ACR$K_RESOURCE 2        /* RESOURCE USAGE PACKET                      *
/
#define ACR$K_IMAGENAME 3       /* IMAGENAME PACKET                           *
/
#define ACR$K_FILENAME 4        /* FILENAME PACKET                            *
/
#define ACR$K_USER_DATA 5       /* USER DATA PACKET                           *
/
struct ACRDEF {
    union {
        unsigned short int ACR$W_TYPE;  /* RECORD/PACKET TYPE                 *
/
        struct {
            unsigned ACR$V_PACKET : 1;  /* RECORD(0)/PACKET(1)                *
/
            unsigned ACR$V_TYPE : 7;    /* RECORD/PACKET TYPE                 *
/
            unsigned ACR$V_SUBTYPE : 4; /* RECORD/PACKET SUBTYPE              *
/
            unsigned ACR$V_VERSION : 3; /* RECORD/PACKET VERSION NUMBER       *
/
            unsigned ACR$V_CUSTOMER : 1;        /* DIGITAL(0)/CUSTOMER(1)     *
/
            } ACR$R_TYPE_BITS;
/* RECORD TYPE (ACR$V_TYPE) CONSTANTS                                         *
/
        } ACR$R_TYPE_OVERLAY;
    unsigned short int ACR$W_LENGTH;    /* RECORD OR PACKET LENGTH            *
/
/*                                                                            *
/
/* RECORD HEADER                                                              *
/
/*                                                                            *
/
    } ;
#define ACR$K_HDRLEN 12 /* RECORD HEADER LENGTH                               *
/
#define ACR$C_HDRLEN 12 /* RECORD HEADER LENGTH                               *
/
/*                                                                            *
/
struct ACRDEF1 {
    char ACRDEF$$_FILL_2 [4];
    unsigned int ACR$Q_SYSTIME [2];     /* EVENT SYSTEM TIME                  *
/
/* IDENTIFICATION PACKET                                                      *
/
/*                                                                            *
/
    } ;
#define ACR$K_IDVAR 46  /* BEGINNING OF VARIABLE STORAGE AREA                 *
/
#define ACR$C_IDVAR 46  /* BEGINNING OF VARIABLE STORAGE AREA                 *
/
/*                                                                            *
/
struct ACRDEF2 {
    char ACRDEF$$_FILL_3 [4];
    unsigned long int ACR$L_PID;        /* PROCESS ID                         *
/
    unsigned long int ACR$L_OWNER;      /* OWNER PROCES ID                    *
/
    union {
        unsigned long int ACR$L_UIC;    /* PROCESS UIC                        *
/
        struct {
            unsigned short int ACR$W_MEM;       /* MEMBER UIC                 *
/
            unsigned short int ACR$W_GRP;       /* GROUP UIC                  *
/
            } ACR$R_UIC_FIELDS;
        } ACR$R_UIC_OVERLAY;
    unsigned int ACR$Q_PRIV [2];        /* PROCESS PRIV                       *
/
    unsigned char ACR$B_PRI;    /* PROCESS PRIORITY                           *
/
    char ACRDEF$$_FILL_1;       /* SPARE                                      *
/
    unsigned short int ACR$W_USERNAME;  /* USERNAME OFFSET                    *
/
    unsigned short int ACR$W_ACCOUNT;   /* ACCOUNT NAME OFFSET                *
/
    unsigned short int ACR$W_NODENAME;  /* NODE NAME OFFSET                   *
/
    unsigned short int ACR$W_TERMINAL;  /* TERMINAL NAME OFFSET               *
/
    unsigned short int ACR$W_JOBNAME;   /* JOB NAME OFFSET                    *
/
    unsigned long int ACR$L_JOBID;      /* JOB ID                             *
/
    unsigned short int ACR$W_QUEUE;     /* QUEUE NAME OFFSET                  *
/
    unsigned short int ACR$W_NODEADDR;  /* REMOTE NODE ADDRESS                *
/
    unsigned short int ACR$W_REMOTEID;  /* REMOTE ID OFFSET                   *
/
/* RESOURCE PACKET                                                            *
/
/*                                                                            *
/
    } ;
struct ACRDEF3 {
    char ACRDEF$$_FILL_4 [4];
    unsigned int ACR$Q_LOGIN [2];       /* PROCESS/IMAGE START TIME           *
/
    unsigned long int ACR$L_STATUS;     /* PROCESS/IMAGE FINAL STATUS         *
/
    unsigned long int ACR$L_IMGCNT;     /* IMAGE EXECUTION COUNT/SEQUENCE NUMBE
R
         */
    unsigned long int ACR$L_CPUTIME;    /* PROCESS/IMAGE CPU TIME             *
/
    unsigned long int ACR$L_FAULTS;     /* PROCESS/IMAGE PAGE FAULT COUNT     *
/
    unsigned long int ACR$L_FAULTIO;    /* PROCESS/IMAGE PAGE FAULT I/O COUNT *
/
    unsigned long int ACR$L_WSPEAK;     /* PROCESS/IMAGE WORKING SET PEAK     *
/
    unsigned long int ACR$L_PAGEFL;     /* PROCESS/IMAGE PEAK PAGE FILE USAGE *
/
    unsigned long int ACR$L_DIOCNT;     /* PROCESS/IMAGE DIRECT I/O COUNT     *
/
    unsigned long int ACR$L_BIOCNT;     /* PROCESS/IMAGE BUFFERED I/O COUNT   *
/
    unsigned long int ACR$L_VOLUMES;    /* PROCESS/IMAGE VOLUME MOUNT COUNT   *
/
/*                                                                            *
/
/* IMAGENAME PACKET                                                           *
/
/*                                                                            *
/
    } ;
struct ACRDEF4 {
    char ACRDEF$$_FILL_5 [4];
    char ACR$T_IMAGENAME [256]; /* IMAGENAME                                  *
/
/*                                                                            *
/
/* PRINT RESOURCE PACKET                                                      *
/
/*                                                                            *
/
    } ;
struct ACRDEF5 {
    char ACRDEF$$_FILL_6 [4];
    unsigned long int ACR$L_PRINTSTS;   /* JOB STATUS                         *
/
    unsigned int ACR$Q_QUETIME [2];     /* TIME JOB WAS QUEUED                *
/
    unsigned int ACR$Q_BEGTIME [2];     /* TIME JOB WAS BEGUN                 *
/
    unsigned long int ACR$L_SYMCPUTIM;  /* SYMBIONT CPU TIME                  *
/
    unsigned long int ACR$L_PAGECNT;    /* TOTAL PAGES PRINTED                *
/
    unsigned long int ACR$L_QIOCNT;     /* TOTAL QIOS ISSUED                  *
/
    unsigned long int ACR$L_GETCNT;     /* TOTAL GETS ISSUED                  *
/
/*                                                                            *
/
/* FILENAME PACKET                                                            *
/
/*                                                                            *
/
    } ;
struct ACRDEF6 {
    char ACRDEF$$_FILL_7 [4];
    char ACR$T_FILENAME [256];  /* FILENAME                                   *
/
/*                                                                            *
/
/* USER DATA PACKET                                                           *
/
/*                                                                            *
/
    } ;
struct ACRDEF7 {
    char ACRDEF$$_FILL_8 [4];
    char ACR$T_USER_DATA [256]; /* USER DATA                                  *
/
    } ;
#endif
#define $ACRDEF