NMLDEF — Customizing the nucleus

Description

A set of tables, called nucleus module lists (NMLs), are used to identify the members in SYS1.NUCLEUS that are to be loaded into the DAT-on nucleus region. NMLs can be installed as part of an IBM® product, a vendor product, or a customer user modification. Each NML contains a list of the SYS1.NUCLEUS members that are part of the same product or user modification. The NMLs themselves are load modules that also reside in SYS1.NUCLEUS.

The NML must have a module name (CEST name) in the form of IEANYnnn:
Y
Y can be either of S or C.
  • S stands for IBM provided NML.
  • C stands for customer provided NML.
nnn
nnn is a 3-digit decimal number from 001 through 256.

Use the NMLDEF macro to generate an NML statement (at the end of the macro expansion). See z/OS MVS Programming: Authorized Assembler Services Guide for more information on using the NMLDEF macro.

Existing nucleus-resident entry points cannot be replaced or overridden using an NML. To find out how to perform these functions, refer to information about customizing the nucleus in the z/OS MVS Programming: Authorized Assembler Services Guide.

You can use a NUCLSTxx member of SYS1.PARMLIB instead of NMLDEF to specify modules to be loaded into the nucleus. For more information on NUCLSTxx, especially its possible advantages over NMLDEF, see z/OS MVS Initialization and Tuning Reference.

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Problem state or supervisor state, and any PSW key
Dispatchable unit mode: Task or SRB
Cross memory mode: No requirement
AMODE: 24- or 31-bit
ASC mode: No requirement
Interrupt status: No requirement
Locks: No requirement
Control parameters: None.
Note: This macro does not generate any executable code.

Programming requirements

None.

Restrictions

None.

Register information

None.

Performance implications

None.

Syntax

The standard form of the NMLDEF macro is written as follows:

Syntax Description
   
name name: Symbol. Begin name in column 1.
   
One or more blanks must precede NMLDEF.
   
NMLDEF  
   
One or more blanks must follow NMLDEF.
   
NUCL=nucid nucid: One to eight characters in length.
   

Parameters

The parameter is explained as follows:

NUCL=nucid
Identifies the name of one or more SYS1.NUCLEUS members that are to be loaded into the nucleus region. At least one nucleus identifier must be specified on the NMLDEF macro. If you specify more than one nucleus identifier, enclose the list in parentheses and use commas to separate the identifiers.

ABEND codes

None.

Return and reason codes

None.

Example 1

Specify the macro as follows to name an NML as IEANC002 and identify the members named ABC00122 and ABC00123 in SYS1.NUCLEUS that are to be loaded into the nucleus region.
IEANC002  NMLDEF  NUCL=(ABC00122,ABC00123)

Example 2

To install a user nucleus-resident routine or a release of a product, you can use SMP/E, or code your own JCL.

The following example JCL creates an NML with the CSECT name of IEANC001 containing the module name of DXXTEST.
//FORDON    JOB   MSGLEVEL=(1,1)
//NMLDEF    EXEC  ASMHCL
//ASM.SYSIN    DD    *
IEANC001  NMLDEF NUCL=DXXTEST
//LKED.SYSLMOD DD    DSN=SYS1.NUCLEUS,VOL=SER=DCH352,UNIT=3380,DISP=OLD
//LKED.SYSIN   DD    *
  NAME IEANC001
/*

Example 3

To install a user nucleus-resident routine or a release of a product, you can use SMP/E, or code your own JCL.

The following example JCL creates NMLs with the CSECT name of IEANC002 containing module names of ABC00001-ABC00010.
//FORDON    JOB   MSGLEVEL=(1,1)
//NMLDEF    EXEC  ASMHCL
//ASM.SYSIN    DD    *
IEANC002  NMLDEF NUCL=(ABC00001,ABC00002,ABC00003,ABC00004,ABC00005,    X
                ABC00006,ABC00007,ABC00008,ABC00009,ABC00010)
//LKED.SYSLMOD DD    DSN=SYS1.NUCLEUS,VOL=SER=DCH352,UNIT=3380,DISP=OLD
//LKED.SYSIN   DD    *
  NAME IEANC002
/*