Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
QPXBK
Control Block Contents
QPXBK DSECT
Cross Reference (Contains links to field and bit definitions)
QPXBK Prolog
Name : HCPQPXBK Description: Interface for POSIX ID query requests DSECT : QPXBK Function : Contain POSIX ID query specifications and responses, for Diagnose X'2A0'. Located by : none Created by : HCPPXI (copied from/to guest storage) Deleted by : HCPPXI Serialized : CP's copy of the QPXBK is fetched by HCPVINOP into (VMDVOBUF). This area is governed by instruction-stream serialization.
QPXBK Control Block Content
QPXBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure QPXBK Interface for POSIX ID query requests Input fields common to all functions 0000 0 Dbl-Word 8 QPXHDR (0) Beginning of the header section 0000 0 Signed 2 QPXDIAGC Diagnose code eyecatcher QPXDIAGC QPXDIAGV X'02A0' Required value for QPXDIAGC 0002 2 Signed 2 QPXFCODE Diagnose function code: 00000000 QPXFPROC 0 0 = Query IDs for process 00000001 QPXFUSER 1 1 = Query user database by UID or user name 00000002 QPXFGRP 2 2 = Query group database by GID or group name 00000003 QPXFSGID 3 3 = Query supplementary groups for self or by user name 00000004 QPXFCONF 4 4 = Query configuration environment 0004 4 Signed 2 QPXDWLEN Size of block in doublewords 0006 6 Bitstring 1 QPXFLAGS Option flags: 1... .... QPXIDIN X'80' Input argument is an ID (PID, UID, or GID). Report on that id. .1.. .... QPXNAMIN X'40' Input argument is a name (UNAME or GNAME). Report the database info on that name. Meanings and legal combinations of above flags: - For function FPROC, QPXNAMIN must be zero. The report is on the current attributes of the requesting process if QPXIDIN=0, or of the process with process id QPXPID if QPXIDIN=1. - For functions FUSER/FGRP, exactly one of QPXNAMIN and QPXIDIN must be on. The report is on the database info for the designated id (QPXUID/GID) or name (QPXUNAME/GNAME). - For function FSGID, QPXIDIN must be zero. The report is on the current attributes of the requesting process if QPXNAMIN=0, or the database info on QPXUNAME if QPXNAMIN=1. "Database info" means the current contents of the on-line VM directory or ESM repository. (This may or may not match the attributes of a currently logged-on user.) 0007 7 Bitstring 1 QPXRSVD1 Reserved for IBM use 00000008 QPXHDRL *-QPXHDR Length of the header section QPXFCN's length will vary depend on the function code that was specified. (Notes : "I:", "O:", "IO:" designate fields used for input, output, or either, respectively.) 0008 8 Dbl-Word 8 QPXFCN (0) Redefinition of the function unique data QPXFCN fields used for function QPXFPROC: ORG QPXFCN For function QPXFPROC: 0008 8 Signed 4 QPXPID I: Process ID (PID) of target process, if QPXIDIN=1. Ignored if QPXIDIN=0. 000C 12 Signed 4 * (3) Reserved for IBM use 0018 24 Signed 4 QPXRUID O: Real UID of target process 001C 28 Signed 4 QPXRGID O: Real GID of target process 0020 32 Signed 4 QPXEUID O: Effective UID of target process 0024 36 Signed 4 QPXEGID O: Effective GID of target process 0028 40 Signed 4 QPXSSUID O: Saved set-UID of target process 002C 44 Signed 4 QPXSSGID O: Saved set-GID of target process 00000028 QPXF0DL *-QPXFCN Length of function 0 data 00000030 QPXF0LEN QPXF0DL+QPXHDRL Length of function 0 and header 00000006 QPXF0SIZ (QPXF0LEN+7)/8 Size of function 0 QPXBK in DWs QPXFCN fields used for function QPXFUSER: 0008 8 Signed 4 QPXUID IO: POSIX user ID (UID) 000C 12 Signed 4 QPXGID O: POSIX group ID (GID) 0010 16 Character 8 QPXUNAME IO: POSIX user name (VM userid) 0018 24 Character 8 QPXGNAME O: POSIX group name 0020 32 Dbl-Word 8 QPXUDBPT (0) I: Pointer to user DB info area 0020 32 Signed 4 QPXUDBAL I: ..ALET for user DB info area .(used only in XC AR mode) 0024 36 Address 4 QPXUDBAD I: ..Addr of user DB info area 0028 40 Signed 4 QPXUDBSZ I: Size of user database area 002C 44 Signed 4 * Reserved for IBM use User database info area contains these outputs: - Initial working directory: four-byte string length (0-1023) followed by string - Initial user program name: four-byte string length (0-1023) followed by string - File-system root: four-byte string length (0-1023) followed by string - End-of-data indicator (X'FFFFFFFF'). String values not specified in the user's database entry are returned as null strings (length zero). 00000028 QPXF1DL *-QPXFCN Length of function 1 data 00000030 QPXF1LEN QPXF1DL+QPXHDRL Length of function 1 and header 00000006 QPXF1SIZ (QPXF1LEN+7)/8 Size of function 1 QPXBK in DWs QPXFCN fields used for function QPXFGRP: 0008 8 Signed 4 * Reserved for IBM use 000C 12 Signed 4 * (QPXGID) IO: POSIX group ID (GID) 0010 16 Character 8 * Reserved for IBM use 0018 24 Character 8 * (QPXGNAME) IO: POSIX group name 0020 32 Dbl-Word 8 QPXUNMPT (0) I: Pointer to member name area: 0020 32 Signed 4 QPXUNMAL I: ..ALET for member name area .(used only in XC AR mode) 0024 36 Address 4 QPXUNMAD I: ..Addr of member name area .... 1... QPXUNMEL 8 Byte-length of one element in member-name list .... ..11 QPXUNMSH 3 Shift offset for QPXUNMEL 0028 40 Signed 4 QPXUNMSZ I: Size of member name area in units of QPXUNMEL bytes 002C 44 Signed 4 QPXUNMCT O: Actual number of members in group QPXUNMPT is used only if QPXUNMSZ^=0. When used, member name area contains as output an array of 8-character user names (VM userids) belonging to the designated group. The names are left-justified and padded with blanks. 00000028 QPXF2DL *-QPXFCN Length of function 2 data 00000030 QPXF2LEN QPXF2DL+QPXHDRL Length of function 2 and header 00000006 QPXF2SIZ (QPXF2LEN+7)/8 Size of function 2 QPXBK in DWs QPXFCN fields used for function QPXFSGID: 0008 8 Signed 4 * (2) Reserved for IBM use 0010 16 Character 8 * (QPXUNAME) I: POSIX user name (VM userid) 0018 24 Dbl-Word 8 * Reserved for IBM use 0020 32 Dbl-Word 8 QPXGIDPT (0) I: Pointer to SGID-list area: 0020 32 Signed 4 QPXGIDAL I: ..ALET for SGID-list area .(used only in XC AR mode) 0024 36 Address 4 QPXGIDAD I: ..Address of SGID-list area .... .1.. QPXGIDEL 4 Byte-length of one element in SGID list .... ..1. QPXGIDSH 2 Shift offset for QPXGIDEL 0028 40 Signed 4 QPXGIDSZ I: Size of SGID-list area in units of QPXGIDEL bytes 002C 44 Signed 4 QPXGIDCT O: Actual number of SGIDs stored The SGID list contains as output an array of 4-byte unsigned integers representing the supplementary groups belonging to the current process (when QPXNAMIN=0) or to the specified user (when QPXNAMIN=1). 00000028 QPXF3DL *-QPXFCN Length of function 3 data 00000030 QPXF3LEN QPXF3DL+QPXHDRL Length of function 3 and header 00000006 QPXF3SIZ (QPXF3LEN+7)/8 Size of function 3 QPXBK in DWs QPXFCN fields used for function QPXFCONF: 0008 8 Signed 4 QPXNGMAX O: POSIX NGROUPS_MAX value 000C 12 Signed 4 QPXRSVD2 Reserved for IBM use 0010 16 Character 8 * (QPXUNAME) O: POSIX user name (login name) 00000010 QPXF4DL *-QPXFCN Length of function 4 data 00000018 QPXF4LEN QPXF4DL+QPXHDRL Length of function 4 and header 00000003 QPXF4SIZ (QPXF4LEN+7)/8 Size of function 4 QPXBK in DWs The following equates define return codes from diagnose X'2A0'. These values are passed back in register Ry. These return codes apply to all functions unless a parenthesized list of applicable function names precedes the description. 00000000 QPXEOK 0 Function succeeded 00000001 QPXECODE 1 Incorrect value in QPXDIAGC 00000002 QPXEFUNC 2 Invalid function code in QPXFCODE 00000003 QPXELEN 3 Length in QPXDWLEN below minimum allowed 00000004 QPXEFLAG 4 Invalid option flags in QPXFLAGS 00000005 QPXEAUTH 5 Requestor not authorized to obtain information about other user or process 00000006 QPXENFND 6 Search operand (ID or name) not found 00000007 QPXEOLEN 7 (FUSER,FGRP,FSGID) Output buffer too small for response. Length required has been placed in Ry+1, QPXUNMCT, or QPXGIDCT, respectively 00000008 QPXEOADR 8 (FUSER,FGRP,FSGID) Output buffer ALET or address is invalid, or designated storage area is protected 00000009 QPXEDBAS 9 (FUSER,FGRP,FSGID) User or group database is invalid or inacces- sible (applies to FSGID only when QPXNAMIN=1) 0000000A QPXEPXCA 10 (FPROC,FUSER,FGRP,FSGID) POSIX communication area has not been defined 0000000B QPXEAPID 11 (FPROC,FUSER,FGRP,FSGID) Active PID in POSIX communication area is not a PID allocated to the requesting virtural configuration
QPXBK Storage Layout
*** QPXBK - Interface for POSIX ID query requests * * +-------------+-------------+-------------+------+------+ * 0 | QPXDIAGC | QPXFCODE | QPXDWLEN |:FLAGS|:RSVD1| * +-------------+-------------+-------------+------+------+ * 8 | QPXPID |///////////////////////////| * +---------------------------+///////////////////////////| * |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 18 | QPXRUID | QPXRGID | * +---------------------------+---------------------------+ * 20 | QPXEUID | QPXEGID | * +---------------------------+---------------------------+ * 28 | QPXSSUID | QPXSSGID | * +---------------------------+---------------------------+ * 30 * *** QPXBK - Interface for POSIX ID query requests *** Overlay for QPXFCN in QPXBK * * +---------------------------+---------------------------+ * 8 | QPXUID | QPXGID | * +---------------------------+---------------------------+ * 10 | QPXUNAME | * +-------------------------------------------------------+ * 18 | QPXGNAME | * +---------------------------+---------------------------+ * 20 | QPXUDBAL | QPXUDBAD | * +---------------------------+---------------------------+ * 28 | QPXUDBSZ |///////////////////////////| * +---------------------------+---------------------------+ * 30 * *** Overlay for QPXFCN in QPXBK *** Overlay for QPXFCN in QPXBK * * +---------------------------+---------------------------+ * 8 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 10 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 18 |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 20 | QPXUNMAL | QPXUNMAD | * +---------------------------+---------------------------+ * 28 | QPXUNMSZ | QPXUNMCT | * +---------------------------+---------------------------+ * 30 * *** Overlay for QPXFCN in QPXBK *** Overlay for QPXFCN in QPXBK * * +-------------------------------------------------------+ * 8 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 10 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 18 |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 20 | QPXGIDAL | QPXGIDAD | * +---------------------------+---------------------------+ * 28 | QPXGIDSZ | QPXGIDCT | * +---------------------------+---------------------------+ * 30 * *** Overlay for QPXFCN in QPXBK *** Overlay for QPXFCN in QPXBK * * +---------------------------+---------------------------+ * 8 | QPXNGMAX | QPXRSVD2 | * +---------------------------+---------------------------+ * 10 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 18 * *** Overlay for QPXFCN in QPXBK
QPXBK Cross Reference
Symbol Dspl Value -------------- ---- ----- QPXDIAGC 0000 QPXDIAGV 0000 QPXDIAGC QPXDWLEN 0004 QPXEAPID 0010 0000000B QPXEAUTH 0010 00000005 QPXECODE 0010 00000001 QPXEDBAS 0010 00000009 QPXEFLAG 0010 00000004 QPXEFUNC 0010 00000002 QPXEGID 0024 QPXELEN 0010 00000003 QPXENFND 0010 00000006 QPXEOADR 0010 00000008 QPXEOK 0010 00000000 QPXEOLEN 0010 00000007 QPXEPXCA 0010 0000000A QPXEUID 0020 QPXFCN 0008 QPXFCODE 0002 QPXFCONF 0002 00000004 QPXFGRP 0002 00000002 QPXFLAGS 0006 QPXFPROC 0002 00000000 QPXFSGID 0002 00000003 QPXFUSER 0002 00000001 QPXF0DL 002C 00000028 QPXF0LEN 002C 00000030 QPXF0SIZ 002C 00000006 QPXF1DL 002C 00000028 QPXF1LEN 002C 00000030 QPXF1SIZ 002C 00000006 QPXF2DL 002C 00000028 QPXF2LEN 002C 00000030 QPXF2SIZ 002C 00000006 QPXF3DL 002C 00000028 QPXF3LEN 002C 00000030 QPXF3SIZ 002C 00000006 QPXF4DL 0010 00000010 QPXF4LEN 0010 00000018 QPXF4SIZ 0010 00000003 QPXGID 000C QPXGIDAD 0024 QPXGIDAL 0020 QPXGIDCT 002C QPXGIDEL 0024 04 QPXGIDPT 0020 QPXGIDSH 0024 02 QPXGIDSZ 0028 QPXGNAME 0018 QPXHDR 0000 QPXHDRL 0007 00000008 QPXIDIN 0006 80 QPXNAMIN 0006 40 QPXNGMAX 0008 QPXPID 0008 QPXRGID 001C QPXRSVD1 0007 QPXRSVD2 000C QPXRUID 0018 QPXSSGID 002C QPXSSUID 0028 QPXUDBAD 0024 QPXUDBAL 0020 QPXUDBPT 0020 QPXUDBSZ 0028 QPXUID 0008 QPXUNAME 0010 QPXUNMAD 0024 QPXUNMAL 0020 QPXUNMCT 002C QPXUNMEL 0024 08 QPXUNMPT 0020 QPXUNMSH 0024 03 QPXUNMSZ 0028
Copyright IBM Corporation, 1990, 2001