BPXZOTCB maps z/OS® UNIX extensions to the TCB.
BPXZOTCB ,
OTCB DSECT ,
OTCBID DS CL4 EBCDIC ID - OTCB
OTCBSP DS X Subpool number of this OTCB
OTCBLEN DS FL3 Length of this OTCB
OTCBPTXL DS A -> pthread parameters
OTCBKSER DS A -> KSER
OTCBMEDCLEAR DS 0CL84 Section of Otcb we clear for medium weight X
processes
OTCBFLAGS DS 0BL4 Compare and swap flg
OTCBFLAGSB1 DS 0B
OTCBINITIALTHREAD EQU X'80' Initial thread of a process
OTCBINKERNELCALL EQU X'40' moved to PPRT
OTCBSLEEP EQU X'20' Signal sleep() flag which is checked by X
pause().
OTCBCALLEDKERNEL EQU X'10' At sometime in its life, this thread has X
made a system call /CS
OTCBNOPTLSIR EQU X'08' Signal is being sent from the ptrace PtlSir X
(Ptrace Signal Interface Routine), so signal X
delivery should not deliver the signal to the X
PtlSir if ptrace mode is on (we're already X
there)
OTCBPROCESSCLEANUP EQU X'04' Process being torn down. /CS
OTCBINTASKTERM EQU X'02' Thread is in the process of task termination. X
Set by BPXRRTRM during task term
OTCBBYPASSRACF EQU X'01' Do not do RACF check in kill() routine
ORG OTCBFLAGSB1+1
OTCBFLAGSB2 DS 0B
OTCBPTEXITONLY EQU X'80' Thread did XAG exitonly
OTCBTHREADPTEXITED EQU X'40' Marked Ptexited
OTCBTHREADTERM EQU X'20' Thread in terminated state
OTCBIPT EQU X'10' Indicates this thread is or was the Initial X
Pthread Task, used by BPXPRMPC to check for X
IPT cleanup
OTCBPROCESSCREATOR EQU X'08' 1=>Indicates the dubbing of this thread X
caused the creation of the process
OTCBCANCELINTR EQU X'04' Cancel interrupt point
OTCBQUIESCEPOSTED EQU X'02' This task posted by qut
OTCBDUBNEWPROCESS EQU X'01' 0=>Dub as thread, 1=>Dub as process
ORG OTCBFLAGSB2+1
OTCBFLAGSB3 DS 0B
OTCBATTACHEXEC EQU X'80' attach_exec in progress
OTCBMULTIPROCCLP EQU X'40' 1=> Lower level processes are to be cleaned X
up by this thread
OTCBACTIVEACEEMANAGED EQU X'20' 1=Active ACEE managed by RACF X
(initACEE)
OTCBTOGGLEACEEMANAGED EQU X'10' 1=Toggled ACEE managed by RACF X
(initACEE)
OTCBSAVEDACEEMANAGED EQU X'08' MrPwd saved ACEE managed
OTCBINPROCESSTERM EQU X'04' 1=> When PRTRM is terminating a process. X
Used to tell F.S. Termination when PRTRM is X
cleaning up.
OTCBTASKACEEUSP EQU X'02' USP created by TLS_TASK_ACEE#
OTCBMRPWDUIDSET EQU X'01' OtcbMrPwdUID field set
ORG OTCBFLAGSB3+1
OTCBFLAGSB4 DS 0B
OTCBPSEUDODUBBED EQU X'80' Thread is a pseudo-dubbed kernel task
OTCBTASKSEC EQU X'40' Thread called BPX1TLS to build a task level X
Acee
OTCBENCLAVEOWNER EQU X'20' Thread is an owner of a WLM Enclave
OTCBWLMEMANAGED EQU X'10' Enclave managed by WLM
OTCBTASKACEEINIT EQU X'08' InitUsp done for Task Level ACEE
OTCBDUBTASKACEE EQU X'04' 0=>Don't Dub Task Level ACEE 1=>Dub Task X
Level ACEE
OTCBPTCREACEE EQU X'02' 0=> No ACEE propagated on Ptcre 1=> ACEE was X
propagated
OTCBPROCINITACEE EQU X'01' 0=> No INITACEE done during dub 1=> X
INITACEE done during dub
ORG OTCBFLAGS+4
OTCBTHID DS 0CL8 Thread ID
OTCBPPRT DS 0A -> PPRT
OTCBLIGHTWEIGHT EQU X'80' 1 Light weight thread
ORG OTCBPPRT+4
OTCBSEQNO DS 0F Sequence number
OTCBSEQNOHIGHERHALF DS H higher half of seq num
OTCBSEQNOLOWERHALF DS H lower half of seq num
OTCBSIGFLAGS DS 0BL4 Signal Flags1 that are modified by signal X
IRBs. Serialized by Compare & Swap
OTCBSIGFLAGSB1 DS 0B
OTCBSIGDISABLE EQU X'80' Signal Delivery is disabled
OTCBSIGPENDING EQU X'40' Signal pending flag
OTCBTIMERSIGNAL EQU X'20' SIGXCPU or SIGKILL is to be generated by the X
syscall layer. Either OtcbSIGXCPU or X
OtcbSIGKILL is on. This flag exists for X
sycall layer performance.
OTCBSIGALRM EQU X'10' generate in SC layer
OTCBALRMACTIVE EQU X'08' ALR & setitimer REAL
OTCBIGNRBSTATE EQU X'04' Ignore RB state
OTCBSIGDUMP EQU X'02' Dump for terminating signal
OTCBRAISETIMERIRB EQU X'01' Raise() function from Timer IRB
ORG OTCBSIGFLAGSB1+1
OTCBSIGFLAGSB2 DS 0B
OTCBIRBSIGNAL EQU X'80' Signal Checker routine should recheck signals X
because one of the signal IRBs may have X
changed the signals pending
OTCBPTDELAYIRB EQU X'40' Delay IRB for PTRACE
OTCBSIRDISABLE EQU X'20' Disable invocation of SIR
OTCBCANCELASYNC EQU X'10' Cancellation request state 0 = controlled, 1 X
= async
OTCBCANCELDISABLED EQU X'08' Cancellation request type 0=enabled, X
1=disabled
OTCBSETSIGDISABLE EQU X'04' Syscall must turn on OtcbSigDisable on X
return
OTCBCTWACTIVE EQU X'02' cond_timed_wait (BPX1CTW) is active
OTCBIGNDLVKEY EQU X'01' Ignore Dlv key
ORG OTCBSIGFLAGSB2+1
OTCBSIGFLAGSB3 DS 0B
OTCBCANCELPENDING EQU X'80' Cancel pending for thrd
OTCBPTREGSINUSTA EQU X'40' Ptrace regs/PSW are in the Usta
OTCBSIGXCPU EQU X'20' SIGXCPU is to be generated by syscall layer
OTCBSIGKILL EQU X'10' SIGKILL is to be generated by syscall layer
OTCBSIGVTALRM EQU X'08' generate in SC layer
OTCBSIGPROF EQU X'04' generate in SC layer
OTCBALLSIGSBLOCKED EQU X'02' All signals are blocked, the same as if X
all bits were on in PpstSigMask
OTCBUDPINKERNEL EQU X'01' In UDP syscall
ORG OTCBSIGFLAGSB3+1
OTCBSIGFLAGSB4 DS 0B
OTCBVTALRMACTIVE EQU X'80' setitimer VIRTUAL
OTCBPROFACTIVE EQU X'40' setitimer PROF
OTCBRETURNPPSD EQU X'20'
OTCBCALLRTM EQU X'10' CallRTM done by IR1
OTCBNOIRB EQU X'08' Avoid Irb interrupts
OTCBREDRIVE EQU X'04' IRB redrive is in prog
OTCBCPUTIMEOUT EQU X'02' A terminating signal is to be generated due X
to the process time limit being exceeded
OTCBDLVTERM EQU X'01' This thread is terminating due to a X
terminating signal
ORG OTCBSIGFLAGS+4
OTCBSIR2ID DS F Alarm ID set by STIMERM. Changed by X
incrementing at start of alarm() and sleep()
OTCBRACGROUP DS A Pointer to RACF structure to be deleted by X
next getgr* call
OTCBRACPASSWD DS A Pointer to RACF structure to be deleted by X
next getpw* call
OTCBCOMMREQ DS A Address of communications resource associated X
with this task (only valid when there is an X
active request)
OTCBPTMULTISTATUS DS B Ptrace multi process mode status word value - X
will be one of the WastStopFlag... values
OTCBFLAGS2 DS 0CL3 2nd Set of flags
OTCBFLAGS2B1 DS 0B
OTCBSTAXDEFERRED EQU X'80' Stax defer performed
OTCBLUKWKEY0 EQU X'40' User Kernwait caller is KEY 0
OTCBKSERWAITINGF EQU X'20' Is Kser waiting?
OTCBAFFINPGMRUNNING EQU X'10' An IPT/thread affinity program is X
running on this thread, do no joblogging
OTCBREGSINPPSD EQU X'08' User regs are in Ppsd at time of X
Freeze_This_Thread
OTCBREGSINIRB EQU X'04' User regs are in IRB at time of X
Freeze_This_Thread
OTCBTIMEDKERNWAIT EQU X'02' Task is in Timed Kernwait
OTCBSLOWPATHSYSCALL EQU X'01' This is a slow-path syscall. User regs X
are in USTA
ORG OTCBFLAGS2B1+1
OTCBFLAGS2B2 DS 0B
OTCBOSENVACTIVE EQU X'80' Task is active in the osenv
OTCBOSENVGET EQU X'40' Task issued osenv_get
OTCBOSENVWLMJOIN EQU X'20' Task is joined to a WLM enclave as a result X
of osenv_set
OTCBOSENVSECURITY EQU X'10' Security environment was saved by osenv
OTCBCHKPTUNSAFE EQU X'08' Task is checkpoint unsafe due to being in X
kernel
OTCBINRSTWAIT EQU X'04' Task is waiting for OMVS to be restarted
OTCBDORSTWAIT EQU X'02' Fastpath syscall requests task be put in X
restart wait
OTCBSPBUPDATE EQU X'01' Used for SPB/IR1 serialization
ORG OTCBFLAGS2B2+1
OTCBFLAGS2B3 DS 0B
OTCBDEFERSIGS EQU X'80' Defer sigs is in effect
OTCBLATCHPROBLEM EQU X'40' Latch Cleanup Problem detected at X
termination time
OTCBF2_ATTACHEDTASK EQU X'20' This task has done a localspawn or X
attach
OTCBPTHDFORKCHILD EQU X'10' This child process was created via fork X
from a pthread
ORG OTCBFLAGS2+3
OTCBALRMGTYEAR DS F Alarm time in seconds greater than 365 days X
used by alarm() and sleep() functions
OTCBCOFPTR DS A Address of CopyOnFork area
OTCBDLVIRB DS A Address of RB that called Signal Delivery
OTCBDUBRBSQN DS F Sequence number of RB that was DUBed
OTCBREGRBSQN DS F Sequence number of RB that registered for X
signals
OTCBSPB
the ALET for this SPB is PRIMARY. For X
BPXJCSA, the ALET is HOME.
OTCBSYSCALLCODE DS F System call number
OTCBLECB DS A Ptr to ECB used to wait for a latch to be X
obtained
OTCBPPSDPTR DS 0A -> PPSD
OTCBPPSD DS A -> PPSD
OTCBCTWID DS F cond_timed_wait stimerm ID
OTCBSTACKNONSW DS A Dynamic stack for Non-space switched X
syscalls. Only valid when OTCBSYSCALLCODE is X
non-zero. Contains address of 1st #SAMAP area X
following RUCA. Addressable in user home X
space.
OTCBOTIM DS A -> interval timers
OTCBOAPB DS A -> OAPB
OTCBMEDCLEAR2 DS 0CL248 We can't clear Oapb, multiproc quiesce X
references
OTCBPTPICPARMSPTR DS A Pointer to ptrace recovery environment X
parameters (PIC parms
OTCBPTEVENTID DS F Ptrace event ID, that identifies why this X
thread stopped for ptrace
OTCBPTLCLPPSDPTR DS A Ptrace local Ppsd pointer
OTCBMVSPAUSEECBLIST DS A Pointer to the BPXZECBL - System copy of user X
ECB addresses passed to MVSpauseInit
OTCBSAVEDSCB DS A Saved SCB addr of STAI on entry to Local X
Child Process
OTCBUECBLIST DS A Pointer to the BPXZECBL - System copy of user X
and system ECBs address for the BPXLUKW - X
User KernWait service
OTCBUIDS DS 0CL12 User IDs for Thread
OTCBRUID DS F Real Uid
OTCBEUID DS F Effective Uid
OTCBSUID DS F Saved Uid
OTCBSAVEDACEE DS A MRPWD saved Acee
OTCBPPRX DS A Address of the Pprx, an extension of the Pprt
OTCBMRPWDUID DS F Password verified UID
OTCBPSWBYT03 DS F Caller's PSW bytes 0-4 (Used by JCPR to setup X
BPXZUSTA)
OTCBMRPWDUSERNAME DS CL8 Password verified userid
OTCBSAVEDSECENV DS A Pointer to ACEE saved by BPX1ENV for a toggle X
request
OTCBMVSUSERIDPTR DS A Pointer to userid of this thread, points to X
either OtcbLoginNInfo or OasbLoginNInfo
OTCBLOGINNINFO DS 0CL13 Task userid and length
OTCBLOGINNLEN DS F Task userid length
OTCBLOGINNAME DS CL9 Tasks userid, must be '00'x (null) X
terminated. Preceding length does not include X
' terminating null
OTCBPRIN2FLAGS DS B This field is modified by BPXPRIN1, and it is X
used by BPXPRIN2. See PPSQ for the mapping X
and more details
DS CL2 Reserved, keep word bdy
OTCBTHLI DS A -> Thli. This field must never change offsets X
within the Otcb since the Thli is an external X
control block and the user will have to go X
through the Otcb to get to the Thli
OTCBACTSCTBNODEPTR DS A Active Acee SCTB node ptr, zero if ACEE is X
private
OTCBTOGGLEDSCTBNODEPTR DS A Toggled Acee SCTB node ptr, zero if ACEE X
is private
OTCBPAG DS F Process Auth Groups
OTCBGIDS DS 0CL12 Group IDs for Thread
OTCBRGID DS F Real Gid
OTCBEGID DS F Effective Gid
OTCBSGID DS F Saved Gid
OTCBRACGIDSPTR DS A Addr of saved group list
OTCBWLMETOKEN DS BL8 WLM Enclave token associated with the thread
OTCBSAVEDGID DS F Gid set by getpwname, used by setgid
OTCBALIASNINFO DS 0CL13
OTCBALIASNLEN DS F Task alias length
OTCBALIASNAME DS CL9 Tasks alias, must be '00'x (null) terminated. X
Preceding length does not include ' X
terminating null
DS CL3 Reserved, keep word bdy
OTCBOSENVTOKEN DS 0CL8 osenv environment token
OTCBOSENVCELLPTR DS A Ptr to osenv environment cell element
OTCBOSENVSEQN DS F seq number associated with the osenv cell
OTCBREDRIVETIME DS F Time to delay signal IRB
OTCBSHLLOADERINFO DS 0CL48 Shared Library data
OTCBSHLLOADER1DSPADDR DS A Shared Library loader data1 addr in data X
space
OTCBSHLLOADER1DSPPAGES DS F Shared Library loader data1 len in data X
space
OTCBSHLLOADER1DSPALET DS F Shared Library loader data1 alet of data X
space
OTCBSHLLOADER1DSPSTOKEN DS CL8 Shared Library loader data1 stkn of X
data space
OTCBSHLLOADER2DSPADDR DS A Shared Library loader data1 addr in data X
space
OTCBSHLLOADER2DSPPAGES DS F Shared Library loader data1 len in data X
space
OTCBSHLLOADER2DSPALET DS F Shared Library loader data1 alet of data X
space
OTCBSHLLOADER2DSPSTOKEN DS CL8 Shared Library loader data1 stkn of X
data space
OTCBSHLLOADERTOK DS CL8 Shared Library loader token len used by X
BPXXSHLB INIT
OTCBSMKLATCHFLAGCOUNT DS F OcvtSMKLatchCount incremented
OTCBSAVEPPRT DS A Addr of Pprt saved during task term when X
OtcbPprt is changed so that BPXMIPCE can find X
real Pprt of running task
OTCBSYSCALLSTART DS BL8 Start Timeused Value for active syscall
OTCBPECBPTR DS A Prt to a PECB
DS CL24 Reserved for future use
*
*
* NOTE: The size of this control block is retrieved dynamically
* during runtime by the modules that need it.
* When adding additional fields to this control block,
*
* ====> THE ONLY MODULE THAT *MUST* BE RECOMPILED IS BPXPRIT
*
*
*
OTCB_END DS 0C Make CB end on doubleword
OTCB_LEN EQU *-OTCB
*
* ********************************************************************
* * *
* * NOTE: The "OtcbCopyOnFork" is contiguous to the end of the Otcb. *
* * IPCS modules respecify its base on the address of Otcb_End *
* * because the field OtcbCofPtr does NOT contain an address *
* * that is usable by IPCS without another ?ASAXACC. *
* * *
* ********************************************************************
*
*
OTCBCOPYONFORK DSECT These fields will be copied to the child Otcb X
on fork()
OTCBSYSCALLENTRYSTATUS DS A Ptr to regs and stuff at entry to the X
syscall layer
OTCBUSTAPTR DS A Pointer to user status area containing the X
syscall issuer's regs and PSW. (Mapped by X
BPXZUSTA. Used by ptrace.)
OTCBGROUPDBSEARCH DS CL8 Group name for group data base search X
(getgrent)
OTCBUSERDBSEARCH DS CL8 User name for user data base search X
(getpwent)
OTCBSTORAGEFORCPR DS A Dynamic area for BPXJCPR
OTCBSTORAGEFORCPRKEY DS X Storage key of dynamic area for JCPR
OTCBSTORAGEFORCPRLEN DS FL3 Length of JCPR dynamic area
OTCBSTORAGEFORCPRSP DS X Storage SP of dynamic area
OTCBCOPYFLAGS DS 0B Copy on Fork Flags
OTCBSETUIDEXEC EQU X'80' Setuid Exec in progress
OTCBMVSAUTHLIB EQU X'40' Pgm loaded from MVS authorized library by X
exec/execmvs
OTCBEXECPROCESS EQU X'20' This process image was created by X
exec/execmvs
OTCBSIGPOSTINPC EQU X'10' Sig IRB will post ThliComECB even when a X
Linkage Stack is detected, signal will be X
rescheduled for future delivery
OTCBPOEATTRSET EQU X'08' The OtcbPoeAttr have been set by __poe
ORG OTCBCOPYFLAGS+1
DS CL2 Reserved
OTCBDAEMONINFO DS 0CL12 This info will be set and reused to improve X
performance by bypassing multiple RACF calls X
for the same info
OTCBSAVEDUID DS F Remembered UID
OTCBSAVEDUSERNAME DS CL8 Remembered UserID
OTCBWLMUSERDATAINFO DS 0CL16 WLM Server information. These fields are X
needed to manage the application data and X
file descriptor list. A single area is X
obtained for both needs. The area is pointed X
to by OtcbWLMUserDataPtr. The application X
data is always first in the area followed by X
the FDL area.
OTCBWLMUSERDATAPTR DS A Address of user data storage
OTCBWLMUSERDATALEN DS F Length of user data storage -- the entire X
area
OTCBWLMUSERDATAKEY DS X Key of user data area
DS CL3 reserved
OTCBWLMAPPLLEN DS F Length of the application data portion of the X
user data area. The file descriptors occupy X
the remainder of the user data area
OTCBSMFBUFFPTR DS A Address of key 0 copy of user SMF record
OTCBSMFBUFFLEN DS F Length of key 0 copy of user SMF record
OTCBPOEATTR DS 0CL96 __poe() port of entry info
OTCBPOEPEERIPADDR DS 0CL16 Peer IP Address
OTCBPOEPEERIPV6PREFIX DS CL12
OTCBPOEPEERIPV4ADDR DS F
OTCBPOETERMID DS CL8 TERMINAL Profile Name
OTCBPOELABEL DS CL8 Security Label of poe
OTCBPOEPROFILE DS CL64 SERVAUTH Profile Name
*
* ***************************************************************
* * *
* * NOTE: The size of this control block is retrieved *
* * dynamically during runtime by the modules that need it. When*
* * adding additional fields to this control block, ===> THE *
* * ONLY MODULE THAT *MUST* BE RECOMPILED IS BPXPRIT
* * *
* ***************************************************************
*
*
OTCBCOFEND DS 0C Make CB end on dword
OTCBCOPYONFORK_LEN EQU *-OTCBCOPYONFORK
*
* *****************************************************************
* * *
* * **** This is end of "OtcbCopyOnFork" area **** *
* * *
* *****************************************************************
*
*
*
* *****************************************************************
* * *
* * The following based area is used by BPXPRGUG and BPXPRSGR. A *
* * copy of the last getgroupsbyname will be saved here if done *
* * after a __passwd() with the same name.
* * *
* *****************************************************************
*
*
OTCBRACGIDS DSECT
OTCBRACGIDSHEADER DS 0CL8
OTCBRACGIDSTOTNUM DS F
OTCBRACGIDSCURNUM DS F
OTCBRACGIDSLIST DS F
OTCB#ID EQU C'OTCB' Control Block Acronym
OTCB#MEDCLEAR2LEN EQU 416 Length to clear
OTCB#LEN EQU 520
*
* Length of OTCB
*
OTCB#ONLYLEN EQU 352 Length of OTCB only
OTCB#SP EQU 230 Subpool for the OTCB
OTCBRACGIDS_LEN EQU *-OTCBRACGIDS