The QSYSINC (system include) library provides all source includes for APIs shipped with i5/OS™.
This optionally installed library is fully supported, which means you can write APARs if you find errors in the includes.
You can install this library by using the GO LICPGM functions of i5/OS. Select the Install Licensed Programs option on the Work with Licensed Programs display and the i5/OS System Openness Includes option on the Install Licensed Programs display.
The terms include file and header file are interchangeable and pertain to the contents of the QSYSINC library. These files are intended to be compatible with future releases.
The naming conventions for the includes are the same as either the OPM API or the ILE service program name. If both exist, the include has both names.
The following table lists the include files that are shipped with the QSYSINC library:
Operating Environment | Language | File Name | Member Name (Header File) |
---|---|---|---|
OPM APIs | ILE C 1 | H | OPM API program name |
RPG | QRPGSRC | OPM API program name or OPM API program name with the letter E replacing the letter Q for members containing array definitions | |
ILE RPG | QRPGLESRC | OPM API program name | |
COBOL | QLBLSRC | OPM API name | |
ILE COBOL | QCBLLESRC | OPM API program name | |
ILE APIs | ILE C | H | Service program name or API program name 2 |
ILE RPG | QRPGLESRC | Service program name or API program name 2 | |
ILE COBOL | QCBLLESRC | Service program name or API program name 2 | |
UNIX® type | ILE C | ARPA | Industry defined |
ILE C | H | Industry defined | |
ILE C | NET | Industry defined | |
ILE C | NETINET | Industry defined | |
ILE C | NETNS | Industry defined | |
ILE C | SYS | Industry defined | |
Notes:
|
Besides the includes for specific APIs, other includes existing in the QSYSINC library follow:
API | Description |
---|---|
QLIEPT and QUSEPT | Allow C-language application programs to call OPM APIs directly through the system entry point table |
QUSGEN | Defines the generic header for list APIs |
QUSEC | Contains the structures for the error code parameter |
Qxx | Provides common structures that are used by multiple APIs (where the xx is the component identifier, for example, QMH, QSY, and so forth) |
The include files that are shipped with the system define only the fixed portions of the formats. You must define the varying-length fields. The QSYSINC include files are read-only files. If you use a structure that contains one or more varying-length fields, you need to copy the include file to your library and edit your copy. Uncomment the varying-length fields in your copy of the include file, and specify the actual lengths you want. When using a structure as an input to an API, initialize the structure in its entirety (typically to x'00' but refer to the specific API documentation for the correct value) prior to setting specific field values within the structure. This will avoid having to initialize reserved fields by name, as the reserved field name may change in future releases. The files are built with a CCSID of 00037. When you compile a program in a specific CCSID, any QSYSINC include file is converted to the program CCSID.
Exit programs only have an include if the exit program contains a structure. The member names for these exit programs start with the letter E. Except for RPG array definitions for APIs that also start with E, any member names in the QSYSINC library that start with the letter E are include files for exit programs. The QSYSINC member name of these includes is provided in the parameter box for the applicable exit programs.
For development of client-based applications, integrated-file-system symbolic links to QSYSINC openness includes are also provided in the /QIBM/include path.
All source physical files are shipped with read capabilities only; changes cannot be made to the QSYSINC library. All are built with a CCSID of 00037. When you compile a program in a specific CCSID, any QSYSINC include file is converted to the program CCSID.
If you are coding in ILE C, the header files in the QSYSINC library are considered system include files. You should use the < and > symbols on the #include statement; this affects how the library list is used to search for header files.
If you are coding in RPG or COBOL and need to define storage for variable length fields, you should copy the appropriate QSYSINC system include to a user source library. You can then customize the include file to your specific needs and use the customized member when you compile your application.
If you are developing applications on a release n system that will run on a release n-1 system, you may want to copy each release's include files to user source libraries. This will minimize the impact of include file changes as APIs are enhanced over time with additional fields.