List Module Information (QBNLMODI) API


  Required Parameter Group:

1 Qualified user space name Input Char(20)
2 Format name Input Char(8)
3 Qualified module name Input Char(20)
4 Error code I/O Char(*)

  Default Public Authority: *USE

  Threadsafe: No

The List Module Information (QBNLMODI) API lists information about modules. The information is placed in a user space specified by you. This API is similar to the Display Module (DSPMOD) command.

You can use the QBNLMODI API to:


Authorities and Locks

User Space Authority
*CHANGE
User Space Library Authority
*EXECUTE
User Space Lock
*EXCLRD
Module Authority
*USE
Module Library Authority
*EXECUTE
Module Lock
*SHRRD

Required Parameter Group

Qualified user space name
INPUT; CHAR(20)

The user space that is to receive the module information. The first 10 characters contain the user space name. The second 10 characters contain the name of the library where the user space is located. The library name can be a specific library name or one of these special values:

*CURLIB The job's current library
*LIBL The library list
Format name
INPUT; CHAR(8)

The content and format of the information to be returned about the specified modules. One of the following format names may be used:

MODL0100 Format Module export (*EXPORT) information.
MODL0200 Format Module import (*IMPORT) information.
MODL0300 Format Module procedures (*PROCLIST) information.
MODL0400 Format Referenced system objects (*REFSYSOBJ) information.
MODL0500 Format Module copyright (*COPYRIGHT) information.

Note: Do not use the generic header entry size for formats returned by this API. Use the Size of this entry field returned in each format for the size of each entry.

Qualified module name
INPUT; CHAR(20)

The name of the module for which the information is to be listed. The first 10 characters contain the module name. The second 10 characters contain the name of the library where the module is located.

The module name can be a specific module name or one of the following special values:

*ALL All modules
generic* All modules that begin with this generic prefix. For example, WRK* lists information for all modules that begin with WRK to which you are authorized.

The library name can be a specific library name or one of these special values:

*ALL All libraries in the system
*ALLUSR All non-system libraries. For information on the libraries included, see *ALLUSR in Generic library names.
*CURLIB The job's current library
*LIBL The library list
*USRLIBL Libraries listed in the user portion of the library list
Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error code parameter.


Format of the Generated List

The user space contains:

For details about the user area and generic header, see User spaces. For descriptions of each field in the list returned, see Field Descriptions.

Note: Do not use the generic header entry size for formats returned by this API. Use the Size of this entry field returned in each format for the size of each entry.

Input Parameter Section

Offset Type Field
Dec Hex
0 0 CHAR(10) User space name specified
10 A CHAR(10) User space library name specified
20 14 CHAR(8) Format name specified
28 1C CHAR(10) Module name specified
38 26 CHAR(10) Module library name specified


Header Section

Offset Type Field
Dec Hex
0 0 CHAR(10) User space name used
10 A CHAR(10) User space library name used


MODL0100 Format

The MODL0100 format lists the symbols defined in the module and that are exported to other modules. The following table shows how this information for each module is organized. For detailed descriptions of the fields in the list, see Field Descriptions.

Note: Do not use the generic header entry size for this format. Use the Size of this entry field returned in this format for the size of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Size of this entry
4 4 CHAR(10) Module name
14 E CHAR(10) Module library name
24 18 CHAR(1) Exported defined symbol type
25 19 CHAR(3) Reserved
28 1C BINARY(4) Offset to exported defined symbol name
32 20 BINARY(4) Length of exported defined symbol name
36 24 CHAR(10) Uses argument optimization (ARGOPT)
46 2E CHAR(*) Reserved
Module information through offsets
    CHAR(*) Exported defined symbol name


MODL0200 Format

The MODL0200 format lists symbols defined external to the module. The following table shows how this information for each module is organized. For detailed descriptions of the fields in the list, see Field Descriptions.

Note: Do not use the generic header entry size for this format. Use the Size of this entry field returned in this format for the size of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Size of this entry
4 4 CHAR(10) Module name
14 E CHAR(10) Module library name
24 18 CHAR(1) Imported (unresolved) symbol type
25 19 CHAR(3) Reserved
28 1C BINARY(4) Offset to imported (unresolved) symbol name
32 20 BINARY(4) Length of imported (unresolved) symbol name
36 24 CHAR(10) Uses argument optimization (ARGOPT)
46 2E CHAR(*) Reserved
Module information through offsets
    CHAR(*) Imported (unresolved) symbol name


MODL0300 Format

The MODL0300 format lists procedure names and their types. The following table shows how this information for each module is organized. For detailed descriptions of the fields in the list, see Field Descriptions.

Note: Do not use the generic header entry size for this format. Use the Size of this entry field returned in this format for the size of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Size of this entry
4 4 CHAR(10) Module name
14 E CHAR(10) Module library name
24 18 CHAR(1) Procedure type
25 19 CHAR(3) Reserved
28 1C BINARY(4) Offset to procedure name
32 20 BINARY(4) Length of procedure name
36 24 CHAR(10) Uses argument optimization (ARGOPT)
46 2E CHAR(*) Reserved
Module information through offsets
    CHAR(*) Procedure name


MODL0400 Format

The MODL0400 format lists the objects that are referenced by the module when the module is bound to an ILE program or service program. The following table shows how this information for each module is organized. For detailed descriptions of the fields in the list, see Field Descriptions.

Note: Do not use the generic header entry size for this format. Use the Size of this entry field returned in this format for the size of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Size of this entry
4 4 CHAR(10) Module name
14 E CHAR(10) Module library name
24 18 CHAR(10) Object type
34 22 CHAR(10) Object library name
44 2C BINARY(4) Offset to object name
48 30 BINARY(4) Length of object name
52 34 CHAR(*) Reserved
Module information through offsets
    CHAR(*) Object name


