BPXYPGTH — Map the __getthent input/output structure

         BPXYPGTH   ,                              
** BPXYPGTH: __getthent input and output structures
**  Used By: GTH
PGTHA                 DSECT ,        I N P U T - - - - - - - - - - -
PGTHACONTINUE         DS    0CL14
PGTHAPID              DS    F        PROCESS ID (IGNORED IF FIRST)
PGTHATHID             DS    CL8      THREAD ID (IGNORED IF FIRST/LAST)
PGTHAACCESSPID        DS    FL1      FIRST, CURRENT, NEXT
PGTH#NEXT             EQU   2        NEXT AFTER SPECIFIED
PGTH#CURRENT          EQU   1        AS SPECIFIED
PGTH#FIRST            EQU   0        FIRST (EQUIV NEXT WITH PID=0)
PGTH#LAST             EQU   3        only with PGTHIACCESSTHID
* 
PGTHAACCESSTHID       DS    FL1      FIRST, CURRENT, NEXT, LAST
* ONLY FLAG1 BITS THREAD AND PTAG WILL BE CONSIDERED WHEN
* ACCESSPID=CURRENT AND ACCESSTHID=NEXT
* 
* ASID AND LOGINNAME FILTERS APPLY ONLY WHEN ACCESSPID = FIRST, NEXT
PGTHAASID             DS    FL2      FILTER - ASID
* LOGINNAME COMPARISON WILL LOOK FOR UNIX ALIAS. IF PGHTALOGINNAME
* IS NOT AN ALIAS, IT WILL BE SHIFTED TO UPPER CASE AND CHECKED
* AGAINST MVS ID.
PGTHALOGINNAME        DS    CL8      FILTER - USERID ALIAS OR MVS
* 
PGTHAFLAG1            DS    FL1      WHAT OUTPUT AREAS TO INCLUDE
PGTHAPROCESS          EQU   X'80'      PGTHC, PROCESS DATA
PGTHACONTTY           EQU   X'40'      PGTHD, CONTTY
PGTHAPATH             EQU   X'20'      PGTHE, PATH
PGTHACOMMAND          EQU   X'10'      PGTHF, CMD & ARGS - UP TO 
                                                           1024 BYTES
PGTHAFILEDATA         EQU   X'08'      PGTHG, FILE DATA
PGTHATHREAD           EQU   X'04'      PGTHJ, THREAD DATA
PGTHAPTAG             EQU   X'02'      PGTHK, PTAG (NEEDS PGTHJ)
PGTHACOMMANDLONG      EQU   X'01'      PGTHF, CMD & ARGS - UP TO 
                                                           2048 BYTES 
                      DS    FL1
PGTHA#LEN             EQU   *-PGTHA
* 
PGTHB                 DSECT ,        O U T P U T - - - - - - - - - -
PGTHBID               DS    CL4      "gthb"
PGTHBCONTINUE         DS    0CL14    NEXT VALUE FOR PGTHACONTINUE
PGTHBPID              DS    F        PROCESS ID
PGTHBTHID             DS    CL8      THREAD ID
PGTHBACCESSPID        DS    FL1      CURRENT/FIRST/NEXT
PGTHBACCESSTHID       DS    FL1      CURRENT/FIRST/NEXT/LAST
                      DS    FL2
PGTHBLENUSED          DS    F        LENGTH OF OUTPUT BUFFER USED
PGTHBLIMITC           DS    CL1      N, A
PGTHBOFFC             DS    FL3      OFFSET OF PROCESS AREA
PGTHBLIMITD           DS    CL1      N, A, X
PGTHBOFFD             DS    FL3      OFFSET OF CONTTY  AREA
PGTHBLIMITE           DS    CL1      N, A, X
PGTHBOFFE             DS    FL3      OFFSET OF PATH    AREA
PGTHBLIMITF           DS    CL1      N, A, X
PGTHBOFFF             DS    FL3      OFFSET OF COMMAND AREA
PGTHBLIMITG           DS    CL1      N, A, X
PGTHBOFFG             DS    FL3      OFFSET OF FILE DATA AREA
PGTHBLIMITJ           DS    CL1      N, A, V, X
PGTHBOFFJ             DS    FL3      OFFSET OF THREAD AREA
PGTHB#LEN             EQU   *-PGTHB
* 
***********************************************************************
*                                                                     *
* Values for PGTHBLIMITx fields and PgthGLimitH, PgthJLimitJ, and     *
*            PgthJLimitK fields                                       *
*                                                                     *
*         N - associated area was not requested to be filled in       *
*         A - the section was completely filled in                    *
*         S - the output buffer is not big enough for the requested   *
*             data.  The section has been filled in as much           *
*             as possible.                                            *
*         V - the section was started but could not be completed      *
*             due to a system error.  Data in this section can        *
*             not be trusted.                                         *
*         X - the requested data was not available                    *
*         0 - processing did not get far enough to fill out this      *
*             section of the buffer.  Most likely, a buffer full      *
*             condition occurred while filling out a previous section *
*             and the service stops further processing and returns    *
*             EINVAL JrBuffTooSmall to the caller.                    *
*                                                                     *
***********************************************************************

