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' SPXDIAGV Required value
                                        for SPXDIAGC
0002    2 Signed       2 SPXFCODE       Diagnose function code:
          00000000       SPXFUSER       0 SPXFUSER 0 = Set user IDs
                                        (UIDs) for calling virtual config
          00000001       SPXFGRP        1 SPXFGRP 1 = Set group IDs
                                        (GIDs) for calling virtual config
          00000002       SPXFNGRP       2 SPXFNGRP 2 = NEWGRP function
          00000003       SPXFSGID       3 SPXFSGID 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' SPXALLID 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' SPXNAMIN 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' SPXIDIN 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 V5R3.0. Last updated on 25 Jun 2007 at 17:31:36 EDT.
Copyright IBM Corporation, 1990, 2007