Table of Contents (exploded view)
Abstract for MVS Program Management: Advanced Facilities
Summary of changes
Summary of changes for z/OS Version 2 Release 1
Using the binder application programming interfaces (APIs)
Understanding binder programming concepts
Symbol names in API calls
Program management support of class attributes
Organization of data in the program module
Module level information
Multiple-text class modules, load segments and ESD offsets
Version number in an API call
Binder dialogs
Processing intents
IEWBUFF - Binder API buffers interface assembler macro for generating and mapping data areas
Using the IEWBUFF macro
FREEBUF: Free buffer storage
GETBUF: Get buffer storage
INITBUF: Initialize buffer header
MAPBUF: Map buffer declaration
IEWBIND - Binder regular API functions
Invoking the binder API
Setting the invocation environment
Loading the binder
Invoking the binder using the macros
Invoking the binder without the macros
Providing buffer areas
Providing the environment
Obtaining the address of the binder program
Providing the parameter lists
Invoking the binder
Binder API common return and reason codes
Coding the IEWBIND macro
Defining varying character strings
Defining section names
Defining parameter lists
Setting null values
IEWBIND function reference
ADDA: Add alias
ALIGNT: Align text
ALTERW: Alter workmod
AUTOC: Perform incremental autocall
BINDW: Bind workmod
CREATEW: Create workmod
DELETEW: Delete workmod
DLLR: Rename DLL modules
ENDD: End dialog
GETC: Get compile unit list
GETD: Get data
GETE: Get ESD data
GETN: Get names
IMPORT: Import a function or external variable
INCLUDE: Include module
INSERTS: Insert section
LOADW: Load workmod
ORDERS: Order sections
PUTD: Put data
RENAME: Rename symbolic references
RESETW: Reset workmod
SAVEW: Save workmod
SETL: Set library
SETO: Set option
STARTD: Start dialog
STARTS: Start segment
Binder API reason codes in numeric sequence
IEWBFDAT - Binder Fast data access API functions
Using the fast data access service
Environment
Parameter descriptions
Buffer
Class
Count
Cursor
Information on retrieving data from a PO1 module
DCBptr
DDname
DEptr
Eptoken
Member
Mtoken
Path
Retcode
Rsncode
Section
The Request Code interface
Function code usage summary
Common Parameters
Optional parameters
SB - Starting a session with a BLDL identifier
SJ - Starting a session with a DD name or path
SQ - Starting a session with a CSVQUERY token
SS - Starting a session with a System DCB
GC - Getting Compile unit information
GD - Getting Data from any class
GE - Getting External Symbol Dictionary data
GN - Getting Names of sections or classes
RC - Return Code information
EN - Ending a session
The Unitary interface
The IEWBFDA macro
Unitary parameter list
Error handling
Return and reason codes
IEWBNDD, IEWBNDDX, IEWBNDD6 - Binder C/C++ API DLL functions
Using the binder C/C++ API and headers
Environment
Binder API functions
__iew_addA() – Add alias
__iew_addA2() – Add alias
__iew_alignT() – Align text
__iew_alignT2() – Align text (version 2)
__iew_alterW() – Alter workmod
__iew_autoC() – Perform incremental autocall
__iew_bindW() – Bind workmod
__iew_closeW() – Close workmod
__iew_getC() – Get compile unit list
__iew_getD() – Get data
__iew_getE() – Get ESD data
__iew_getN() – Get names
__iew_import() – Import a function or external variable
__iew_includeDeptr() – Include module via DEPTR
__iew_includeName() – Include module by way of NAME
__iew_includePtr() – Include module via POINTER
__iew_includeSmde() – Include module via SMDE
__iew_includeToken() – Include module via DEPTR
__iew_insertS() – Insert section
__iew_loadW() – Load workmod
__iew_openW() – Open workmod
__iew_orderS() – Order sections
__iew_putD() – Put data
__iew_rename() – Rename symbolic references
__iew_resetW() – Reset workmod
__iew_saveW() – Save workmod
__iew_setL() – Set library
__iew_setO() – Set option
__iew_startS() – Start segment
Binder API utility functions
__iew_create_list() – Create list
__iew_eod() – Test for end of data
__iew_get_reason_code() – Get a reason code from API context
__iew_get_return_code() – Get a return code from API context
__iew_get_cursor() – Get cursor value
__iew_set_cursor() – Set cursor value
Fast data functions
__iew_fd_end() – End a session
__iew_fd_getC() – Get compile unit list
__iew_fd_getD() – Get data
__iew_fd_getE() – Get ESD data
__iew_fd_getN() – Get names
__iew_fd_open() – Open a session
__iew_fd_startDcb() – Starting a session with BLDL data
__iew_fd_startDcbS() – Starting a session with a System DCB
__iew_fd_startName() – Starting a session with a DD name or path
__iew_fd_startToken() – Starting a session with a CSVQUERY token
Fast data utility functions
__iew_fd_eod() – Test for end of data
__iew_fd_get_reason_code() – Get a reason code from FD context
__iew_fd_get_return_code() – Get a return code from FD context
__iew_fd_get_cursor() – Get cursor value
__iew_fd_set_cursor() – Set cursor value
Binder API and fast data API common utility functions
__iew_api_name_to_str() – Convert API name into string
Binder API return and reason codes
Fast data access return and reason codes
Invoking the binder program from another program
Setting options with the regular binder API
Setting options with the binder API
User exits
Execution environment
Registers at entry to the user exit routine
Message exit
Save exit
Interface validation exit
Object module input conventions and record formats
Input conventions
Record formats
SYM record
ESD record
Text record
RLD record
END record
Extended object module (XOBJ)
XSD record format
Additional notes
Load module formats
Input conventions
Record formats
Generalized object file format (GOFF)
Guidelines and restrictions
Incompatibilities
GOFF record formats
Conventions
Conventions for record descriptions
Conventions for class names
Record prefix
Module header record
External symbol definition record
External symbol definition continuation record
External symbol ID and name relationships
Elements specifiable on ESD records
External symbol definition behavioral attributes
ESD item behavioral attribute assignment
ESD Extended Attributes
Text record
Text continuation record
Identification record data field
Current (old) IDR data (format 1)
Extended IDR data (format 2)
Extended IDR data (format 3)
Text encoding and compression
Relocation directory record
Relocation directory data item
Relocation directory continuation record
Relocation directory data element flags field
Examples of RLD data items
Deferred element length record
Associated data (ADATA) record
Associated data (ADATA) record types
End of module record
End of module continuation record, with optional entry point name
Mapping object formats to GOFF format
Module header records
Mapping object module ESD elements to GOFF format
Mapping object module ESD SD items
Mapping object module ESD PC items
Mapping object module ESD LD items
Mapping object module ESD ER/WX items
Mapping object module ESD CM items
Mapping object module ESD PR items
Mapping object module XSD items to GOFF format
Mapping object module TXT items to GOFF format
Mapping object module RLD items to GOFF format
Mapping object module END items to GOFF format
Mapping object module END IDR items
Mapping object module END section-length elements
Mapping object module END-entry items
Generating DLLs and linkage descriptors from GOFF object modules
Exports
Exporting data
Exporting code
Imports
Importing data
Non-XPLINK
XPLINK
Importing code
Non-XPLINK
XPLINK
Using linkage descriptors in non-DLL applications
Binder API buffer formats
Buffer header contents
Version 1 buffer formats
ESD entry (version 1)
Binder identification data (version 1)
Language processor identification data (version 1)
User identification data (version 1)
AMASPZAP identification data (version 1)
RLD entry (version 1)
Internal symbol table (version 1)
Text data buffer (version 1)
Binder name list (version 1)
Extent list (version 1)
Version 2 buffer formats
ESD entry (version 2)
RLD entry (version 2)
Binder name list (version 2)
Module map (version 2)
Migration to version 2 buffers
Field correspondence for ESD records
ESD conversion notes (and PM1-PM2 differences)
Field correspondence for RLD records
RLD conversion notes (and PM1-PM2 differences)
Version 3 buffer formats
ESD entry (version 3)
RLD entry (version 3)
PARTINIT entry (version 3)
Migration to version 3 buffers
Part initializers
ESD conversion notes
RLD conversion notes
Version 4 buffer formats
Binder name list (version 4)
Version 5 buffer formats
PMAR entry (version 5)
ESD entry (version 5)
Version 6 buffer formats
LIB entry (version 6)
CUI entry (version 6)
Binder name list (version 6)
Version 7 buffer formats
Language processor identification data (version 7)
Binder name list (version 7)
Data areas
PDS directory entry format on entry to STOW
Cross reference
PDS directory entry format returned by BLDL
Cross reference
PDSE directory entry returned by DESERV (SMDE data area)
Accessing program object class information
Module Map
Structure of the module map
Example of record structure
Compile unit information
Module map format
Programming examples for binder APIs
Examples for binder regular API
Examples for binder C/C++ API
Examples for fast data access API
Examples of JCL
Using the transport utility (IEWTPORT)
Executing IEWTPORT
Defining the data sets
Allocating space for the SYSUTn data sets
Transporting selected members
Sample IEWTPORT invocations
Convert a program object to a transportable program
Convert an entire program library
Convert a transportable program to a single program object
Messages, errors, and return codes
Messages and codes
Errors
Return codes
Logical structure of a transportable file
Mapping macro IEWTFMT
Header
Trailer
Transportable program
Body
ALIAS data type
ATTRIBUTES data type
ITEM data type
Establishing installation defaults
Binder APIs