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

#### EXCBK

Prolog

Control Block Contents
EXCBK DSECT
EXCVROBJ DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### EXCBK Prolog

     NAME       : HCPEXCBK
     DESCRIPTION: DIAGNOSE X'280' exec() block
     DSECT      : EXCBK
     FUNCTION   : This DSECT maps the control block which
                  describes the input for DIAGNOSE X'280'.
     LOCATED BY : Guest version: diagnose X'280' parameter list
                  Host version:  registers in HCPEXC
     CREATED BY : Guest version: the diagnose X'280' issuer
                  Host version:  HCPEXC
     DELETED BY : Guest version: the diagnose x'280 issuer
                  Host version:  HCPEXC
     SERIALIZED : Instruction-stream on the dispatched vCPU
     COMMENTS   :
       This control block is conceptually one piece of data
       mapped by two structures. There is a fixed-length
       portion and a variable-length portion, both described
       in greater detail below. In storage, these must be
       adjacent, and in the order:
        1) Fixed-length area
        2) Object token information.
       The fixed-length section is set up as containing a header
       and function-specific sections. The header contains only
       general control block information, and is frozen at the
       defined length. CHANGING THE LENGTH OF THE HEADER SECTION
       WILL RESULT IN MAKING THE CONTROL BLOCK INCOMPATIBLE WITH
       PREVIOUS RELEASES OF THE BLOCK.
       The function-specific sections are different, but the
       length of that section is determined by the length of
       the longest of the set of function-specific sections.
       A field in the header contains this execution-time-
       calculated length so that fields can be added to the
       function-specific section in future releases while still
       allowing the new blocks to coexist with the old ones.
       A variable-length section may contain no data; in this
       case, the length field contains the length of itself
       alone (a 4-byte length field, for example, would contain
       the value '4' if the length of the corresponding data
       field is zero).
       For future expansion, function-specific fields can be
       added to the function-specific area, or other
       function-specific sections can be added. Variable-length
       sections can be added after the last variable length
       section.

#### EXCBK Control Block Content

#### EXCBK DSECT

####

####

