Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### QPXBK

Prolog

Control Block Contents
QPXBK DSECT

Storage Layout

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

This information is based on z/VM V5R2.0. Last updated on 12 Apr 2006 at 17:19:15 EDT.
Copyright IBM Corporation, 1990, 2005