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