From: Larry D Bohan, Jr [LBohan@dbc.spam_less..com]
Sent: Tuesday, May 09, 2000 5:41 PM
To: Info-VAX@mvb.saic.com
Subject: Re: faster gunzip

On Tue, 9 May 2000 14:01:13 -0400, "Brian Tillman" <tillman_brian>
wrote:

>>That is why Master say to Grasshoppers:
>...snip...
>>Pull from Alpha...
>Not having an Alpha makes this hard.  Can someone post it (fatdef.h)?

scratch the version of Joe Meadows's FATDEF.H I posted earlier;
this one has the needed changes to allow it to compile under DECC.

/* This header file was created by Joe Meadows, and is not copyrighted
     in any way. No guarantee is made as to the accuracy of the
contents
   of this header file. 
   This header file was last modified on Sep. 22th,   1987. 
    (Modified to include this statement) 

    9-MAY-2000 addt'l DECC mods, L Bohan
*/

#define FAT$K_LENGTH 32
#define FAT$C_LENGTH 32
#define FAT$S_FATDEF 32

typedef struct {
  variant_union  {
    unsigned char fat$b_rtype;
    variant_struct  {
      unsigned fat$v_rtype : 4;
      unsigned fat$v_fileorg : 4;
    } fat$r_rtype_bits;
  } fat$r_rtype_overlay;
# define FAT$S_RTYPE 4
# define FAT$V_RTYPE 0
#   define FAT$C_UNDEFINED 0
#   define FAT$C_FIXED 1
#   define FAT$C_VARIABLE 2
#   define FAT$C_VFC 3
#   define FAT$C_STREAM 4
#   define FAT$C_STREAMLF 5
#   define FAT$C_STREAMCR 6
# define FAT$S_FILEORG 4
# define FAT$V_FILEORG 4
#   define FAT$C_SEQUENTIAL 0
#   define FAT$C_RELATIVE 1
#   define FAT$C_INDEXED 2
#   define FAT$C_DIRECT 3
  variant_union  {
    unsigned char fat$b_rattrib;
    variant_struct  {
      unsigned fat$v_fortrancc : 1;
      unsigned fat$v_impliedcc : 1;
      unsigned fat$v_printcc : 1;
      unsigned fat$v_nospan : 1;
    } fat$r_rattrib_bits;
  } fat$r_rattrib_overlay;
#   define FAT$V_FORTRANCC 0
#   define FAT$M_FORTRANCC 1
#   define FAT$V_IMPLIEDCC 1
#   define FAT$M_IMPLIEDCC 2
#   define FAT$V_PRINTCC 2
#   define FAT$M_PRINTCC 4
#   define FAT$V_NOSPAN 3
#   define FAT$M_NOSPAN 8
  unsigned short int fat$w_rsize;
  variant_union
  {
    unsigned long int fat$l_hiblk;
    variant_struct
    {
      unsigned short int fat$w_hiblkh;
      unsigned short int fat$w_hiblkl;
    } FATDEF$DUMMY_0;
  } FATDEF$DUMMY_1;
  variant_union
  {
    unsigned long int fat$l_efblk;
    variant_struct
    {
      unsigned short int fat$w_efblkh;
      unsigned short int fat$w_efblkl;
    } FATDEF$DUMMY_2;
  } FATDEF$DUMMY_3;
  unsigned short int fat$w_ffbyte;
  unsigned char fat$b_bktsize;
  unsigned char fat$b_vfcsize;
  unsigned short int fat$w_maxrec;
  unsigned short int fat$w_defext;
  unsigned short int fat$w_gbc;
  char fat$fill[8];
  unsigned short int fat$w_versions;
}  FAT;

#ifdef XXXX

************
File LDB:[SRC]FATDEF.H;2
   10   typedef struct {
   11     variant_union  {
   12       unsigned char fat$b_rtype;
   13       variant_struct  {
   14         unsigned fat$v_rtype : 4;
******
File LDB:[SRC]FATDEF.H;1
    9   struct fatdef {
   10     union  {
   11       unsigned char fat$b_rtype;
   12       struct  {
   13         unsigned fat$v_rtype : 4;
************
************
File LDB:[SRC]FATDEF.H;2
   33     variant_union  {
   34       unsigned char fat$b_rattrib;
   35       variant_struct  {
   36         unsigned fat$v_fortrancc : 1;
******
File LDB:[SRC]FATDEF.H;1
   32     union  {
   33       unsigned char fat$b_rattrib;
   34       struct  {
   35         unsigned fat$v_fortrancc : 1;
************
************
File LDB:[SRC]FATDEF.H;2
   51     variant_union
   52     {
   53       unsigned long int fat$l_hiblk;
   54       variant_struct
   55       {
******
File LDB:[SRC]FATDEF.H;1
   50     union
   51     {
   52       unsigned long int fat$l_hiblk;
   53       struct
   54       {
************
************
File LDB:[SRC]FATDEF.H;2
   58       } FATDEF$DUMMY_0;
   59     } FATDEF$DUMMY_1;
   60     variant_union
   61     {
   62       unsigned long int fat$l_efblk;
   63       variant_struct
   64       {
******
File LDB:[SRC]FATDEF.H;1
   57       } fat$r_hiblk_fields;
   58     } fat$r_hiblk_overlay;
   59     union
   60     {
   61       unsigned long int fat$l_efblk;
   62       struct
   63       {
************
************
File LDB:[SRC]FATDEF.H;2
   67       } FATDEF$DUMMY_2;
   68     } FATDEF$DUMMY_3;
   69     unsigned short int fat$w_ffbyte;
******
File LDB:[SRC]FATDEF.H;1
   66       } fat$r_efblk_fields;
   67     } fat$r_efblk_overlay;
   68     unsigned short int fat$w_ffbyte;
************
************
File LDB:[SRC]FATDEF.H;2
   77   }  FAT;
******
File LDB:[SRC]FATDEF.H;1
   76   };
************

Number of difference sections found: 6
Number of difference records found: 20

DIFFERENCES
/IGNORE=(SPACING,TRAILING_SPACES,EXACT,BLANK_LINES)/MERGED=1
    LDB:[SRC]FATDEF.H;2-
    LDB:[SRC]FATDEF.H;1

#endif