Updating the System Status Index (SSI)

You can use the SETSSI control statement to overlay the existing data in the SSI with your own data. For a complete description of the SETSSI control statement, see SPZAP control statements.

The SSI is a 4-byte field created by the linkage editor in the directory entry of a load module. It is useful for keeping track of any modifications that are performed on a load module. SPZAP updates the system status index automatically whenever it replaces data in the associated module.

Not all load modules have system status information. In those that do, the SSI is located in the last four bytes of the user data field in the directory entry. Figure 1 shows the position of the SSI in load module directory entries.

Figure 1. SSI bytes in a load module directory entry
┌───────────────┬───────────┬──────┬────────────────────┬────────────┐
* Member Name   *   TTR     *   C  *  User Data Field   *  SSI       *
* 1          8  *  9    11  *  12  *  13 to 70 maximum  *  variable  *
└───────────────┴───────────┴──────┴────────────────────┴────────────┘

Figure 2 shows the composition of the SSI field and the flag bits used to indicate the types of changes made to the corresponding load module program.

The first byte of SSI information contains the member's change level. When a load module is initially released by IBM®, its change level is set at one. Thereafter, the change level is increased by one for each release that includes a new version of that program. If you make a change to the SSI for any of the IBM-released programs, take care not to destroy this maintenance level indicator unless you purposely mean to do so. To keep the change level byte at its original value, find out what information is contained in the SSI before using the SETSSI function. The LISTLOAD control statement of the LIST service aid can give you the information you need.

Figure 2. Flag bytes in the System Status Index field
flag bytes in the system status index field
The second byte of the SSI is called the flag byte. Bits within the flag byte contain information reflecting the member's maintenance status. You need only be concerned with two of the eight bits when you are using SPZAP:

All other bits in the flag byte should be retained in the SSI as they appeared before the SETSSI operation took place, so as not to interfere with the normal system maintenance procedures.

The third and fourth bytes of the system status index are used to store a serial number that identifies the first digit and the last three digits of a PTF number. SPZAP will not change these bytes unless you request a change by using the SETSSI control statement.