* VALUES FOR PGTH.LIMIT. FIELDS
PGTH#NOTREQUESTED     EQU   C'N'     Associated PghtA.. bit off
PGTH#OK               EQU   C'A'     All data included
PGTH#STORAGE          EQU   C'S'     output buffer exhausted
* EXHAUSTED STORAGE < 1ST PGTHJ RESULTS IN -1 EINVAL JRBUFFTOOSMALL
PGTH#VAGUE            EQU   C'V'     Changed out from under us
PGTH#NOTCONNECTED     EQU   C'X'     Need data not connected
* 
* USING PGTHC,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFC
PGTHC                 DSECT ,        P R O C E S S - - - - - - - - -
PGTHCID               DS    CL4      "gthc"
PGTHCFLAG1            DS    FL1
PGTHCMULPROCESS       EQU   X'80'    MULTIPLE PROCESSES
PGTHCSWAP             EQU   X'40'    TCBOUT
PGTHCTRACE            EQU   X'20'    THREAD IS BEING TRACED
PGTHCSTOPPED          EQU   X'10'    STOPPED
PGTHCINCOMPLETE       EQU   X'08'    NOT ALL BLOCKS PRESENT
PGTHCZOMBIE           EQU   X'04'    PROCESS IS A ZOMBIE
PGTHCBLOCKING         EQU   X'02'    Shutdown blocking
PGTHCPERM             EQU   X'01'    SHutdown permanent
PGTHCFLAG2            DS    FL1
PGTHCMEMLTYPE         EQU   X'80'    ON - MemLimit is a BinMult
PGTHCRESPAWN          EQU   X'40'    respawnable process
PGTHCUSERTRACEACT     EQU   X'20'    User Syscall Trace Active
PGTHCFLAG3            DS    FL1
PGTHCMEMUTYPE         EQU   X'80'    ON - MemUsage is a BinMult
                      DS    1FL1
PGTHCPID              DS    F        PROCESS ID
PGTHCPPID             DS    F        PARENT ID
PGTHCPGPID            DS    F        PROCESS GROUP
PGTHCSID              DS    F        SESSION ID
PGTHCFGPID            DS    F        FOREGROUND PROCESS GROUP
PGTHCEUID             DS    F        EFFECTIVE USER ID
PGTHCRUID             DS    F        REAL USER ID
PGTHCSUID             DS    F        SAVED SET USER ID
PGTHCEGID             DS    F        EFFECTIVE GROUP ID
PGTHCRGID             DS    F        REAL GROUP ID
PGTHCSGID             DS    F        SAVED SET GROUP ID
PGTHCTSIZE            DS    F        TOTAL SIZE
PGTHCSYSCALLCOUNT     DS    F        COUNT OF SLOW-PATH SYSCALLS
PGTHCUSERTIME         DS    F        TIME SPENT IN USER CODE
PGTHCSYSTIME          DS    F        TIME SPENT IN SYSTEM CODE
PGTHCSTARTTIME        DS    F        TIME PROCESS WAS DUBBED
PGTHCCNTOE            DS    FL2      NO. OE THREADS
PGTHCCNTPTCREATED     DS    FL2      NO. PTHREAD CREATED THREADS
PGTHCCNTTHREADS       DS    FL2      COUNT OF ALL THREADS
PGTHCASID             DS    FL2      ADDRESS SPACE ID
PGTHCJOBNAME          DS    CL8      MVS JOB NAME
PGTHCLOGINNAME        DS    CL8      LOGIN NAME - ALIAS OR MVS
PGTHCMEMLIMIT         DS    1FL4     maximum Memlimit in bytes
        ORG    PGTHCMEMLIMIT
