Programming Interface Information:
This information is NOT
intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only. |
QPXBK
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 000002A0 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 00000008 QPXUNMEL 8 Byte-length of one element in member-name list 00000003 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 00000004 QPXGIDEL 4 Byte-length of one element in SGID list 00000002 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
(contains links to field and bit definitions)Symbol Dspl Value -------------- ---- -----QPXDIAGC 0000
QPXDIAGV 0000 000002A0
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 00000004
QPXGIDPT 0020
QPXGIDSH 0024 00000002
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 00000008
QPXUNMPT 0020
QPXUNMSH 0024 00000003
QPXUNMSZ 0028
Last updated on 3 Aug 1999 at 12:26:52 EDT.
Copyright IBM Corporation, 1990, 1999