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

#### SPXBK

Prolog

Control Block Contents
SPXBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SPXBK Prolog

     Name       : HCPSPXBK
     Description: Interface for POSIX ID set requests
     DSECT      : SPXBK
     Function   : Contain specifications and responses for the
                  "set POSIX IDs" function, Diagnose X'29C'.
     Located by : none
     Created by : HCPPXI (copied from/to guest storage)
     Deleted by : HCPPXI
     Serialized : CP's copy of the SPXBK is fetched by
                  HCPVINOP into (VMDVOBUF).  This area
                  is governed by instruction-stream
                  serialization.

#### SPXBK Control Block Content

#### SPXBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SPXBK          Interface for POSIX ID set
                                            requests
    0000    0 Dbl-Word     8 SPXHDR (0)
    0000    0 Signed       2 SPXDIAGC       Diagnose code eyecatcher
              SPXDIAGC       SPXDIAGV       X'029C' Required value for
                                            SPXDIAGC
    0002    2 Signed       2 SPXFCODE       Diagnose function code:
              00000000       SPXFUSER       0 0 = Set user IDs (UIDs) for
                                            calling virtual config
              00000001       SPXFGRP        1 1 = Set group IDs (GIDs) for
                                            calling virtual config
              00000002       SPXFNGRP       2 2 = NEWGRP function
              00000003       SPXFSGID       3 3 = Change SGID list
    0004    4 Signed       2 SPXDWLEN       Size of block in doublewords
    0006    6 Bitstring    1 SPXFLAGS       Option flags:
              .1.. ....      SPXALLID       X'40' For functions FUSER and
                                            FGRP, if the calling process has
                                            appropriate privileges, set the
                                            real, effective, and saved set
                                            UIDs/GIDs. If this bit is off or
                                            the process is not authorized,
                                            set only the effective UID/GID.
              ..1. ....      SPXNAMIN       X'20' For function code FGRP, the
                                            GID(s) are to be set to the GID
                                            corresponding to SPXGNAME. For
                                            function FNGRP, if the login is a
                                            member of SPXGNAME, then the
                                            GID(s) are to be set to the GID
                                            GID corresponding to SPXGNAME
              ...1 ....      SPXIDIN        X'10' For functions FGRP, the
                                            GID(s) are to be set to SPXGID.
                                            For function FNGRP, if the login
                                            is a member of SPXGID, then the
                                            GID(s) are to be set to SPXGID.
    0007    7 Bitstring    1 SPXRSVD1       Reserved for IBM use
              00000008       SPXHDRL        *-SPXHDR
                 SPXFCN's length will vary depend on the
                 function code that was specified.
    0008    8 Dbl-Word     8 SPXFCN (0)     Redefinition of the function
                                            unique data
                 SPXFCN fields used for function SPXFGRP:
         cmnt*   ORG   SPXFCN        For function SPXFGRP:
    0008    8 Signed       4 *              Reserved for IBM use
    000C   12 Signed       4 SPXGID         POSIX group ID (GID) for function
                                            FGRP when SPXNAMIN=0.
    0010   16 Character    8 SPXGNAME       POSIX group name for function
                                            FGRP when SPXNAMIN=1
              00000010       SPXF1DL        *-SPXFCN Length of function 1
                                            data
              00000018       SPXF1LEN       SPXF1DL+SPXHDRL Length of
                                            function 1 and header
              00000003       SPXF1SIZ       (SPXF1LEN+7)/8 Size of function 1
                                            QPXBK in DWs
                 SPXFCN fields used for function SPXFNGRP:
    0008    8 Signed       4 *              Reserved for IBM use
    000C   12 Signed       4 *              (SPXGID) POSIX group ID (GID) for
                                            function FGRP when SPXNAMIN=0.
    0010   16 Character    8 *              (SPXGNAME) POSIX group name for
                                            function FGRP when SPXNAMIN=1
              00000010       SPXF2DL        *-SPXFCN Length of function 2
                                            data
              00000018       SPXF2LEN       SPXF2DL+SPXHDRL Length of
                                            function 2 and header
              00000003       SPXF2SIZ       (SPXF2LEN+7)/8 Size of function 2
                                            QPXBK in DWs
                 SPXFCN fields used for function SPXFUSER:
    0008    8 Signed       4 SPXUID         POSIX user ID (UID) for function
                                            FUSER.
    000C   12 Signed       4 *              Reserved for IBM use
              00000008       SPXF0DL        *-SPXFCN Length of function 0
                                            data
              00000010       SPXF0LEN       SPXF0DL+SPXHDRL Length of
                                            function 0 and header
              00000002       SPXF0SIZ       (SPXF0LEN+7)/8 Size of function 0
                                            QPXBK in DWs
                 SPXFCN fields used for function SPXFSGID:
    0008    8 Signed       4 SPXSGCNT       Count of entries in the SGID
                                            (supplementary group ID) list. If
                                            the count = 0 , SPXSGAL and
                                            SPXSGAD must also be zero, and
                                            the "effective" SGID list for the
                                            currently active POSIX process
                                            must be cleared.
    000C   12 Signed       4 *              Reserved for IBM use
    0010   16 Dbl-Word     8 SPXSGIDP (0)   Pointer to start of SGID list.
    0010   16 Signed       4 SPXSGAL        ALET for SGID list area
    0014   20 Address      4 SPXSGAD        Address of SGID list area
              00000004       SPXSGELN       4 Byte-length of one element in
                                            the SGID list.
              00000002       SPXSGSH        2 Shift offset for SPXSGELN
                 The SGID list contains on input an array of
                 4-byte unsigned integers representing the
                 supplementary groups that are to be made effective
                 for the currently active POSIX process.
              00000010       SPXF3DL        *-SPXFCN Length of function 3
                                            data
              00000018       SPXF3LEN       SPXF3DL+SPXHDRL Length of
                                            function 3 and header
              00000003       SPXF3SIZ       (SPXF3LEN+7)/8 Size of function 3
                                            SPXBK
                 The following equates define return codes from
                 diagnose X'29C'.  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       SPXEOK         0 Function succeeded. For
                                            FUSER/FGRP, only the effective ID
                                            was changed (cf. return code
                                            SPXEOKAL below). For FNGRP, all
                                            GIDs were changed. SPXGID
                                            contains the GID value. For
                                            FSGID, the SGID list was updated.
              00000001       SPXECODE       1 Incorrect value in SPXDIAGC
              00000002       SPXEFUNC       2 Invalid function code in
                                            SPXFCODE
              00000003       SPXELEN        3 Length in SPXDWLEN below
                                            minimum allowed
              00000004       SPXEFLAG       4 Invalid option flags in
                                            SPXFLAGS or SPXRSVD1 is non-zero
              00000005       SPXEAUTH       5 (FUSER,FGRP) Requestor not
                                            authorized to change UID/GID to
                                            specified value (FNGRP)
                                            Requesting login name is not a
                                            member of the specified group
                                            (FSGID) Requestor not authorized
                                            to update SGID list with the
                                            specified values.
              00000006       SPXENFND       6 (FUSER,FGRP,FNGRP) Specified
                                            group ID or group name not
                                            defined
              00000008       SPXEID         8 (FUSER,FGRP,FNGRP) Specified ID
                                            is not a valid UID or GID
              00000009       SPXEDBAS       9 (FUSER,FGRP,FNGRP) Group
                                            database is invalid or
                                            inaccessible
              0000000A       SPXEOKAL       10 (FUSER,FGRP) Function
                                            succeeded. All IDs (real,
                                            effective, and saved set) were
                                            changed.
              0000000B       SPXEPXCA       11 (FUSER,FGRP,FNGRP,FSGID) POSIX
                                            communication area has not been
                                            defined
              0000000C       SPXEAPID       12 (FUSER,FGRP,FNGRP,FSGID)
                                            Active PID in POSIX communication
                                            area is not a PID allocated to
                                            the requesting virtual
                                            configuration
              0000000D       SPXERRCP       13 (FSGID) A CP error condition
                                            was detected that prevented the
                                            replacement of the user's SGID
                                            list.