PGTHCMEMLIMITVAL      DS    1FL3     Hex value
PGTHCMEMLMULT         DS    1CL1     multiplier when PGTHCMEMLTYPE
PGTHCMEMUSAGE         DS    1FL4     bytes in use
        ORG    PGTHCMEMUSAGE
PGTHCMEMUSAGEVAL      DS    1FL3     Hex value
PGTHCMEMUMULT         DS    1CL1     multiplier when PGTHCMEMUTYPE
PGTHCX   DS    0C
*
*      **************************************************************
*      *
*      * PGTHCMEMLIMIT constants are used by PGTHCMEMLMULT and
*      * PGTHCMEMUMULT when the TYPE is a binmult.
*      *
*      * When PGTHCMEMLTYPE is on PGTHCMEMLIMIT consists or a
*      * 24bit binary value in the first three bytes followed by
*      * and ebcdic contanst that indicates the demonination.
*      *
*      * When PGTHCMEMLTYPE is off PGTHCMEMLIMIT consists or a
*      * 32bit binary value.
*      *
*      **************************************************************
*
*
PGTH#KILO EQU  C'K'      Kilobytes
PGTH#MEGA EQU  C'M'      Megabytes
PGTH#GIGA EQU  C'G'      Gigabytes
PGTH#TERA EQU  C'T'      Terabytes
PGTH#PETA EQU  C'P'      Petabytes
PGTHC#LEN             EQU   *-PGTHC
* 
* USING PGTHD,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFD
PGTHD                 DSECT ,        C O N T T Y - - - - - - - - - -
PGTHDID               DS    CL4      "gthd"
PGTHDLEN              DS    FL2      Length of ConTty
PGTHDCONTTY           DS    CL1024   1024 = max ConTty
* 
* USING PGTHE,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFE
PGTHE                 DSECT ,        P A T H - - - - - - - - - - - -
PGTHEID               DS    CL4      "gthe"
PGTHELEN              DS    FL2      Length of Path
PGTHEPATH             DS    CL1024   1024 = max path
* 
* USING PGTHF,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFF
PGTHF                 DSECT ,        C O M M A N D - - - - - - - - -
PGTHFID               DS    CL4      "gthf"
PGTHFLEN              DS    FL2      Length of command and arguments
PGTHFCOMMAND          DS    CL1024   1024 = max command
          ORG  PGTHFCOMMAND
PGTHFCOMMANDL         DS    CL2048    Allow up to 2K for cmd/args
                      SPACE ,
* 
* USING PGTHG,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFG
PGTHG                 DSECT ,        F I L E   H E A D E R - - - - -
PGTHGID               DS    CL4      "gthg"
PGTHGLIMITH           DS    CL1      N, A, S, X
PGTHGOFFH             DS    FL3      Offset of PgthH
PGTHGCOUNT            DS    F        Count of PgthH elements
PGTHGMAXVNODETOKENS   DS    F        MAX NUMBER VNODE TOKENS
PGTHGVNODETOKENCOUNT  DS    F        CURRENT NUMBER VNODE TOKENS
PGTHGSERVERFLAGS      DS    F        SABFLAGS
PGTHGSERVERNAME       DS    CL32     SABSERVERNAME SERVER=
PGTHGACTIVEFILES      DS    F        SABVDECOUNT   AF=
PGTHGMAXFILES         DS    F        SABMAXVDES    MF=
PGTHGSERVERTYPE       DS    F        SABSERVERTYPE TYPE=
PGTHG#LEN             EQU   *-PGTHG
* 
PGTHGARRAY            DS    0C       first PGTHH
* 
* USING PGTHH,Rx where Rx = ADDRESS of PGTHB + PGHTGOFFH
* Increment   Rx by PGTHH#LEN until PGTHGCOUNT exhausted
PGTHH                 DSECT ,        F I L E   D A T A - - - - - - -
PGTHHID               DS    CL2
PGTHH#IDR             EQU   C'rd'    root directory    (first)
PGTHH#IDC             EQU   C'cd'    current directory (second)
PGTHH#IDF             EQU   C'fd'    file directory
PGTHH#IDV             EQU   C'vd'    vnode directory
PGTHHTYPE             DS    BL1      Mapped in BPXYFTYP see FT_DIR +
PGTHHOPEN             DS    BL1      Mapped in BPXYOPNF see O_FLAGS4
PGTHHINODE            DS    F        I-NODE        see stat()
PGTHHDEVNO            DS    F        DEVICE NUMBER see stat()
PGTHH#LEN             EQU   *-PGTHH
* 
* USING PGTHJ,Rx where Rx = ADDRESS of PGTHB + PGTHBOFFJ
* Reset Rx to be PGTHB + PGTHJOFFJ for the next thread
PGTHJ                 DSECT ,        T H R E A D - - - - - - - - - -
PGTHJID               DS    CL4      "gthj"
PGTHJLIMITJ           DS    CL1      A, S, X
PGTHJOFFJ             DS    FL3      Offset of next PgthJ
PGTHJLIMITK           DS    CL1      N, A, S, X
PGTHJOFFK             DS    FL3      Offset of PgthK, this thread
PGTHJTHID             DS    CL8      THREAD ID
PGTHJSYSCALL          DS    CL4      SYSCALL (eg. "1FRK" for fork)
PGTHJTCB              DS    A        TCB ADDRESS
PGTHJTTIME            DS    F        TIME RUNNING .001 SECS
PGTHJWTIME            DS    F        OE WAITING TIME .001 SECS
                      DS    F         space
