<< LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION>>               00000001
<<============================================================>>        00010000
<<                                                            >>        00012000
<<                       INCLDFS2 - B3                        >>        00014000
<<                                                            >>        00016000
<<     This include file has many of the equates and defines  >>        00018000
<< associated with disc free space management.                >>        00020000
<<                                                            >>        00022000
<<============================================================>>        00024000
                                                                        00026000
                                                                        00028000
   EQUATE sector'size = 128;  << Size of disc sector in words >>        00030000
                                                                        00032000
   <<--------------------------------------------------------->>        00034000
   << The following describe a page of the bit map.           >>        00036000
   <<--------------------------------------------------------->>        00038000
                                                                        00040000
   EQUATE page'size = 1;  << Size of a page in sectors >>               00042000
                                                                        00044000
   << The number of words in a page, including the checksum   >>        00046000
   << word.                                                   >>        00048000
                                                                        00050000
   EQUATE actual'words'per'page = page'size * sector'size;              00052000
                                                                        00054000
   << The number of data words in a page, this is excluding   >>        00056000
   << the checksum word.                                      >>        00058000
                                                                        00060000
   EQUATE words'per'page = actual'words'per'page - 1;                   00062000
                                                                        00064000
   << This is the location of the checksum word in a page,    >>        00066000
   << it is always the last word.                             >>        00068000
                                                                        00070000
   EQUATE check'sum'word = words'per'page;                              00072000
                                                                        00074000
   << The size of a HP/3000 word in bits.                     >>        00076000
                                                                        00078000
   EQUATE bits'per'word = 16;                                           00080000
                                                                        00082000
   << This is the number of bits of data on a page of the bit >>        00084000
   << map, which excludes the checksum word.                  >>        00086000
                                                                        00088000
   EQUATE bits'per'page = bits'per'word * words'per'page;               00090000
                                                                        00092000
   <<--------------------------------------------------------->>        00094000
   << These describe entries in the descriptor table.         >>        00096000
   <<--------------------------------------------------------->>        00098000
                                                                        00100000
   << Size of a descriptor table entry in words. >>                     00102000
                                                                        00104000
   EQUATE dt'entry'size = 3;                                            00106000
                                                                        00108000
   << Offset of the word in an entry containing the size of   >>        00110000
   << the largest block of space on the page that is not at   >>        00112000
   << the beginning or end of the page.                       >>        00114000
                                                                        00116000
   EQUATE largest'space = 0;                                            00118000
                                                                        00120000
   << Offset of the word in an entry containing the size of   >>        00122000
   << the block of free space at the beginning of the page.   >>        00124000
                                                                        00126000
   EQUATE starting'space = 1;                                           00128000
                                                                        00130000
   << Offset of the word in an entry containing the size of   >>        00132000
   << the block of free space at the end of the page.         >>        00134000
                                                                        00136000
   EQUATE ending'space = 2;                                             00138000
                                                                        00140000
   << Offset of the word in the previous entry containing the >>        00142000
   << size of the block at the end of the previous page, this >>        00144000
   << is the "ending'space" word for the previous entry.      >>        00146000
                                                                        00148000
   EQUATE previous'adjacent'space = -1;                                 00150000
                                                                        00152000
   << This is the value placed in all words in a descriptor   >>        00154000
   << table entry when the page corresponding to to the entry >>        00156000
   << is though to be bad, because of a checksum or I/O error >>        00158000
                                                                        00160000
   EQUATE bad'page = -1;                                                00162000
                                                                        00164000
   <<--------------------------------------------------------->>        00166000
   << The following define the standard format error status   >>        00168000
   << word fields.                                            >>        00170000
   <<--------------------------------------------------------->>        00172000
                                                                        00174000
   << This is the field containing the type of error that     >>        00176000
   << occured.                                                >>        00178000
                                                                        00180000
   DEFINE error'type = (8:8)#;                                          00182000
                                                                        00184000
   << These define the part of the word that contains the     >>        00186000
   << status returned by ATTACHIO. These are only have valid  >>        00188000
   << information for I/O errors.                             >>        00190000
                                                                        00192000
   DEFINE attach'io'status = (0:8)#;                                    00194000
   DEFINE general'io'status = (5:3)#;                                   00196000
   DEFINE qualifying'io'status = (0:5)#;                                00198000
                                                                        00200000
   << This is the value for "general'io'status" when no error >>        00202000
   << has occured.                                            >>        00204000
                                                                        00206000
   EQUATE ok'io'status = 1;                                             00208000
                                                                        00210000
   <<--------------------------------------------------------->>        00212000
   << This defines the size of the threshold block size.      >>        00214000
   << The first page which has a block of free space greater  >>        00216000
   << or equal to this value is remembered.                   >>        00218000
   <<--------------------------------------------------------->>        00220000
                                                                        00222000
   EQUATE threshold'size = 2;                                           00224000
                                                                        00226000
   <<--------------------------------------------------------->>        00228000
   << This is the value set in "ds'buffer'page'number" that   >>        00230000
   << indicates that the buffer is empty.                     >>        00232000
   <<--------------------------------------------------------->>        00234000
                                                                        00236000
   EQUATE empty'buffer = -1;                                            00238000
                                                                        00240000
   <<--------------------------------------------------------->>        00242000
   << The following are the values that the "error'type"      >>        00244000
   << field of a standard format status word can have.  The   >>        00246000
   << value for no error is odd and thus TRUE, all others     >>        00248000
   << are even and thus FALSE, this makes checking if an      >>        00250000
   << error occure simple. The value "fatal'dfs'error" is     >>        00252000
   << never assigned, it is only used for comparison, as all  >>        00254000
   << error types greater than this value are fatal to con-   >>        00256000
   << tinued allocation of free space on the device.          >>        00258000
   <<--------------------------------------------------------->>        00260000
                                                                        00262000
   EQUATE                                                               00264000
      no'error = %1,                                                    00266000
      bit'map'check'sum'error = %2,                                     00268000
      bit'map'read'error = %4,                                          00270000
      bit'map'write'error = %6,                                         00272000
      disc'read'error = %10,                                            00274000
      disc'write'error = %12,                                           00276000
      page'marked'as'bad'error = %14,                                   00278000
      fatal'dfs'error = %15,                                            00280000
      disc'label'read'error = %16,                                      00282000
      disc'label'write'error = %20,                                     00284000
      dtt'read'error = %22,                                             00286000
      old'dfs'error = %24,                                              00288000
      get'dst'error = %26,                                              00290000
      dt'read'error = %30,                                              00292000
      dt'write'error = %32,                                             00294000
      get'vm'error = %34,                                               00296000
      map'damaged'error = %36,                                          00298000
      space'already'free'error = %40,                                   00300000
      space'not'free'error = %42,                                       00302000
      unexpected'dfs'error = %44,                                       00304000
      vinit'error = %46,                                                00306000
      disc'limit'read'error = %50;                                      00308000
                                                                        00310000
   <<--------------------------------------------------------->>        00312000
   << These define the error numbers for the error messages   >>        00314000
   << in the message catalog that are associated with disc    >>        00316000
   << free space management.                                  >>        00318000
   <<--------------------------------------------------------->>        00320000
                                                                        00322000
                                                                        00324000
   EQUATE dfs'msg'set'num = 26;  << Message set number >>               00326000
                                                                        00328000
   << General error messages.                                 >>        00330000
                                                                        00332000
   EQUATE                                                               00334000
      msg'bit'map'read'error = 1,                                       00336000
      msg'bit'map'write'error = 2,                                      00338000
      msg'bit'map'check'sum'error = 3,                                  00340000
      msg'disable'allocation = 16,                                      00342000
      msg'bit'map'damaged = 17,                                         00344000
      msg'vinit'error = 18,                                             00346000
      msg'unexpected'error = 19;                                        00348000
                                                                        00350000
   << Physical mount error messages.                          >>        00352000
                                                                        00354000
   EQUATE                                                               00356000
      pm'msg'read'dt'error = 4,                                         00358000
      pm'msg'write'dt'error = 5,                                        00360000
      pm'msg'read'dtt'error = 6,                                        00362000
      pm'msg'get'dst'error = 7,                                         00364000
      pm'msg'get'vm'error = 8,                                          00366000
      pm'msg'old'dfs'error = 9,                                         00368000
      pm'msg'map'damaged = 10,                                          00370000
      pm'msg'get'vol'limit'error = 20,                         <<04280>>00372000
      pm'msg'read'disc'label'error = 21,                       <<04280>>00374000
      pm'msg'write'disc'label'error = 22;                      <<04280>>00376000
                                                                        00378000
   << Logical mount error messages.                           >>        00380000
                                                                        00382000
   EQUATE                                                               00384000
      lm'msg'read'disc'label'error = 11,                                00386000
      lm'msg'write'disc'label'error = 12;                               00388000
                                                                        00390000
   << Logical dismount error messages.                        >>        00392000
                                                                        00394000
   EQUATE                                                               00396000
      ld'msg'read'disc'label'error = 13,                                00398000
      ld'msg'write'disc'label'error = 14,                               00400000
      ld'msg'write'dt'error = 15;                                       00402000
                                                                        00404000
   << DSTAT messages >>                                                 00406000
                                                                        00408000
   EQUATE                                                               00410000
      dmsg'read'disc'label'error = 50,                                  00412000
      dmsg'write'disc'label'error = 51,                                 00414000
      dmsg'dtt'read'error = 52,                                         00416000
      dmsg'old'dfs'msg = 53,                                            00418000
      dmsg'get'dst'error = 54,                                          00420000
      dmsg'dt'read'error = 55,                                          00422000
      dmsg'dt'write'error = 56,                                         00424000
      dmsg'get'vm'error = 57,                                           00426000
      dmsg'map'damaged'error = 58,                                      00428000
      dmsg'space'already'free = 59,                                     00430000
      dmsg'space'not'free = 60,                                         00432000
      dmsg'unexpected'dfs'error = 61,                                   00434000
      dmsg'vinit'error = 62;                                            00436000
                                                                        00438000
                                                                        00440000
<<============================================================>>        00442000
<<                                                            >>        00444000
<<                        End INCLDFS2                        >>        00446000
<<                                                            >>        00448000
<<============================================================>>        00450000