#### SPXBK Storage Layout

    *** SPXBK - Interface for POSIX ID set requests
    *
    *     +-------------+-------------+-------------+------+------+
    *   0 |  SPXDIAGC   |  SPXFCODE   |  SPXDWLEN   |:FLAGS|:RSVD1|
    *     +-------------+-------------+-------------+------+------+
    *   8 |///////////////////////////|          SPXGID           |
    *     +---------------------------+---------------------------+
    *  10 |                       SPXGNAME                        |
    *     +-------------------------------------------------------+
    *  18
    *
    *** SPXBK - Interface for POSIX ID set requests

    *** Overlay for SPXFCN in SPXBK
    *
    *     +---------------------------+---------------------------+
    *   8 |///////////////////////////|///////////////////////////|
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  18
    *
    *** Overlay for SPXFCN in SPXBK

    *** Overlay for SPXFCN in SPXBK
    *
    *     +---------------------------+---------------------------+
    *   8 |          SPXUID           |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  10
    *
    *** Overlay for SPXFCN in SPXBK

    *** Overlay for SPXFCN in SPXBK
    *
    *     +---------------------------+---------------------------+
    *   8 |         SPXSGCNT          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  10 |         SPXSGAL           |         SPXSGAD           |
    *     +---------------------------+---------------------------+
    *  18
    *
    *** Overlay for SPXFCN in SPXBK

#### SPXBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SPXALLID       0006 40
    SPXDIAGC       0000
    SPXDIAGV       0000 SPXDIAGC
    SPXDWLEN       0004
    SPXEAPID       0014 0000000C
    SPXEAUTH       0014 00000005
    SPXECODE       0014 00000001
    SPXEDBAS       0014 00000009
    SPXEFLAG       0014 00000004
    SPXEFUNC       0014 00000002
    SPXEID         0014 00000008
    SPXELEN        0014 00000003
    SPXENFND       0014 00000006
    SPXEOK         0014 00000000
    SPXEOKAL       0014 0000000A
    SPXEPXCA       0014 0000000B
    SPXERRCP       0014 0000000D
    SPXFCN         0008
    SPXFCODE       0002
    SPXFGRP        0002 00000001
    SPXFLAGS       0006
    SPXFNGRP       0002 00000002
    SPXFSGID       0002 00000003
    SPXFUSER       0002 00000000
    SPXF0DL        000C 00000008
    SPXF0LEN       000C 00000010
    SPXF0SIZ       000C 00000002
    SPXF1DL        0010 00000010
    SPXF1LEN       0010 00000018
    SPXF1SIZ       0010 00000003
    SPXF2DL        0010 00000010
    SPXF2LEN       0010 00000018
    SPXF2SIZ       0010 00000003
    SPXF3DL        0014 00000010
    SPXF3LEN       0014 00000018
    SPXF3SIZ       0014 00000003
    SPXGID         000C
    SPXGNAME       0010
    SPXHDR         0000
    SPXHDRL        0007 00000008
    SPXIDIN        0006 10
    SPXNAMIN       0006 20
    SPXRSVD1       0007
    SPXSGAD        0014
    SPXSGAL        0010
    SPXSGCNT       0008
    SPXSGELN       0014 00000004
    SPXSGIDP       0010
    SPXSGSH        0014 00000002
    SPXUID         0008

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