####

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      EXCBK          DIAGNOSE X'280' exec() block
            Header information
    0000    0 Dbl-Word     8 EXCHDR (0)     EXCBK header
    0000    0 Signed       2 EXCDIAGC       Diagnose code eyecatcher
              EXCDIAGC       EXCDIAGV       X'0280' Required value for
                                            EXCDIAGC
    0002    2 Signed       2 EXCFUNCD       Diagnose function code:
              00000000       EXCSETID       0 0 = Request that CP set the
                                            appropriate POSIX security values
                                            for an exec() function call.
              00000001       EXCSSID        1 1 = Request that CP set only
                                            the saved-set ids for an exec()
                                            function call.
    0004    4 Signed       2 EXCDWLEN       Length (unsigned) of EXCBK in
                                            doublewords
              00000200       EXCMAXST       4096/8 Maximum length of the
                                            EXCBK is one page (512 DWs).
    0006    6 Signed       2 EXCRSV00       Reserved for IBM use
    0008    8 Signed       4 EXCFFXLN       Length (unsigned) in bytes of of
                                            the fixed-length portion of the
                                            function-specific section of the
                                            block. The application creating
                                            the block may use the value
                                            EXCFIXLN to fill in this field.
    000C   12 Signed       4 EXCRSV01       Reserved for IBM use
              00000010       EXCHDRLN       (*-EXCHDR) Header length
            Function-specific parameter list information
    0010   16 Signed       4 EXCFLIST (0)   Start of function-specific
                                            parameter list information
            Function EXCSETID
    0010   16 Signed       4 EXCFSTID (0)
    0010   16 Signed       4 *              Reserved for IBM use.
    0014   20 Signed       4 EXCTPNLN       Length (unsigned) in bytes of the
                                            TPN.
              00000001       EXCTPNMN       1 Minimum length of the TPN.
              00000040       EXCTPNMX       (L'EXCTPN) Maximum length of the
                                            TPN.
    0018   24 Character   64 EXCTPN         TPN (target resource name)
    0058   88 Character   16 EXCLOCLU (0)   Locally-known LUname
    0058   88 Character    8 EXCLUQUL       LU name qualifier
    0060   96 Character    8 EXCLUTGT       Target LU name
              .... 1...      EXCLULEN       L'EXCLUQUL Length of either part
                                            one (the luname qualifier) or
                                            part two (the target luname) of
                                            the LU name.
    0068  104 Character    8 EXCMODE        SNA modename
    0070  112 Signed       4 EXCSRET        Return code from the server. This
                                            field is copied from the IRCBK.
    0074  116 Signed       4 EXCSREAS       Reason code from the server. This
                                            field is copied from the IRCBK.
    0078  120 Signed       4 EXCNUID        New UID. This is the UID to which
                                            the user's eUID and ssUID were
                                            set.
    007C  124 Signed       4 EXCNGID        New GID. This is the GID to which
                                            the user's eGID and ssGID were
                                            set.
              00000070       EXCSTFLN       *-EXCFSTID Minimum length of the
                                            fixed-length portion of the SETID
                                            information, in bytes.
            Function EXCSSID
    0010   16 Signed       4 EXCFSSID (0)
    0010   16 Signed       4 EXCSSUID       Saved-set UID. This is the UID to
                                            which the user's ssUID was set.
    0014   20 Signed       4 EXCSSGID       Saved-set GID. This is the GID to
                                            which the user's ssGID was set.
              00000008       EXCSSFLN       *-EXCFSSID Minimum length of the
                                            fixed-length portion of the SSID
                                            information, in bytes.
              00000003       EXCSSLEN       (((*-EXCFSSID)+EXCHDRLN+7)/8)
                                            Length of the SSID information in
                                            doublewords.
            Reset ORG and calculate the length of the longest of
            the fixed-length portions of the function-specific
            sections.
              00000070       EXCFIXLN       (*-EXCFLIST) Length of the
                                            longest of the function-specific
                                            sections.
            These return code values are applicable to all function
            codes of DIAGNOSE X'280' unless otherwise noted.
            Return code values not applicable to function EXCSETID:
              None.
            Return code values not applicable to function EXCSSID:
              EXCBDTPL
              EXCBDOBL
              EXCINVLU
              EXCNOGAT
              EXCNORES
              EXCNORPY
              EXCNOSRV
              EXCSVREJ
              EXCSVERR
              EXCSVINV
              EXCUAUTH
              EXCESMRJ
              EXCTERM
            Function EXCSETID - variable-length portion mapping.
            Note that this mapping is not part of the EXCBK DSECT
            and must be properly based in order to be used. The
            object length must immediately follow the last field
            in the function-specific section of the EXCSETID
            function. The proper calculation is:
            (address of EXCBK + length of header section +
             length of function-specific section)
            or
            (EXCBK @ + EXCHDRLN + EXCFFXLN).

    EXCVROBJ DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      EXCVROBJ       DIAGNOSE X'280' exec() block
    0000    0 Signed       4 EXCOBJLN       Length (unsigned) in bytes of the
                                            object token, including the
                                            length field itself. Must be at
                                            least EXCOBJMN.
              00000004       EXCOBJMN       L'EXCOBJLN Minimum length
                                            permitted to be specified in
                                            EXCOBJLN. This minimum represents
                                            a EXCOBJTK length of zero.
              00000204       EXCOBJMX       516 Maximum length permitted to
                                            be specified in EXCODJLN. This
                                            represents a maximum EXCOBJTK
                                            length of 512 bytes.
    0004    4 Bitstring    1 EXCOBJTK (0)   Object token. The object token
                                            represents the object for which
                                            the UID/GIDs are being queried.
                                            For example, this could represent
                                            a setid file residing in the byte
                                            file system.

    EXCBK Storage Layout

    *** EXCBK - DIAGNOSE X'280' exec() block
    *
    *     +-------------+-------------+-------------+-------------+
    *   0 |  EXCDIAGC   |  EXCFUNCD   |  EXCDWLEN   |  EXCRSV00   |
    *     +-------------+-------------+-------------+-------------+
    *   8 |         EXCFFXLN          |         EXCRSV01          |
    *     +---------------------------+---------------------------+
    *
    *** EXCBK - DIAGNOSE X'280' exec() block

    *** Overlay for EXCFLIST in EXCBK
    *
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////|         EXCTPNLN          |
    *     +---------------------------+---------------------------+
    *  18 |                                                       |
    *     =                        EXCTPN                         =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  58 |                       EXCLUQUL                        |
    *     +-------------------------------------------------------+
    *  60 |                       EXCLUTGT                        |
    *     +-------------------------------------------------------+
    *  68 |                       EXCMODE                         |
    *     +---------------------------+---------------------------+
    *  70 |         EXCSRET           |         EXCSREAS          |
    *     +---------------------------+---------------------------+
    *  78 |         EXCNUID           |         EXCNGID           |
    *     +---------------------------+---------------------------+
    *  80
    *
    *** Overlay for EXCFLIST in EXCBK

    *** Overlay for EXCFLIST in EXCBK
    *
    *     +---------------------------+---------------------------+
    *  10 |         EXCSSUID          |         EXCSSGID          |
    *     +---------------------------+---------------------------+
    *  18
    *
    *** Overlay for EXCFLIST in EXCBK

    *** EXCVROBJ - DIAGNOSE X'280' exec() block
    *
    *     +---------------------------+
    *   0 |         EXCOBJLN          |
    *     +---------------------------+
    *
    *** EXCVROBJ - DIAGNOSE X'280' exec() block

    EXCBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    EXCDIAGC       0000
    EXCDIAGV       0000 EXCDIAGC
    EXCDWLEN       0004
    EXCFFXLN       0008
    EXCFIXLN       0014 00000070
    EXCFLIST       0010
    EXCFSSID       0010
    EXCFSTID       0010
    EXCFUNCD       0002
    EXCHDR         0000
    EXCHDRLN       000C 00000010
    EXCLOCLU       0058
    EXCLULEN       0060 08
    EXCLUQUL       0058
    EXCLUTGT       0060
    EXCMAXST       0004 00000200
    EXCMODE        0068
    EXCNGID        007C
    EXCNUID        0078
    EXCOBJLN       0000
    EXCOBJMN       0000 00000004
    EXCOBJMX       0000 00000204
    EXCOBJTK       0004
    EXCRSV00       0006
    EXCRSV01       000C
    EXCSETID       0002 00000000
    EXCSREAS       0074
    EXCSRET        0070
    EXCSSFLN       0014 00000008
    EXCSSGID       0014
    EXCSSID        0002 00000001
    EXCSSLEN       0014 00000003
    EXCSSUID       0010
    EXCSTFLN       007C 00000070
    EXCTPN         0018
    EXCTPNLN       0014
    EXCTPNMN       0014 00000001
    EXCTPNMX       0014 00000040

    This information is
    based on z/VM V5R2.0.
    Last updated on 12 Apr 2006 at 16:53:01 EDT.

    Copyright IBM Corporation, 1990, 2005