home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / syslevel.zip / SYSLEVEL.SCR < prev   
Text File  |  1992-03-18  |  10KB  |  297 lines

  1. .pm 5;.ll 70
  2. .DH 4 us tc
  3. :frontm.
  4. :titlep.
  5. :title.OS/2 Syslevel File Format
  6. :date.
  7. :author.Duane S. Wood
  8. :address.
  9. :aline.OS/2 Development
  10. :aline.Boca Raton, Florida
  11. :aline.DWOOD at BCRVMPC1
  12. :eaddress.
  13. :etitlep.
  14. .*
  15. :toc.
  16. :body.
  17. :h3.Syslevel Files
  18. :p.The new CSF uses the same syslevel file format from previous
  19. releases.  After successfully servicing a product, the syslevel
  20. file corresponding to that product is updated.  A list of the
  21. directories serviced for the product is also appended to the syslevel
  22. file after the SYSTABLE.
  23. :p.Each Syslevel file is specific to one product.  This is consistent
  24. with the existing service design.
  25. :h4.Syslevel File Format
  26. :p.The following diagram shows the general format of a syslevel file.
  27. :fig place=inline frame=none
  28.      ╔═════════════════════════════╗
  29.      ║ header (SLFHEADER)          ║
  30.      ║       ...                   ║
  31. ┌────╫────── ulTableOffset         ║
  32. │    ║                             ║
  33. │    ╚═════════════════════════════╝
  34. └──>>╔═════════════════════════════╗
  35.      ║ SYSTABLE                    ║
  36.      ║       ...                   ║
  37.      ║       ...                   ║
  38.      ║       ...                   ║
  39.      ╚═════════════════════════════╝
  40.    **╔═════════════════════════════╗
  41.      ║ Updated directory list      ║
  42.      ║       ...                   ║
  43.      ║       ...                   ║
  44.      ║       ...                   ║
  45.      ╚═════════════════════════════╝
  46.  
  47.    ** Added after successful service
  48. :figcap.Syslevel File General Format
  49. :efig
  50. .pa
  51. :p.The following are the 'C' definitions for the header (SLFHEADER) and
  52. the SYSTABLE structures:
  53. .pm 0;.ll 80
  54. .fo off
  55. /*--------------------------------------------------------------*\
  56.  * SLFHEADER - This structure contains the information in a     *
  57.  *         SYSLEVEL file header.  The first 2 fields are used   *
  58.  *         to verify that the file is actually a SYSLEVEL file. *
  59.  *         Also identified is the version, date, and offset to  *
  60.  *         the SYSTABLE information -- see SYSTABLE             *
  61. \*--------------------------------------------------------------*/
  62.  
  63. typedef struct _SLFHEADER {
  64.     USHORT    usSignature;              /* special # for id of syslevel file */
  65.     CHAR      achSignature[8];                     /* id, must be 'SYSLEVEL' */
  66.     CHAR      achJulian[5];                               /* date of version */
  67.     USHORT    usSlfVersion;           /* version of syslevel file, must be 1 */
  68.     USHORT    ausReserved[8];                                    /* reserved */
  69.     ULONG     ulTableOffset;                           /* offset of SYSTABLE */
  70. } SLFHEADER;
  71.  
  72.  
  73. /*--------------------------------------------------------------*\
  74.  * SYSTABLE - This structure contains the information about     *
  75.  *         a specific component of a particular system. This    *
  76.  *         info includes date and level information about the   *
  77.  *         system /subsystem and the particular component.      *
  78. \*--------------------------------------------------------------*/
  79.  
  80.                                             /* defines for bSysEdition field */
  81. #define SYSED_SE         0x00                       /* os/2 standard edition */
  82. #define SYSED_EE         0x01                       /* os/2 extended edition */
  83. #define SYSED_ES         0x02                      /* os/2 extended services */
  84. #define SYSED_GENERAL    0x0F                                  /* all others */
  85.  
  86. typedef struct _SYSTABLE {
  87.     USHORT    usSysId;                         /* identifies system/subsytem */
  88.     BYTE      bSysEdition;             /* edition of system, eg SE=00, EE=01 */
  89.     BYTE      bSysVersion;                   /* version, eg 1.00=10, 1.10=11 */
  90.     BYTE      bSysModify;                     /* modify, eg 1.00=00, 1.01=01 */
  91.     USHORT    usSysDate;                                   /* date of system */
  92.     CHAR      achCsdLevel[8];            /* subsytem CSD level, eg, XR?0000_ */
  93.     CHAR      achCsdPrev[8];             /* as above, except for prev system */
  94.     CHAR      achSysName[80];         /* Title of system / subsytem (ASCIIZ) */
  95.     CHAR      achCompId[9];                      /* component ID of subsytem */
  96.     BYTE      bRefreshLevel;                /* eg, for version 1.30.1, use 1 */
  97.     BYTE      bReserved;                              /* reserved, must be 0 */
  98.     CHAR      achType[9];            /* Null terminated type (8 chars +'\0') */
  99.     BYTE      usReserved[6];                          /* reserved, must be 0 */
  100. } SYSTABLE;
  101. .fo on
  102. .pm 5;.ll 70
  103. :h4.Detailed SYSTABLE Field Descriptions
  104. :dl tsize=15.
  105. :dt.usSysId
  106. :dd.This is a number that is assigned to each product that is supported for
  107. service.
  108. :p.Currently assigned SYSIDs:
  109. .pm 0;.ll 80
  110. .fo off
  111.      SYSID   EXTENSION
  112.      -----   ---------
  113.      F000  -    ???
  114.      F010  -    SD2
  115.      F020  -    TCP
  116.      F030  -    PNA
  117.      F040  -    TKT
  118.      F050  -    POS
  119.      F060  -    FXA
  120.      F070  -    CS2
  121.      F080  -    MLS
  122.      F090  -    HL2
  123.      F0A0  -    CPP
  124.      F0B0  -    CSE
  125.      F0C0  -    MOT
  126.      F0D0  -    FXM
  127.      F0E0  -    PCS
  128.      F0F0  -    POM
  129.      E000  -    PER
  130.      E010  -    TD2
  131.      E020  -    TR2
  132.      E030  -    NTC
  133.      E040  -    PW0
  134.      E050  -    PW1
  135.      E060  -    PW2
  136.      E070  -    PW3
  137.      E080  -    PW4
  138.      E090  -    ART   Artic OS/2 Support
  139.      E0A0  -    NDM
  140.      E0B0  -    OV2
  141.      E0C0  -    LDU
  142.      E0D0  -    NBT
  143.      E0E0  -    VCK
  144.      E0F0  -    VC2
  145.      D000  -    ES2
  146.      D010  -    EDS
  147.      D020  -    BS2
  148.      D030  -    BDM
  149.      D040  -    DS2
  150.      D050  -    IS2
  151.      D060  -    ED2
  152.      D070  -    DC2
  153.      D080  -    ELR
  154.      D090  -    ELB
  155.      D0A0  -    FS1
  156.      D0B0  -    FS2
  157.      D0C0  -    ENF
  158.      D0D0  -    TL2
  159.      D0E0  -    CWW   Common Workfolder Program Workplace/2
  160.      D0F0  -    CWS   Common Workfolder Program Server/2
  161.      C000  -    CWA   Common Workfolder Program API/2
  162.      C010  -    LMU   LAN Manager Utilities/2
  163.      C020  -    X25   IBM X25 Net Manager
  164.      C030  -    EQO   Floor Control/2
  165.      C040  -    OSI   Communications Subsystem For OS/2 EE
  166.      C050  -    EMQ   Starview PWS
  167.      C060  -    SNP   IBM Snap Dump
  168.      C070  -    ISB   ISDN Coprocessor Support Program Version 1.2
  169.      C080  -    CS2   C SET/2
  170.      C081  -    WF2   Work Frame/2
  171.      C090  -    XXX   Canada Trust customer apps (customer #519190633)
  172.      C0A0  -    PPV   Paperless Plan Viewer
  173.      C0B0  -    PPB   Paperless Plan Builder
  174.      C0C0  -    PPS   Paperless Plan Server
  175.      C0D0  -    PPP   Paperless Plan Packet
  176.      C0E0  -    EYN   Extended Operations Console Facility/2 (EOCF/2)
  177.      C0F0  -    XXX   Bank of Montreal Applications
  178.  
  179.      B000  -    XXX   ) Sears Applications
  180.      ...              )
  181.      B0F0             )
  182.  
  183.      A000  -    XXX   ) Cigna Written Applications
  184.      ...              )
  185.      A0F0             )
  186.  
  187.  
  188.      1000  -          OS/2 SE
  189.      1010  -          OS/2 Toolkit
  190.      2000  -          OS/2 Comm Mgr
  191.      2010  -          OS/2 Feature group 1  (3270 emulator)
  192.      2020  -          OS/2 Feature group 2  (Async)
  193.      4000  -          OS/2 Database Mgr
  194.      4010  -          OS/2 Query Mgr
  195.      5000  -          OS/2 LAN Requester
  196.      5010  -          OS/2 LAN Server
  197. .fo on
  198. .pm 5;.ll 70
  199. :dt.bSysEdition
  200. :dd.This is a number between 0 and 255 (x0-xFF) that represents the
  201. type of product being serviced.
  202. :sl.
  203. :li.OS/2 Standard Edition is 0
  204. :li.OS/2 Extended Edition is 1
  205. :li.OS/2 Extended Services is 2
  206. :li.All other products are classified with a general sysedition of 15 (x0F)
  207. :esl.
  208. :dt.bSysVersion
  209. :dd.This is a number between 1 and 255 (x1-xFF) that represents the
  210. major and minor version of the product being serviced.
  211. :p.The hi-order byte is the major version.  The lo-order byte is the
  212. minor version.  For example:
  213. :sl.
  214. :li.version 1.0, use x10
  215. :li.version 1.1, use x11
  216. :li.version 2.0, use x20
  217. :esl.
  218. :dt.bSysModify
  219. :dd.This is a number between 0 and 255 (x0-xFF) that represents a
  220. modification version (eg, 2.01 is major version 2, minor version 0,
  221. and modify version 1)
  222. :dt.usSysDate
  223. :dd.This date is the date of the product.
  224. :p.This is represented by a 16-bit bitfield as follows (FDATE):
  225. :sl compact.
  226. :li.unsigned day     &gml. 5;
  227. :li.unsigned month   &gml. 4;
  228. :li.unsigned year    &gml. 7;
  229. :esl.
  230. :dt.achCsdLevel
  231. :dd.This field is very important.  It specifies the level of the product.
  232. It must be exactly 8 characters with underscore ('_') as its last
  233. character.
  234. :p.The first two characters are specific to the product:
  235. :sl.
  236. :li.OS/2 Standard Edition - XR
  237. :li.OS/2 Extended Edition - WR
  238. :esl.
  239. :p.The third character represents the country:
  240. :dl compact tsize=5.
  241. :dt.0
  242. :dd.United States (Note: This is the digit zero, not letter O)
  243. :dt.C
  244. :dd.Canada (French speaking)
  245. :dt.D
  246. :dd.Denmark
  247. :dt.F
  248. :dd.France
  249. :dt.G
  250. :dd.German
  251. :dt.H
  252. :dd.Netherlands
  253. :dt.I
  254. :dd.Italy
  255. :dt.J
  256. :dd.Japan
  257. :dt.L
  258. :dd.Finland
  259. :dt.N
  260. :dd.Norway
  261. :dt.P
  262. :dd.Portugal
  263. :dt.S
  264. :dd.Spain
  265. :dt.U
  266. :dd.United Kingdom
  267. :dt.W
  268. :dd.Sweden
  269. :edl.
  270. :dt.achCsdPrev
  271. :dd.This represents the previous level of the system and has the same
  272. form as achCsdLevel.  For an initial release, this should be the same
  273. as achCsdLevel.
  274. :dt.achSysName
  275. :dd.This is the translated name of the system.  This must be null-
  276. terminated and has a maximum length of 80 characters.
  277. :dt.achCompId
  278. :dd.This is a 9-digit ascii number that represents sub-products.
  279. :p.For IBM OS/2 Base Operating System, this is 560109001.
  280. :dt.bRefreshLevel
  281. :dd.This represents the refresh level.  This field is not matched
  282. by the service tool, but is displayed from syslevel.exe.
  283. :p.For version 1.30.1, use 1 for bRefreshLevel.
  284. :dt.achType
  285. :dd.This field contains an optional, NULL terminated alphanumeric type that is
  286. defined by the application.  This field is only used by the OS/2 2.0 version
  287. of SYSLEVEL.EXE.  The OS/2 1.3 SYSLEVEL.EXE will ignore this field.  If
  288. no type is desired, this field must be all zero's (0).  Because the field is
  289. NULL terminated, it has a maximum length of 8 characters (+ NULL = 9).
  290. :dt.usReserved
  291. :dd.All reserved fields must be zero (0).
  292. :edl.
  293.