PGTHJSEMNUM           DS    H        SEMAPHORE NUMBER IF STATUS2=D
PGTHJSEMVAL           DS    H        SEMAPHORE VALUE  IF STATUS2=D
PGTHJLATCHWAITPID     DS    F        LATCH PROCESS ID WAITED FOR
PGTHJPENMASK          DS    XL8      SIGNAL PENDING MASK
PGTHJLOGINNAME        DS    CL8      LOGIN NAME - ALIAS or MVS
PGTHJPREVSC           DS    5CL4     LAST FIVE SYSCALLS
PGTHJSTATUSCHARS      DS    0CL5     STATUS
* 
PGTHJSTATUS1          DS    CL1      STATUS 1
PGTHJ#PTHDCREATED     EQU   C'J'       pthread created
* 
PGTHJSTATUS2          DS    CL1      STATUS 2
PGTHJ#MSGRCV          EQU   C'A'       msgrcv wait
PGTHJ#MSGSND          EQU   C'B'       msgsnd wait
PGTHJ#WAITC           EQU   C'C'       communication wait
PGTHJ#SEMOP           EQU   C'D'       see PgthJSemVal/SemNum
PGTHJ#WAITF           EQU   C'F'       file system wait
PGTHJ#MVSPAUSE        EQU   C'G'       MVS in pause
PGTHJ#WAITO           EQU   C'K'       other kernel wait
PGTHJ#WAITP           EQU   C'P'       PTwaiting
PGTHJ#RUN             EQU   C'R'       running / non-kernel wait
PGTHJ#SLEEP           EQU   C'S'       sleep
PGTHJ#CHILD           EQU   C'W'       waiting for child
PGTHJ#FORK            EQU   C'X'       fork new process
PGTHJ#MVSWAIT         EQU   C'Y'       MVS wait
* 
PGTHJSTATUS3          DS    CL1      STATUS 3
PGTHJ#MEDIUMWGHT      EQU   C'N'       medium weight thread
PGTHJ#ASYNC           EQU   C'O'       asynchronous thread
PGTHJ#IPT             EQU   C'U'       Initial process thread
PGTHJ#ZOMBIE          EQU   C'Z'       Process terminated and parent
*                                           has not completed wait
* 
PGTHJSTATUS4          DS    CL1      STATUS 4
PGTHJ#DETACHED        EQU   C'V'       thread is detached
* 
PGTHJSTATUS5          DS    CL1      STATUS 5
PGTHJ#FREEZE          EQU   C'E'       quiesce freeze
                      DS    CL3
* 
PGTHJ#LEN             EQU   *-PGTHJ
* USING PGTHH,Rx where Rx = ADDRESS of PGTHB + PGTHJOFFK
PGTHK                 DSECT ,        P T A G - - - - - - - - - - - -
PGTHKDATALEN          DS    F        LENGTH TO TRAILING NULL
PGTHKDATA             DS    CL68     SEE pthread_tag_np
PGTHK#LEN             EQU   *-PGTHH
* 
** BPXYPGTH End