#define handle handle_x.ptr
#define record_pointer record_pointer_x.ptr
#define name_pointer name_pointer_x.ptr
#define keydef_pointer keydef_pointer_x.ptr
#define col_seq_address col_seq_address_x.ptr


typedef union {
       cbl_pointer_t ptr;
       cbl_x8_compx_t filler;
} fh_pointer;

struct FCD {
          char status1;                          /* 42  FCD-STATUS-KEY-1      pic x. */
          char status2;                          /* 42  FCD-STATUS-KEY-2      pic x. */
          char filler1[2];                       /* 40  FCD-LENGTH            pic xx comp-x. */
          cbl_x1_compx_t version;                /* 40  FCD-VERSION           pic x comp-x. */
          cbl_x1_compx_t organization;           /* 40  FCD-ORGANIZATION      pic x comp-x. */
          cbl_x1_compx_t access;                 /* 40  FCD-ACCESS-MODE       pic x comp-x. */
          cbl_x1_compx_t open_mode;              /* 40  FCD-OPEN-MODE         pic x comp-x. */
          cbl_x1_compx_t recording_mode;         /* 40  FCD-RECORDING-MODE    pic x comp-x. */
          cbl_x1_compx_t file_format;            /* 40  FCD-FILE-FORMAT       pic x comp-x. */
          char filler3[1];                       /* 40  FCD-DEVICE-FLAG       pic x comp-x. */
          char filler4[1];                       /* 40  FCD-LOCK-ACTION       pic x comp-x. */
          cbl_x1_compx_t data_compress;          /* 40  FCD-DATA-COMPRESS     pic x comp-x. */
          cbl_x1_compx_t blocking;               /* 40  FCD-BLOCKING          pic x comp-x. */
          cbl_x1_compx_t idxcache_size;          /* 40  FCD-IDXCACHE-SIZE     pic x comp-x. */
          cbl_x1_compx_t percent;                /* 40  FCD-PERCENT           pic x comp-x. */
          char filler5[1];                       /* 40  FCD-BLOCK-SIZE        pic x comp-x. */
          cbl_x1_compx_t flags_1;                /* 40  FCD-FLAGS-1           pic x comp-x. */
          char filler6[1];                       /* 40  FCD-FLAGS-2           pic x comp-x. */
          char filler7[1];                       /* 40  FCD-MVS-FLAGS         pic x comp-x. */
          cbl_x1_compx_t status_type;            /* 40  FCD-STATUS-TYPE       pic x comp-x. */
          cbl_x1_compx_t optional;               /* 40  FCD-OTHER-FLAGS       pic x comp-x. */
          cbl_x1_compx_t trans_log;              /* 40  FCD-TRANS-LOG         pic x comp-x. */
          cbl_x1_compx_t locktypes;              /* 40  FCD-LOCKTYPES         pic x comp-x. */
          cbl_x1_compx_t fs_flags;               /* 40  FCD-FS-FLAGS          pic x comp-x. */
          cbl_x1_compx_t config_flags;           /* 40  FCD-CONFIG-FLAGS      pic x comp-x. */
          cbl_x1_compx_t misc_flags;             /* 40  FCD-MISC-FLAGS        pic x comp-x. */
          cbl_x1_compx_t config_flags2;          /* 40  FCD-CONFIG-FLAGS2     pic x comp-x. */
          cbl_x1_compx_t lock_mode;              /* 40  FCD-LOCK-MODE         pic x comp-x. */
          char filler8[1];                       /* 40  FCD-SHR2              pic x comp-x. */
          cbl_x1_compx_t idxcache_buffs;         /* 40  FCD-IDXCACHE-BUFFS    pic x comp-x. */
          char filler9[1];                       /* 40  FCD-INTERNAL-FLAGS-1  pic x comp-x. */
          char filler10[1];                      /* 40  FCD-INTERNAL-FLAGS-2  pic x comp-x. */
          char filler11[15];                     /* 40                        pic x(15)*/
          char filler12[2];                      /* 40  FCD-NLS-ID            pic xx comp-x. */
          cbl_x2_compx_t fs_file_id;             /* 40  FCD-FS-FILE-ID        pic xx comp-x. */
          char filler13[2];                      /* 40  FCD-RETRY-OPEN-COUNT  pic xx comp-x. */
          cbl_x2_compx_t name_length;            /* 40  FCD-NAME-LENGTH       pic xx comp-x. */
          char filler14[2];                      /* 40  FCD-IDXNAME-LENGTH    pic xx comp-x. */
          char filler15[2];                      /* 40  FCD-RETRY-COUNT       pic xx comp-x. */
          cbl_x2_compx_t key_id;                 /* 40  FCD-KEY-ID            pic xx comp-x. */
          char filler16[2];                      /* 40  FCD-LINE-COUNT        pic xx comp-x. */
          char filler17[1];                      /* 40  FCD-USE-FILES         pic x comp-x. */
          char filler18[1];                      /* 40  FCD-GIVE-FILES        pic x comp-x. */
          cbl_x2_compx_t key_length;             /* 40  FCD-KEY-LENGTH        pic xx comp-x. */
          char filler19[20];                     /* 40                        pic x(20). */
          cbl_x4_compx_t reclen_current;         /* 40  FCD-CURRENT-REC-LEN   pic x(4) comp-x. */
          cbl_x4_compx_t reclen_minimum;         /* 40  FCD-MIN-REC-LENGTH    pic x(4) comp-x. */
          cbl_x4_compx_t reclen_maximum;         /* 40  FCD-MAX-REC-LENGTH    pic x(4) comp-x. */
          cbl_x4_compx_t fs_session_id;          /* 40  FCD-SESSION-ID        pic x(4) comp-x. */
          char filler20[24];                     /* 40                        pic x(24). */
          cbl_x8_compx_t relative_addr_offset;   /* 40  FCD-RELADDR-OFFSET    pic x(8) comp-x. */
          cbl_x8_compx_t max_rel_key;            /* 40  FCD-MAX-REL-KEY       pic x(8) comp-x. */
          cbl_x8_compx_t relative_key;           /* 40  FCD-RELATIVE-KEY      pic x(8) comp-x. */
          fh_pointer handle_x;                   /* 40  FCD-HANDLE            usage pointer. */
          fh_pointer record_pointer_x;           /* 40  FCD-RECORD-ADDRESS    usage pointer. */
          fh_pointer name_pointer_x;             /* 40  FCD-FILENAME-ADDRESS  usage pointer. */
          char filler21[8] ;                     /* 40  FCD-IDXNAME-ADDRESS   usage pointer. */
          fh_pointer keydef_pointer_x;           /* 40  FCD-KEY-DEF-ADDRESS   usage pointer. */
          fh_pointer col_seq_address_x;          /* 40  FCD-COL-SEQ-ADDRESS   usage pointer. */
          char filler22[8] ;                     /* 40  FCD-FILDEF-ADDRESS    usage pointer. */
          char filler23[8];                      /* 40  FCD-DFSORT-ADDRESS    usage pointer. */
          
};


