Chapter 11. Exits 265
                                                              
typedef ArcU8 ArcCSXitDocFormat;                              
#define ARCCSXIT_DOC_FORMAT_FIXED    (ArcCSXitDocFormat) 0x00 
#define ARCCSXIT_DOC_FORMAT_VARIABLE (ArcCSXitDocFormat) 0x01 
#define ARCCSXIT_DOC_FORMAT_STREAM   (ArcCSXitDocFormat) 0x02 
                                                              
typedef ArcU8 ArcCSXitCarCtl;                                 
#define ARCCSXIT_CC_ANSI    (ArcCSXitCarCtl) 'A'              
#define ARCCSXIT_CC_MACHINE (ArcCSXitCarCtl) 'M'              
#define ARCCSXIT_CC_NONE    (ArcCSXitCarCtl) 'N'              
                                                              
typedef ArcU8 ArcCSXitPrMode;                                 
#define ARCCSXIT_PRMODE_NONE   (ArcCSXitPrMode) 'N'           
#define ARCCSXIT_PRMODE_SOSI1  (ArcCSXitPrMode) '1'           
#define ARCCSXIT_PRMODE_SOSI2  (ArcCSXitPrMode) '2'                    
#define ARCCSXIT_PRMODE_SOSI3  (ArcCSXitPrMode) '3'                    
                                                                       
typedef struct _ArcCSXitAppl                                           
{                                                                      
   char              *name;                                            
   ArcI32            aid;                                              
   ArcCSXitDocType   doc_type;                                         
   ArcCSXitDocFormat doc_fmt;     /* Document Format for Linedata */   
   union                                                               
   {                                                                   
      ArcI32  fixed;              /* Fixed - Record Length */          
      char    streamÝ17¨;         /* Stream - Character Delimiters */  
   } u;                                                                
   ArcU8             trc_present; /* 0 = no, 1 = yes */                
   ArcI32            line_count;  /* Lines per page for line data */ 
   ArcI32            code_page;   /* Code Page for line data */      
   ArcCSXitCarCtl    cc_type;     /* CC type for line data */        
   ArcCSXitPrMode    prmode;      /* PRMode for line data */         
} ArcCSXitAppl;                                                      
                                                                     
typedef struct _ArcCSXitApplU                                        
{                                                                    
   ArcChar           *name;                                          
   ArcI32            aid;                                            
   ArcCSXitDocType   doc_type;                                       
   ArcCSXitDocFormat doc_fmt;     /* Document Format for Linedata */ 
   union                                                             
   {                                                                 
      ArcI32  fixed;              /* Fixed - Record Length */        
      ArcChar streamÝ17¨;         /* Stream - Character Delimiters */
   } u;                                                              
   ArcU8             trc_present; /* 0 = no, 1 = yes */              
   ArcI32            line_count;  /* Lines per page for line data */ 
   ArcI32            code_page;   /* Code Page for line data */      
   ArcCSXitCarCtl    cc_type;     /* CC type for line data */        
   ArcCSXitPrMode    prmode;      /* PRMode for line data */         
} ArcCSXitApplU;                                                     
                                                                     
typedef ArcU8 ArcCSXitFieldType;                                     
#define ARCCSXIT_FIELD_TYPE_BIGINT     (ArcCSXitFieldType) 0x42      
#define ARCCSXIT_FIELD_TYPE_DATE       (ArcCSXitFieldType) 0x61      
#define ARCCSXIT_FIELD_TYPE_DATETIME   (ArcCSXitFieldType) 0x62