|
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
00000000 *
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.
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 -------------- ---- ----- * 0002 00000000 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
Last updated on 5 Jun 2001 at 16:19:08 EDT.
Copyright IBM Corporation, 1990, 2001