* %GOTO NREGPRO ; /* Bilingual header
MACRO
BPXYNREG &DSECT=YES,&LIST=YES
GBLB &NREG411
AIF (&NREG411 EQ 1).E411
&NREG411 SETB 1
AIF ('&LIST' EQ 'YES').A411
PUSH PRINT BPXYNREG: BPX2REG (v_reg) parameter list
PRINT OFF
AGO .A411
* */
*%NREGPRO : ;
*/****START OF SPECIFICATIONS******************************************
*
* $MAC (BPXYNREG) COMP(SCPX1) PROD(BPX):
*
*01* MACRO NAME: BPXYNREG
*
*01* DSECT NAME: N/A
*
*01* DESCRIPTIVE NAME: Interface Block to VNode Registration
*
*02* ACRONYM: NREG
**/
*/*01* PROPRIETARY STATEMENT= */
*/***PROPRIETARY_STATEMENT********************************************/
*/* */
*/* */
*/* LICENSED MATERIALS - PROPERTY OF IBM */
*/* THIS MACRO IS "RESTRICTED MATERIALS OF IBM" */
*/* 5650-ZOS (C) COPYRIGHT IBM CORP. 1993, 2003 */
*/* */
*/* STATUS= HBB7709 */
*/* */
*/***END_OF_PROPRIETARY_STATEMENT*************************************/
*/*
*
*01* EXTERNAL CLASSIFICATION: GUPI
*01* END OF EXTERNAL CLASSIFICATION:
*
*01* FUNCTION:
*
* The NREG maps the input to the v_register routine, BPXVNREG.
*
*01* METHOD OF ACCESS:
*
*02* PL/X:
*
* %INCLUDE SYSLIB(BPXYNREG)
* By default, the NREG is based on NRegPtr. If
* other basing is desired, use %NREGBASE='BASED(XXXXXX)'.
* If %NREGBASE='BASED(NREGPTR)' is coded, a Declare for
* NREGPTR is also generated.
*
*02* ASM:
* With DSECT=NO, storage is allocated in line
* and addressability is provided thru that DSECT or CSECT.
* With DSECT=YES, a DSECT is produced and "USING NREG,reg"
* is required for addressability. Here "reg" contains the
* address of NREG#LEN bytes of storage.
* The default is DSECT=YES.
*
*01* SIZE: Release dependent. Refer to the mapping.
*
*01* POINTED TO BY: In dynamic storage of routines calling BPXVNREG.
*
*01* CREATED BY: Caller of Syscall Routine
*
*01* DELETED BY: Caller of Syscall Routine
*
*01* STORAGE ATTRIBUTES:
*02* SUBPOOL: n/a
*02* KEY: n/a
*02* RESIDENCY: Callers storage
*
*01* FREQUENCY: 1 per syscall that calls BPXVNREG
*
*01* SERIALIZATION: N/A
*
*01* DEPENDENCIES: None
*
*01* NOTES:
* BPXYVFSI is a C program interface for the BPX1V (v_)
* services. The NREG structure in BPXYVFSI matches
* the BPXYNREG structure.
*
*01* COMPONENT: z/OS UNIX (SCPX1)
*
*01* DISTRIBUTION LIBRARY: AMACLIB @P1C
*
*01* EYE-CATCHER: NREG
*02* OFFSET: 0
*02* LENGTH: 4
*
****END OF SPECIFICATIONS*********************************************/
* %GOTO NREGPLS ; /* Bilingual header
.A411 ANOP ,
** BPXYNREG: NREG - LFS Registration routine parameter list
** Used By: VRG
AIF ('&DSECT' EQ 'NO').B411
NREG DSECT ,
AGO .C411
.B411 ANOP ,
DS 0D
NREG DC XL(NREG#LENGTH)'00'
ORG NREG
.C411 ANOP ,
NREGBEGIN DS 0D
*
NREGID DC C'NREG' Eye catcher
NREGLEN DC AL2(NREG#LENGTH) Length of the structure
NREGVER DC AL2(NREG#VERSION) NReg version number
NREGSTYPE DS F Server Type
NREGSNAMELEN DS F Length of Server name
NREGSNAME DS CL32 Server Name
NREGMAXVNTOKENS DS F Max # of VNTokens
NREGFLAGS DS CL1 Flags @D4C
NREGFXHOTC EQU X'80' Exit uses HOTC @D4A
NREGNOWAIT EQU X'40' for Quiesced FS @D5A
NREGSECSFD EQU X'20' for SFD severs @P3A
NREGALLOCDEVNO EQU X'10' allocate a devno @D6A
NREGRES01 DS CL3 Reserved field @D4C
NREGENDOFVER1 DS 0F End of Version 1 @D4A
NREGFXEXITNAME DS CL8 Exit program name @D4A
NREGFXINITPARM DS CL8 Init parm for Exit @D4A
NREGABENDCODE DS F Abend Code received @D4A
NREGABENDRSN DS F Abend Reason Code @D4A
ORG NREGABENDRSN @D6A
NREGDEVNO DS F or Output Devno @D6A
NREGPFSTYPE DS CL8 Dependant PFS @D5A
*
* Constants
*
NREG#LENGTH EQU *-NREGBEGIN Length of NREG
NREG#LENGTHVER1 EQU NREGENDOFVER1-NREGBEGIN Length of V1 NREG
NREG#VERSION1 EQU 1 NReg Version 1
NREG#VERSION2 EQU 2 NReg Version 2
NREG#VERSION EQU NREG#VERSION2 NReg Current Version
* NRegSType constants
NREGSTYPE#FILE EQU 1 File Server type
NREGSTYPE#LOCK EQU 2 Lock Server type
NREGSTYPE#FEXP EQU 3 File Exporter type
NREGSTYPE#SFDS EQU 4 SFD server @P3A
NREGSTYPE#MAX EQU 4 Max allowed srvr type
** BPXYNREG End
SPACE 3
AIF ('&LIST' EQ 'YES').E411
POP PRINT
.E411 ANOP ,
MEND , Terminating PL/X comment */
*
*%NREGPLS : ;
*%IF NREGBASE='' %THEN
* %DO;
* %NREGBASE='BASED(NREGPTR)';
* %END;
*%IF TRANSLATE(NREGBASE)='BASED(NREGPTR)' %THEN
* %DO;
* DCL NRegPtr Ptr(31); /* Pointer to NReg parameter list */
* %END;
*DCL
* 1 NReg NREGBASE,
* 3 NRegID Char(4), /* +00 EBCDIC ID */
* 3 NRegLen Fixed(15), /* +04 Length of NREG structure@P2C*/
* 3 NRegVer Fixed(16), /* +06 NReg Version number */
* 3 NRegSType Fixed(32), /* +08 Server type */
* 3 NRegSNameLen Fixed(31), /* +0C Length of Server name parm */
* 3 NRegSName Char(32), /* +10 Server Name */
* 3 NRegMaxVNTokens Fixed(32), /* +30 Max # of VNTokens that will
* be created for this server */
* 3 NRegFlags Bit(8), /* +34 Flags @D4C*/
* 5 NregFxHotc Bit(1), /* Invoke Exit with HOTC @D4A*/
* 5 NregNoWait Bit(1), /* for Quiesced File Sys @D5A*/
* 5 NregSecSfd Bit(1), /* Secondary SFD srvr @P3A*/
* 5 NregAllocDevno Bit(1), /* Allocate a Devno @D6A*/
* 3 * Char(3), /* +35 Reserved @D4C*/
* 3 NRegEndOfVer1 Char(0), /* +38 End of Ver1 ---------- @D4A*/
* 3 NRegFileExporterArea, /* @D4A*/
* 5 NregFxExitName Char(8), /* +38 Exit program name @D4A*/
* 5 NregFxInitParm Char(8), /* +40 Init parm for Exit pgm @D4A*/
* 3 NRegAbendCode Fixed(32), /* +48 Abend Code received @D4A*/
* 3 NRegAbendRsn Fixed(32), /* +4C Abend Reason Code @D4A*/
* 5 NRegDevno Fixed(32), /* or Output Devno @D6A*/
* 3 NRegPfsType Char(8), /* +50 Dependant PFS @D5A*/
* 3 * Char(0) Bdy(Dword); /* +58 Ensure NREG ends on
* doubleword boundary */
*DCL
* NReg#ID Char(4) Constant('NREG'),/* Control Block Acronym */
* NReg#LEN Fixed(15) Constant(Length(NREG)),/* Length of NREG */
* NReg#Version Fixed(16) Constant(NReg#Version2),/* Current @D4C*/
* NReg#Version1 Fixed(16) Constant(1), /* Version 1 of NReg */
* NReg#LenVer1 Fixed(16) Constant(Offset(NRegEndOfVer1)), /*@D4A*/
* NReg#Version2 Fixed(16) Constant(2); /* Version 2 of NReg @D4A*/
*
* /* NRegSType constants */
*DCL
* NRegSType#FILE Fixed(32) Constant(1),/* File Server @D1C*/
* NRegSType#LOCK Fixed(32) Constant(2),/* Lock Server @D1A*/
* NRegSType#FEXP Fixed(32) Constant(3),/* File Exporter @D4A*/
* NRegSType#SFDS Fixed(32) Constant(4),/* SFD server @P3A*/
* NRegSType#MAX Fixed(32) Constant(4);/* Max allowed srvr type @P3C*/
*
* /* Note: If new Server types are added, DISPLAY OMVS should
* be updated as follows:
* (1) In BPXZMDEF, msg BPXO40If, add a type to the array.
* (2) Recompile BPXMIMST. */
*