| Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM. | 
SPXBK
Control Block Contents  
   SPXBK DSECT
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
Copyright IBM Corporation, 1990, 2002