MODL0500 Format

The MODL0500 format lists the copyrights contained in the module. The following table shows how this information for each module is organized. For detailed descriptions of the fields in the list, see Field Descriptions.

Note: Do not use the generic header entry size for this format. Use the Size of this entry field returned in this format for the size of each entry.

Offset Type Field
Dec Hex
0 0 BINARY(4) Size of this entry
4 4 CHAR(10) Module name
14 E CHAR(10) Module library name
24 18 BINARY(4) Offset to copyright
28 1C BINARY(4) Length of copyright
32 20 CHAR(*) Reserved
Module information through offsets
    CHAR(*) Copyright


Field Descriptions

Copyright. Copyright information for the module.

Exported defined symbol name. An exported procedure or variable in this module. Other modules may use these symbols.

Exported defined symbol type. Indicates whether the exported symbol is a procedure or a data symbol. The possible values are:

'00'X The exported symbol is a procedure.
'01'X The exported symbol is a data item.

Format name specified. The format name that was passed to this API on the call in the format parameter.

Imported (unresolved) symbol name. An imported procedure or variable in this module. This is typically a reference to a procedure exported from another module.

Imported (unresolved) symbol type. Indicates whether the imported symbol is a procedure or a data symbol. The possible values are:

'00'X The imported symbol is a procedure.
'01'X The imported symbol is a data item.

Length of copyright. The length of the copyright.

Length of exported defined symbol name. The length of the exported defined symbol name.

Length of imported (unresolved) symbol name. The length of the imported (unresolved) symbol name.

Length of object name. The length of the object name.

Length of procedure name. The length of the procedure name.

Module library name. The name of the library containing the module.

Module library name specified. The module library name that was passed to this API in the qualified module name parameter.

Module name. The name of the module.

Module name specified. The module name that was passed to this API in the qualified module name parameter.

Object library name. The name of the library where the object exists. If the object library name is blank, the object is in the integrated file system.

Object name. A system object that is referenced at bind time. This object (modules and/or service programs and/or binding directories) is used by CRTPGM or CRTSRVPGM when this module is listed on the MODULE parameter on CRTPGM or CRTSRVPGM.

Object type. The object type of the system object that is referenced at bind time. The possible special values are:

*MODULE The object is a module.
*SRVPGM The object is a service program.
*BNDDIR The object is a binding directory.

Offset to copyright. Offset from the beginning of the user space to the copyright for this entry.

Offset to exported defined symbol name. Offset from the beginning of the user space to the exported defined symbol name for this entry.

Offset to imported (unresolved) symbol name. Offset from the beginning of the user space to the imported (unresolved) symbol name for this entry.

Offset to object name. Offset from the beginning of the user space to the object name for this entry.

Offset to procedure name. Offset from the beginning of the user space to the procedure name for this entry.

Procedure name. A procedure defined in this module.

Procedure type. The type of procedure. The possible values are:

'00'X Regular procedure. If the type is regular, this procedure cannot serve as a program entry procedure.
'01'X Entry point procedure. If the type is entry point, this procedure can serve as a program entry procedure when this module is bound to a program.

Reserved. An ignored field.

Size of this entry. The size, in bytes, of this entry. Do not use the generic header entry size for formats with this field. Use this field for the size of each entry.

User space library name specified. The user space library name that was passed to this API on the call in the qualified user space name parameter.

User space library name used. The name of the library that contains the user space that receives the module information requested.

User space name specified. The user space name that was passed to this API on the call in the qualified user space name parameter.

User space name used. The name of the user space that receives the module information requested.

Uses argument optimization (ARGOPT). Whether or not the procedure import or export uses argument optimization. For data imports and exports, this value has no meaning and is always given as a blank. For some procedure imports, this value cannot be determined and is given as *UNKNOWN. Possible values follow:

*YES The procedure import or export uses argument optimization (ARGOPT)
*NO The procedure import or export does not use argument optimization (ARGOPT)
*UNKNOWN The procedure import is used only to construct procedure pointers and is never called directly.
Blank The symbol is not a procedure import or export.


Error Messages

Message ID Error Message Text
CPD5CFE E Module &1 in library &2 is in error.
CPF24B4 E Severe error while addressing parameter list.
CPF3C20 E Error found by program &1.
CPF3C21 E Format name &1 is not valid.
CPF3C90 E Literal value cannot be changed.
CPF3CAA E List is too large for user space &1.
CPF3CF1 E Error code parameter not valid.
CPF5CFD E Module name &1 not a valid special value.
CPF5CFE E Module &1 in file &2 not changed.
CPF811A E User space &4 in &9 damaged.
CPF8122 E &8 damage on library &4.
CPF8123 E Damage on object information for library &4.
CPF8130 E Character in quoted name not valid.
CPF9801 E Object &2 in library &3 not found.
CPF9802 E Not authorized to object &2 in &3.
CPF9803 E Cannot allocate object &2 in library &3.
CPF9804 E Object &2 in library &3 damaged.
CPF9806 E Cannot perform function for object &2 in library &3.
CPF9807 E One or more libraries in library list deleted.
CPF9808 E Cannot allocate one or more libraries on library list.
CPF9810 E Library &1 not found.
CPF9811 E Program &1 in library &2 not found.
CPF9820 E Not authorized to use library &1.
CPF9821 E Not authorized to program &1 in library &2.
CPF9830 E Cannot assign library &1.
CPF9838 E User profile storage limit exceeded.


API introduced: V3R7

[ Back to top | Program and CL Command APIs | APIs by category ]