home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / SYSLVL.ZIP / syslevel.txt < prev   
Text File  |  1993-03-26  |  8KB  |  244 lines

  1.  
  2. =========================
  3. OS/2 Syslevel File Format
  4. =========================
  5.  
  6. 03-18-92
  7.  
  8. Duane S. Wood
  9. OS/2 Development
  10. Boca Raton, Florida
  11.  
  12. Syslevel Files
  13. --------------
  14.  
  15.   The new CSF uses the same syslevel file format from previous
  16. releases.  After successfully servicing a product, the syslevel
  17. file corresponding to that product is updated.  A list of the
  18. directories serviced for the product is also appended to the syslevel
  19. file after the SYSTABLE.
  20.  
  21.   Each Syslevel file is specific to one product.  This is consistent
  22. with the existing service design.
  23.  
  24. Syslevel File Format
  25. --------------------
  26.  
  27.   The following diagram shows the general format of a syslevel file.
  28.  
  29.      ╔═════════════════════════════╗
  30.      ║ header (SLFHEADER)          ║
  31.      ║       ...                   ║
  32. ┌────╫────── ulTableOffset         ║
  33. │    ║                             ║
  34. │    ╚═════════════════════════════╝
  35. └──>>╔═════════════════════════════╗
  36.      ║ SYSTABLE                    ║
  37.      ║       ...                   ║
  38.      ║       ...                   ║
  39.      ║       ...                   ║
  40.      ╚═════════════════════════════╝
  41.    **╔═════════════════════════════╗
  42.      ║ Updated directory list      ║
  43.      ║       ...                   ║
  44.      ║       ...                   ║
  45.      ║       ...                   ║
  46.      ╚═════════════════════════════╝
  47.  
  48.    ** Added after successful service
  49.  
  50.   The following are the 'C' definitions for the header (SLFHEADER) and
  51. the SYSTABLE structures:
  52.  
  53. /*--------------------------------------------------------------*\
  54.  * SLFHEADER - This structure contains the information in a     *
  55.  *         SYSLEVEL file header.  The first 2 fields are used   *
  56.  *         to verify that the file is actually a SYSLEVEL file. *
  57.  *         Also identified is the version, date, and offset to  *
  58.  *         the SYSTABLE information -- see SYSTABLE             *
  59. \*--------------------------------------------------------------*/
  60.  
  61. typedef struct _SLFHEADER {
  62.     USHORT    usSignature;              /* special # for id of syslevel file */
  63.     CHAR      achSignature[8];                     /* id, must be 'SYSLEVEL' */
  64.     CHAR      achJulian[5];                               /* date of version */
  65.     USHORT    usSlfVersion;           /* version of syslevel file, must be 1 */
  66.     USHORT    ausReserved[8];                                    /* reserved */
  67.     ULONG     ulTableOffset;                           /* offset of SYSTABLE */
  68. } SLFHEADER;
  69.  
  70.  
  71. /*--------------------------------------------------------------*\
  72.  * SYSTABLE - This structure contains the information about     *
  73.  *         a specific component of a particular system. This    *
  74.  *         info includes date and level information about the   *
  75.  *         system /subsystem and the particular component.      *
  76. \*--------------------------------------------------------------*/
  77.  
  78.                                             /* defines for bSysEdition field */
  79. #define SYSED_SE         0x00                       /* os/2 standard edition */
  80. #define SYSED_EE         0x01                       /* os/2 extended edition */
  81. #define SYSED_ES         0x02                      /* os/2 extended services */
  82. #define SYSED_GENERAL    0x0F                                  /* all others */
  83.  
  84. typedef struct _SYSTABLE {
  85.     USHORT    usSysId;                         /* identifies system/subsytem */
  86.     BYTE      bSysEdition;             /* edition of system, eg SE=00, EE=01 */
  87.     BYTE      bSysVersion;                   /* version, eg 1.00=10, 1.10=11 */
  88.     BYTE      bSysModify;                     /* modify, eg 1.00=00, 1.01=01 */
  89.     USHORT    usSysDate;                                   /* date of system */
  90.     CHAR      achCsdLevel[8];            /* subsytem CSD level, eg, XR?0000_ */
  91.     CHAR      achCsdPrev[8];             /* as above, except for prev system */
  92.     CHAR      achSysName[80];         /* Title of system / subsytem (ASCIIZ) */
  93.     CHAR      achCompId[9];                      /* component ID of subsytem */
  94.     BYTE      bRefreshLevel;                /* eg, for version 1.30.1, use 1 */
  95.     BYTE      bReserved;                              /* reserved, must be 0 */
  96.     CHAR      achType[9];            /* Null terminated type (8 chars +'\0') */
  97.     BYTE      usReserved[6];                          /* reserved, must be 0 */
  98. } SYSTABLE;
  99.  
  100. Detailed SYSTABLE Field Descriptions
  101. ------------------------------------
  102.  
  103.   This is a number that is assigned to each product that is supported for
  104. service.
  105.  
  106.   Currently assigned SYSIDs:
  107.  
  108.      SYSID   EXTENSION    (partial list)
  109.      -----   ---------
  110.  
  111.   [note:  other SYSIDs in the range A0x0 - F0x0 are used by IBM]
  112.  
  113.      C010  -    LMU   LAN Manager Utilities/2
  114.      C020  -    X25   IBM X25 Net Manager
  115.      C040  -    OSI   Communications Subsystem For OS/2 EE
  116.      C060  -    SNP   IBM Snap Dump
  117.      C070  -    ISB   ISDN Coprocessor Support Program Version 1.2
  118.      C080  -    CS2   C SET/2
  119.      C081  -    WF2   Work Frame/2
  120.      1000  -          OS/2 SE
  121.      1010  -          OS/2 Toolkit
  122.      2000  -          OS/2 Comm Mgr
  123.      2010  -          OS/2 Feature group 1  (3270 emulator)
  124.      2020  -          OS/2 Feature group 2  (Async)
  125.      4000  -          OS/2 Database Mgr
  126.      4010  -          OS/2 Query Mgr
  127.      5000  -          OS/2 LAN Requester
  128.      5010  -          OS/2 LAN Server
  129.  
  130.  
  131. bSysEdition
  132. -----------
  133.  
  134.   A number between 0 and 255 (x0-xFF) that represents the type 
  135. of product being serviced.
  136.  
  137.   OS/2 Standard Edition is 0
  138.   OS/2 Extended Edition is 1
  139.   OS/2 Extended Services is 2
  140.   All other products are classified with a general sysedition of 15 (x0F)
  141.  
  142. bSysVersion
  143. -----------
  144.  
  145.   A number between 1 and 255 (x1-xFF) that represents the
  146. major and minor version of the product being serviced.
  147.   The hi-order byte is the major version.  The lo-order byte is the
  148. minor version.  For example:
  149.  
  150.   version 1.0, use x10
  151.   version 1.1, use x11
  152.   version 2.0, use x20
  153.  
  154. bSysModify
  155. ----------
  156.  
  157.   This is a number between 0 and 255 (x0-xFF) that represents a
  158. modification version (eg, 2.01 is major version 2, minor version 0,
  159. and modify version 1)
  160.  
  161. usSysDate   
  162. ---------
  163.  
  164.   This date is the date of the product.
  165. This is represented by a 16-bit bitfield as follows (FDATE):
  166.  
  167.   unsigned day     : 5;
  168.   unsigned month   : 4;
  169.   unsigned year    : 7;
  170.  
  171. achCsdLevel
  172. -----------
  173.  
  174.   This field is very important.  It specifies the level of the product.
  175. It must be exactly 8 characters with underscore ('_') as its last
  176. character.
  177.   The first two characters are specific to the product:
  178.  
  179.   OS/2 Standard Edition - XR
  180.   OS/2 Extended Edition - WR
  181.  
  182.   The third character represents the country:
  183.  
  184. 0 - United States (Note: This is the digit zero, not letter O)
  185. C - Canada (French speaking)
  186. D - Denmark
  187. F - France
  188. G - German
  189. H - Netherlands
  190. I - Italy
  191. J - Japan
  192. L - Finland
  193. N - Norway
  194. P - Portugal
  195. S - Spain
  196. U - United Kingdom
  197. W - Sweden
  198.  
  199. achCsdPrev
  200. ----------
  201.  
  202.   This represents the previous level of the system and has the same
  203. form as achCsdLevel.  For an initial release, this should be the same
  204. as achCsdLevel.
  205.  
  206. achSysName
  207. ----------
  208.  
  209.   This is the translated name of the system.  This must be null-
  210. terminated and has a maximum length of 80 characters.
  211.  
  212. achCompId
  213. ---------
  214.  
  215.   This is a 9-digit ascii number that represents sub-products.
  216.   For IBM OS/2 Base Operating System, this is 560109001.
  217.  
  218. bRefreshLevel
  219. -------------
  220.  
  221.   This represents the refresh level.  This field is not matched
  222. by the service tool, but is displayed from syslevel.exe.
  223.   For version 1.30.1, use 1 for bRefreshLevel.
  224.  
  225. achType
  226. -------
  227.  
  228.   This field contains an optional, NULL terminated alphanumeric type that is
  229. defined by the application.  This field is only used by the OS/2 2.0 version
  230. of SYSLEVEL.EXE.  The OS/2 1.3 SYSLEVEL.EXE will ignore this field.  If
  231. no type is desired, this field must be all zero's (0).  Because the field is
  232. NULL terminated, it has a maximum length of 8 characters (+ NULL = 9).
  233.  
  234. usReserved
  235. ----------
  236.  
  237. All reserved fields must be zero (0).
  238.  
  239.  
  240. [end of file]
  241.  
  242.