/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:37:41 by OpenVMS SDL EV3-3 */ /* Source: 01-JUN-2009 19:56:53 $1$DGA7274:[LIB_H.SRC]PCBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PCBDEF ***/ #ifndef __PCBDEF_LOADED #define __PCBDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* Software Process Control Block Definitions */ /* */ #include /* Define the FKB type; embedded FKB used for deferred SCHED work */ #include #define PCB$M_RES 0x1 #define PCB$M_DELPEN 0x2 #define PCB$M_FORCPEN 0x4 #define PCB$M_INQUAN 0x8 #define PCB$M_PSWAPM 0x10 #define PCB$M_RESPEN 0x20 #define PCB$M_SSFEXC 0x40 #define PCB$M_SSFEXCE 0x80 #define PCB$M_SSFEXCS 0x100 #define PCB$M_SSFEXCU 0x200 #define PCB$M_SSRWAIT 0x400 #define PCB$M_SUSPEN 0x800 #define PCB$M_WALL 0x2000 #define PCB$M_BATCH 0x4000 #define PCB$M_NOACNT 0x8000 #define PCB$M_NOSUSPEND 0x10000 #define PCB$M_ASTPEN 0x20000 #define PCB$M_PHDRES 0x40000 #define PCB$M_HIBER 0x80000 #define PCB$M_LOGIN 0x100000 #define PCB$M_NETWRK 0x200000 #define PCB$M_PWRAST 0x400000 #define PCB$M_NODELET 0x800000 #define PCB$M_DISAWS 0x1000000 #define PCB$M_INTER 0x2000000 #define PCB$M_RECOVER 0x4000000 #define PCB$M_HARDAFF 0x10000000 #define PCB$M_ERDACT 0x20000000 #define PCB$M_SOFTSUSP 0x40000000 #define PCB$M_PREEMPTED 0x80000000 #define PCB$M_QUANTUM_RESCHED 0x1 #define PCB$M_DISABLE_PREEMPT_PKTA_LOCK 0x2 #define PCB$M_FREDLOCK 0x4 #define PCB$M_PHDLOCK 0x8 #define PCB$M_TCB 0x10 #define PCB$M_TBS_STATE_PENDING 0x20 #define PCB$M_SS_LOGGING_ENABLE 0x40 #define PCB$M_SS_LOGGING_PERM 0x80 #define PCB$M_BRK_RUNDOWN_LOADED 0x100 #define PCB$M_CLASS_SCHED_PERM 0x8000 #define PCB$M_TERM_NOTIFY 0x10000 #define PCB$M_BYTLM_LOAN 0x20000 #define PCB$M_DISABLE_PREEMPT 0x40000 #define PCB$M_NOUNSHELVE 0x80000 #define PCB$M_SHELVING_RESERVED 0x100000 #define PCB$M_CLASS_SCHEDULED 0x200000 #define PCB$M_CLASS_SUPPLIED 0x400000 #define PCB$M_IN_TBS_STATE 0x800000 #define PCB$M_WINDFALL 0x1000000 #define PCB$M_NOTIFY 0x2000000 #define PCB$M_SINGLE_THREADED 0x3C000000 #define PCB$M_RWAST 0x40000000 #define PCB$M_SOFT_SINGLE_THREAD 0x80000000 #define PCB$M_EPID_WILD 0x80000000 #define PCB$M_FORK 0x1 #define PCB$K_SCHED_OTHER 0 /* Native VMS policy (MBZ) */ #define PCB$K_SCHED_FIFO 1 /* POSIX FIFO policy */ #define PCB$K_SCHED_RR 2 /* POSIX Round-Robbin policy */ /* [1..10] for POSIX */ #define PCB$K_SCHED_POLICY_CNT 3 /* # legal sched policies */ #define PCB$K_ALL_THREADS -2147483648 /* policy affects all kernel threads */ #define PCB$K_MAX_KT_COUNT 256 /* Absolute maximum number of kernel threads */ #define PCB$M_EVENT_NO_FLAG 0x1 #define PCB$M_IN_DELPAG 0x1 #define PCB$M_WAKEPEN 0x1000 #define PCB$M_SECAUDIT 0x8000000 #define PCB$M_UPCALL_AST_BLOCKED 0x80000000 #define PCB$M_SUGID_IMAGE 0x1 #define PCB$M_SUGID_PROCESS 0x2 #ifdef __cplusplus /* Define structure prototypes */ struct _acb; struct _phd; struct _jib; struct _arb; struct _orb; struct _pmb; struct _pdb; struct _xscb; struct _rmcb; struct _cde; struct _rdpb; struct _psb; struct _ktb; struct _lkb; struct _spl; #endif /* #ifdef __cplusplus */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _pcb { #pragma __nomember_alignment struct _pcb *pcb$l_sqfl; /* State queue forward link */ struct _pcb *pcb$l_sqbl; /* State queue backward link */ unsigned short int pcb$w_size; /* Size, in bytes */ unsigned char pcb$b_type; /* Structure type code for PCB */ unsigned char pcb$b_fill_1; unsigned int pcb$l_ast_pending; /* AST pending mask */ unsigned __int64 pcb$q_phypcb; /* Physical address of HWPCB */ __union { unsigned __int64 pcb$q_lefc_swapped; /* Local event flags - swapped */ __struct { unsigned int pcb$l_lefc_0_swapped; /* Cluster 0 */ unsigned int pcb$l_lefc_1_swapped; /* Cluster 1 */ } pcb$r_lefc_clusters_swapped; } pcb$r_lefc_overlay_swapped; struct _acb *pcb$l_astqfl_spk; /* Special kernel AST queue forward link (head) */ struct _acb *pcb$l_astqbl_spk; /* Special kernel AST queue back link (tail) */ struct _acb *pcb$l_astqfl_k; /* Kernel AST queue forward link (head) */ struct _acb *pcb$l_astqbl_k; /* Kernel AST queue back link (tail) */ struct _acb *pcb$l_astqfl_e; /* Executive AST queue forward link (head) */ struct _acb *pcb$l_astqbl_e; /* Executive AST queue back link (tail) */ struct _acb *pcb$l_astqfl_s; /* Supervisor AST queue forward link (head) */ struct _acb *pcb$l_astqbl_s; /* Supervisor AST queue back link (tail) */ struct _acb *pcb$l_astqfl_u; /* User AST queue forward link (head) */ struct _acb *pcb$l_astqbl_u; /* User AST queue back link (tail) */ int pcb$l_prvcpu; /* Previous CPU (not current CPU) */ int pcb$l_cpu_id; /* Current CPU (last one to load context) */ unsigned __int64 pcb$q_prvasn; /* Previous Address Space Number (ASN) */ unsigned __int64 pcb$q_prvasnseq; /* Previous ASN/RID Sequence Number */ unsigned __int64 pcb$q_oncpucnt; /* Count of threads in CUR state */ unsigned int pcb$l_astact; /* Access modes with active ASTs */ unsigned int pcb$l_state; /* Process state */ unsigned int pcb$l_pri; /* Process current priority */ unsigned int pcb$l_prib; /* Base priority */ unsigned int pcb$l_affinity_skip; /* Affinity skip count */ unsigned int pcb$l_owner; /* EPID of owner, if a subprocess */ __union { unsigned int pcb$l_sts; /* Process status flags */ __struct { unsigned pcb$v_res : 1; /* Resident, in balance set */ unsigned pcb$v_delpen : 1; /* Delete pending */ unsigned pcb$v_forcpen : 1; /* Force exit pending */ unsigned pcb$v_inquan : 1; /* Initial quantum in progress */ unsigned pcb$v_pswapm : 1; /* Process swap mode, 1=NOSWAP */ unsigned pcb$v_respen : 1; /* Resume pending, skip suspend */ unsigned pcb$v_ssfexc : 1; /* System service exception enable (K) */ unsigned pcb$v_ssfexce : 1; /* System service exception enable (E) */ unsigned pcb$v_ssfexcs : 1; /* System service exception enable (S) */ unsigned pcb$v_ssfexcu : 1; /* System service exception enable (U) */ unsigned pcb$v_ssrwait : 1; /* System service resource wait disable */ unsigned pcb$v_suspen : 1; /* Suspend pending */ unsigned pcb$v_reserved_1 : 1; /* reserved bit, overlays WAKEPEN in STS3 */ unsigned pcb$v_wall : 1; /* Wait for all events in mask */ unsigned pcb$v_batch : 1; /* Process is a batch job */ unsigned pcb$v_noacnt : 1; /* No accounting for process */ unsigned pcb$v_nosuspend : 1; /* Process cannot be suspended */ unsigned pcb$v_astpen : 1; /* AST pending */ unsigned pcb$v_phdres : 1; /* Process header resident */ unsigned pcb$v_hiber : 1; /* Hibernate after initial image activate */ unsigned pcb$v_login : 1; /* Login without reading UAF */ unsigned pcb$v_netwrk : 1; /* Network connect job */ unsigned pcb$v_pwrast : 1; /* Power fail AST */ unsigned pcb$v_nodelet : 1; /* No delete */ unsigned pcb$v_disaws : 1; /* Disable automatic WS adjustment */ unsigned pcb$v_inter : 1; /* Process is an interactive job */ unsigned pcb$v_recover : 1; /* Process can recover locks */ unsigned pcb$v_reserved_4 : 1; /* reserved bit, overlays SECAUDIT in STS3 */ unsigned pcb$v_hardaff : 1; /* Process is bound to particular CPU */ unsigned pcb$v_erdact : 1; /* Exec mode rundown active */ unsigned pcb$v_softsusp : 1; /* Process is in "soft" suspend */ unsigned pcb$v_preempted : 1; /* Hard suspend has preempted soft */ } pcb$r_fill_1_; } pcb$r_fill_0_; __union { unsigned int pcb$l_sts2; /* Process status flags (2nd LW) */ __struct { unsigned pcb$v_quantum_resched : 1; /* Quantum-oriented process reschedule */ unsigned pcb$v_disable_preempt_pkta_lock : 1; /* Disable preempt locked the PKTA */ unsigned pcb$v_fredlock : 1; /* Don't swap PHD -- process has FRED pages */ unsigned pcb$v_phdlock : 1; /* Don't swap PHD -- process has $LCKPAG pages */ unsigned pcb$v_tcb : 1; /* TCB process */ unsigned pcb$v_tbs_state_pending : 1; /* Going to TBS, but not on the queue yet */ unsigned pcb$v_ss_logging_enable : 1; /* Enable system service logging */ unsigned pcb$v_ss_logging_perm : 1; /* Logging persists across image rundown */ unsigned pcb$v_brk_rundown_loaded : 1; /* image rundown handler loaded by $BRKTHRU */ unsigned pcb$v_fill_3 : 6; unsigned pcb$v_class_sched_perm : 1; /* process is part of permanent scheduling class */ unsigned pcb$v_term_notify : 1; /* termination notification */ unsigned pcb$v_bytlm_loan : 1; /* Process has received rundown BYTLIM loan */ unsigned pcb$v_disable_preempt : 1; /* Allow process to prevent preemption */ unsigned pcb$v_nounshelve : 1; /* if set, don't auto-unshelve */ unsigned pcb$v_shelving_reserved : 1; /* Reserved for shelving facility */ unsigned pcb$v_class_scheduled : 1; /* This process is class scheduled */ unsigned pcb$v_class_supplied : 1; /* This process has been assigned a class, */ /* or an explicit "No class" (happens only */ /* when CLASS_SCHEDULED is cleared) */ unsigned pcb$v_in_tbs_state : 1; /* This process is in TBS state */ unsigned pcb$v_windfall : 1; /* Process eligible for windfall */ unsigned pcb$v_notify : 1; /* Send process termination msg. to CSP */ unsigned pcb$v_single_threaded : 4; /* single threaded bits, 1 per mode */ unsigned pcb$v_rwast : 1; /* A thread is in RWAST */ unsigned pcb$v_soft_single_thread : 1; /* ASTs allowed during $single_thread */ } pcb$r_fill_3_; } pcb$r_fill_2_; unsigned int pcb$l_prisav; /* Saved current priority */ unsigned int pcb$l_pribsav; /* Saved base priority */ unsigned int pcb$l_authpri; /* Initial process priority */ unsigned int pcb$l_onqtime; /* Abs time when placed on COM/COMO queue, */ /* adjusted for process wait time */ unsigned int pcb$l_waitime; /* Abs time of last process event */ unsigned int pcb$l_astcnt; /* AST count remaining */ unsigned int pcb$l_biocnt; /* Buffered I/O count remaining */ unsigned int pcb$l_biolm; /* Buffered I/O limit */ int pcb$l_diocnt; /* Direct I/O count remaining */ int pcb$l_diolm; /* Direct I/O count limit */ unsigned int pcb$l_prccnt; /* Subprocess count */ void *pcb$ps_ibrvec; /* Instruction break register array ptr (IA64) */ void *pcb$ps_dbrvec; /* Data break register array ptr (IA64) */ unsigned int pcb$l_wefc; /* Waiting EF cluster number */ unsigned int pcb$l_efwm; /* Event flag wait mask */ unsigned int pcb$l_efcs; /* Local event flag cluster, system */ unsigned int pcb$l_efcu; /* Local event flag cluster, user */ __union { __struct { int pcb$l_efc2p; /* Pointer to global cluster #2 */ int pcb$l_efc3p; /* Pointer to global cluster #3 */ } pcb$r_cefc_overlay_1; __struct { /* (used only until SHELL runs) */ unsigned short int pcb$w_pgflchar; /* Page file characteristics */ unsigned char pcb$b_pgflindex; /* Desired SYSTEM page file index */ } pcb$r_cefc_overlay_2; } pcb$r_cefc_overlay; unsigned int pcb$l_pid; /* Process ID used by exec on local node only */ /* */ /**** WARNING - THE INTERNAL STRUCTURE OF THE EPID IS SUBJECT TO RADICAL CHANGE BETWEEN */ /**** VERSIONS OF VMS. NO ASSUMPTIONS SHOULD EVER BE MADE ABOUT ITS FORMAT */ /* */ __union { unsigned int pcb$l_epid; /* Cluster-wide process ID seen by the world */ __struct { unsigned pcb$v_epid_proc : 21; /* Process ID field, can convert to PCB$l_pid */ unsigned pcb$v_epid_node_idx : 8; /* IDX - index to table of node identifications */ unsigned pcb$v_epid_node_seq : 2; /* SEQ - sequence number for node table entry reuse */ unsigned pcb$v_epid_wild : 1; /* Flag that EPID is wildcard context for $GETJPI, */ } pcb$r_fill_5_; } pcb$r_fill_4_; /* and not a valid EPID */ unsigned int pcb$l_eowner; /* EPID of process owner */ unsigned int pcb$l_aptcnt; /* Active page table count on outswap */ unsigned int pcb$l_mtxcnt; /* Count of mutex semaphores owned */ unsigned int pcb$l_gpgcnt; /* Global page count in WS */ unsigned int pcb$l_ppgcnt; /* Process page count in WS */ void *pcb$l_wsswp; /* Swap file disk address */ unsigned int pcb$l_swapsize; /* Swap block allocation */ struct _phd *pcb$l_phd; /* Address of Process Header */ struct _jib *pcb$l_jib; /* Address of Job Information Block */ __struct { unsigned __int64 pcb$q_priv; /* Current privilege mask */ struct _arb *pcb$l_arb; /* Address of Access Rights Block */ char pcb$$$_arb_fill_1 [48]; /* Rights list descriptors, etc. */ __union { unsigned int pcb$l_uic; /* Logon UIC of process */ __struct { unsigned short int pcb$w_mem; /* Member number in UIC */ unsigned short int pcb$w_grp; /* Group number in UIC */ } pcb$r_fill_7_; } pcb$r_fill_6_; char pcb$$$_arb_fill_2 [60]; /* Remainder of ARB */ } pcb$r_pcbarb; struct _orb *pcb$l_orb; /* Address of process ORB */ unsigned int pcb$l_tmbu; /* Termination mailbox unit number */ unsigned int pcb$l_home_rad; /* Number of the RAD that contains most process memory */ char pcb$b_ktb_padding_0 [4]; /* Used in the KTB */ int pcb$l_dlckpri; /* Deadlock resolution priority */ unsigned int pcb$l_defprot; /* Process default protection */ struct _pmb *pcb$l_pmb; /* PMB address */ int pcb$l_affinity; /* CPU ID for affinity */ unsigned int pcb$l_capability; /* CPU capability selection bitmask */ unsigned int pcb$l_cputim; /* Accumulated CPU time at last outswap */ char pcb$t_lname [16]; /* Process name */ struct _pdb *pcb$l_prcpdb; /* Address of process Performance Data Block */ /***** For DIGITAL software use only ***** */ unsigned int pcb$l_pixhist; /* PIXSCAN history summary LW (bitmask) */ int pcb$l_affinity_callback; /* Callback for breaking affinity */ unsigned int pcb$l_permanent_capability; /* Permanent capability mask */ int pcb$l_cbb_reserved_1; /* $l_permanent_cpu_affinity moves to bottom */ unsigned __int64 pcb$q_cwpssrv_queue; /* CWPS service block queue */ int pcb$l_cbb_reserved_2; /* $l_current_affinity moves to bottom */ int pcb$l_capability_seq; /* Copy of last sequence number */ unsigned __int64 pcb$q_bufobj_list; /* Defined buffer objects queue head */ unsigned int pcb$l_ast_blocked; /* AST blocked bits */ void *pcb$l_class_quant; /* Address of cell containing class quantum */ unsigned short int pcb$w_class_extra_ticks; /* if class scheduled, extra ticks given to this KTB */ unsigned char pcb$b_pkta_lock; /* Number of lockers of PKTA structure */ unsigned char pcb$b_fill_2; void *pcb$a_current_tx; /* Pointer to process default transaction */ void *pcb$a_current_cd; /* Pointer to process default commit domain */ void *pcb$a_current_vertex; /* Pointer to process default execution vertex */ __union { unsigned __int64 pcb$q_xscb_que; /* Transaction Segment list */ __struct { struct _xscb *pcb$a_xscb_flink; struct _xscb *pcb$a_xscb_blink; } pcb$r_fill_9_; } pcb$r_fill_8_; __union { unsigned __int64 pcb$q_rmcb_que; /* Declared resource manager list */ __struct { struct _rmcb *pcb$a_rmcb_flink; struct _rmcb *pcb$a_rmcb_blink; } pcb$r_fill_11_; } pcb$r_fill_10_; __union { unsigned __int64 pcb$q_cd_que; /* Commit domain membership list */ __struct { struct _cde *pcb$a_cd_flink; struct _cde *pcb$a_cd_blink; } pcb$r_fill_13_; } pcb$r_fill_12_; unsigned int pcb$l_dpc; /* Delete pending count */ unsigned int pcb$l_cputime_ref; /* CPUTIME at last TICK time */ unsigned int pcb$l_acc_waitime; /* Accumulated wait time */ int pcb$l_prcstr; /* alternate procstrt */ void *pcb$l_xpcb; /* address of the POSIX extended PCB */ unsigned int pcb$l_psx_fork_status; /* POSIX fork status cell */ __union { unsigned int pcb$l_psx_flags; /* POSIX flags */ __struct { unsigned pcb$v_fork : 1; /* In fork synchronization */ unsigned pcb$v_psx_flags_fill : 31; } pcb$r_fill_15_; } pcb$r_fill_14_; void (*pcb$l_psx_actrtn)(); /* POSIX fork action routine */ unsigned __int64 pcb$q_psx_actprm; /* POSIX fork action routine parameter */ unsigned int pcb$l_kernel_counter; /* Per-process kernel mode counters */ unsigned int pcb$l_exec_counter; /* Per-process exec mode counters */ unsigned int pcb$l_super_counter; /* Per-process super mode counters */ unsigned int pcb$l_user_counter; /* Per-process user mode counters */ unsigned int pcb$l_sched_policy; /* POSIX sched policy */ int (*pcb$a_frewsle_callout)(); /* Routine to notify of WSLE about to be removed */ __union { unsigned int pcb$l_frewsle_param; /* Parameter to pass to FREWSLE_CALLOUT routine */ int pcb$l_pqb; /* Pointer to Process Quota Block */ /* (process creation only) */ } pcb$r_pqb_overlay; unsigned int pcb$l_bufobj_cnt; /* Buffer object page count on outswap */ unsigned int pcb$l_noaudit; /* count of reasons not to audit */ unsigned int pcb$l_source_epid; /* Impersonation EPID */ __union { unsigned __int64 pcb$q_rdpb_que; /* Resource Domain pointer block */ __struct { struct _rdpb *pcb$a_rdpb_flink; struct _rdpb *pcb$a_rdpb_blink; } pcb$r_fill_17_; } pcb$r_fill_16_; unsigned __int64 pcb$q_files_64; /* s-64 bits and bobs */ __int64 pcb$q_keep_in_ws; /* Base of range */ __int64 pcb$q_keep_in_ws2; /* End of range */ int pcb$l_cbb_reserved_3; /* $l_active_cpus moves to bottom */ unsigned int pcb$l_tquantum; /* Per user thread quantum */ unsigned int pcb$l_multithread; /* Max Kthread count */ unsigned int pcb$l_kt_count; /* Kthread count */ unsigned int pcb$l_kt_high; /* highest ktb vector entry used */ void *pcb$l_ktbvec; /* KTB vector adddress */ struct _acb *pcb$l_wake_acb; /* WAKE upcall ACB address */ unsigned int pcb$l_st_ack_count; /* Thread ACK cnt for $single_thread */ __union { unsigned int pcb$l_thread_events; /* Events to pass notification to the thread manager */ __struct { unsigned pcb$v_event_no_flag : 1; /* The no-flag event */ unsigned pcb$v_fill_26_ : 7; } pcb$r_fill_19_; } pcb$r_fill_18_; struct _acb *pcb$l_postef_acb; /* Postef upcall ACB */ __union { unsigned __int64 pcb$q_postef; /* SET local event flags */ __struct { unsigned int pcb$l_postef1; /* Cluster 0 */ unsigned int pcb$l_postef2; /* Cluster 1 */ } pcb$r_postef_clusters; } pcb$r_postef_overlay; unsigned int pcb$l_swp_seq; /* Outswap seq number */ unsigned int pcb$l_swp_kt; /* Outswappable kt count */ struct _acb *pcb$l_im_astqfl_spk; /* Special kernel AST queue forward link (head) */ struct _acb *pcb$l_im_astqbl_spk; /* Special kernel AST queue back link (tail) */ struct _acb *pcb$l_im_astqfl_k; /* Kernel AST queue forward link (head) */ struct _acb *pcb$l_im_astqbl_k; /* Kernel AST queue back link (tail) */ struct _acb *pcb$l_im_astqfl_e; /* Executive AST queue forward link (head) */ struct _acb *pcb$l_im_astqbl_e; /* Executive AST queue back link (tail) */ void *pcb$ps_ccbsva; /* SVA of CCB for Fast-IO users */ unsigned int pcb$l_maxfix; /* Maximum fandle index */ void *pcb$ps_fandle; /* Fandle vector for Fast-IO users */ char pcb$b_fill_27_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned __int64 pcb$q_st_kt_array; /* Single thread array of kernel thread ids */ #pragma __nomember_alignment struct _psb *pcb$ar_natural_psb; /* Pointer to Natural Persona */ __union { unsigned int pcb$l_sts3; /* Process status flags */ __struct { unsigned pcb$v_in_delpag : 1; /* Process has entered MMG$DELPAG_64_WORK */ unsigned pcb$v_reserved_2 : 11; /* Reserved bits, overlays with fields in STS */ unsigned pcb$v_wakepen : 1; /* Wake pending, skip hibernate */ unsigned pcb$v_reserved_3 : 14; /* Reserved bits, overlays with fields in STS */ unsigned pcb$v_secaudit : 1; /* Mandatory security auditing enabled */ unsigned pcb$v_reserved_5 : 3; /* Reserved bits, overlays with fields in STS */ unsigned pcb$v_upcall_ast_blocked : 1; /* indicates that upcall ASTs are blocked */ } pcb$r_fill_21_; } pcb$r_fill_20_; __union { struct _ktb *pcb$l_initial_ktb; /* Initial KTB, overlays KTB$L_PCB */ struct _pcb *pcb$l_pcb; /* PCB, overlays PCB$L_INITIAL_KTB */ } pcb$r_pcb_iktb_overlay; char pcb$b_ktb_padding_1 [4]; /* Pad to match KTB */ int pcb$l_deadlock_wait; /* per-process deadlock wait */ char pcb$b_ktb_padding_11 [108]; /* Pad to match KTB */ void *pcb$l_ctx_waitq; /* list of synch/context wait blocks */ char pcb$b_fill_28_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _lkb *pcb$q_lockqfl; /* Lock queue forward link */ #else unsigned __int64 pcb$q_lockqfl; #endif #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _lkb *pcb$q_lockqbl; /* Lock queue backward link */ #else unsigned __int64 pcb$q_lockqbl; #endif char pcb$b_ktb_padding_2 [40]; /* Pad to match KTB */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif struct _pcb *pcb$l_class_link; /* Link PCB into scheduling class */ void *pcb$l_session_id; /* Pointer to POSIX Session ID block */ void *pcb$l_process_group; /* Pointer to POSIX Process Group block */ unsigned int pcb$l_creator; /* EPID of creator process (Unix-style parent) */ unsigned int pcb$l_lckrq; /* pointer to LCKRQ packet */ char pcb$b_ktb_padding_3 [4]; /* Space for comq head */ char pcb$b_ktb_padding_4 [16]; /* Space for ktb sched count and FRED overlay */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned __int64 pcb$q_tqe_flags; /* TQE flags */ __struct { unsigned int pcb$l_timer; /* Timer Request info */ unsigned int pcb$l_wakeup; /* Wakeup Call info */ } pcb$r_fill_23_; } pcb$r_fill_22_; struct _acb *pcb$l_acb_stall_queue; /* Address of ACB stall queue */ struct _spl *pcb$l_spinlock; /* Address of the PCB specific spinlock */ unsigned int pcb$l_delprc_forced; /* Mask of modes for which DELPRC forced exit is active */ unsigned int pcb$l_image_persona; /* Index of persona granted by an image, */ /* or of the POSIX/COE "Real" persona. */ unsigned int pcb$l_saved_uid; /* UID saved from a SETUID operation */ unsigned int pcb$l_saved_gid; /* GID saved from a SETGID operation */ __union { unsigned int pcb$l_image_flags; /* process state determined by image activation */ __struct { unsigned pcb$v_sugid_image : 1; /* Running a SUID or SGID image */ unsigned pcb$v_sugid_process : 1; /* subprocess, decended from running a SGUID image */ unsigned pcb$v_image_flags_fill : 30; } pcb$r_fill_25_; } pcb$r_fill_24_; char pcb$b_fill_29_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_perm_cpu_affinity; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_1 [6]; __union { unsigned int pcb$l_permanent_cpu_affinity; /* Permanent CPU affinity */ unsigned __int64 pcb$q_permanent_cpu_affinity; /* Permanent CPU affinity */ } pcb$r_cbb_perm_data_overlay; } pcb$r_cbb_perm_compat_overlay; } pcb$r_cbb_perm_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_current_affinity; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_3 [6]; __union { unsigned int pcb$l_current_affinity; /* Current CPU mask */ unsigned __int64 pcb$q_current_affinity; /* Current CPU mask */ } pcb$r_cbb_curraff_data_overlay; } pcb$r_cbb_curaff_compat_overlay; } pcb$r_cbb_curaff_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_active_cpus; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_5 [6]; __union { unsigned int pcb$l_active_cpus; /* CPUs owned by this process */ unsigned __int64 pcb$q_active_cpus; /* CPUs owned by this process */ } pcb$r_cbb_actcpu_data_overlay; } pcb$r_cbb_actcpu_compat_overlay; } pcb$r_cbb_actcpu_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_7 [6]; __union { unsigned int pcb$l_affinities; /* Thread affinity mask */ unsigned __int64 pcb$q_affinities; /* Thread affinity mask */ } pcb$r_cbb_affs_data_overlay; } pcb$r_cbb_affs_compat_overlay; } pcb$r_cbb_affs_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_permanent_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_9 [6]; __union { unsigned int pcb$l_permanent_affinities; /* Thread permanent affinity mask */ unsigned __int64 pcb$q_permanent_affinities; /* Thread permanent affinity mask */ } pcb$r_cbb_permaffs_data_overlay; } pcb$r_cbb_permaffs_compat_overlay; } pcb$r_cbb_permaffs_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB pcb$r_cbb_saved_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 pcb$q_cbb_fill_11 [6]; __union { unsigned int pcb$l_saved_affinities; /* Thread saved affinity mask */ unsigned __int64 pcb$q_saved_affinities; /* Thread saved affinity mask */ } pcb$r_cbb_savedaffs_data_overlay; } pcb$r_cbb_savedaffs_compat_overlay; } pcb$r_cbb_savedaffs_overlay; char pcb$t_terminal [16]; /* Terminal device name string */ /* for interactive jobs */ char pcb$b_ktb_padding_5 [8]; /* Space for ktb fp_disabled action */ unsigned int pcb$l_kt_deleted_thread_count; /* Deleted kernel thread count */ char pcb$b_ktb_padding_6 [12]; /* Alignment space */ unsigned __int64 pcb$q_kernel_counter_frac; /* Fractional tick for kernel mode */ unsigned __int64 pcb$q_exec_counter_frac; /* Fractional tick for exec mode */ unsigned __int64 pcb$q_super_counter_frac; /* Fractional tick for super mode */ unsigned __int64 pcb$q_user_counter_frac; /* Fractional tick for user mode */ char pcb$b_ktb_padding_7 [16]; /* pad to match KTB */ char pcb$b_ktb_padding_8 [32]; /* pad to match KTB */ int pcb$l_kt_limit; int pcb$l_spare; /* Pad to quadword; available for either KTB or PCB */ } PCB; #if !defined(__VAXC) #define pcb$q_lefc_swapped pcb$r_lefc_overlay_swapped.pcb$q_lefc_swapped #define pcb$l_lefc_0_swapped pcb$r_lefc_overlay_swapped.pcb$r_lefc_clusters_swapped.pcb$l_lefc_0_swapped #define pcb$l_lefc_1_swapped pcb$r_lefc_overlay_swapped.pcb$r_lefc_clusters_swapped.pcb$l_lefc_1_swapped #define pcb$l_sts pcb$r_fill_0_.pcb$l_sts #define pcb$v_res pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_res #define pcb$v_delpen pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_delpen #define pcb$v_forcpen pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_forcpen #define pcb$v_inquan pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_inquan #define pcb$v_pswapm pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_pswapm #define pcb$v_respen pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_respen #define pcb$v_ssfexc pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_ssfexc #define pcb$v_ssfexce pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_ssfexce #define pcb$v_ssfexcs pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_ssfexcs #define pcb$v_ssfexcu pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_ssfexcu #define pcb$v_ssrwait pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_ssrwait #define pcb$v_suspen pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_suspen #define pcb$v_wall pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_wall #define pcb$v_batch pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_batch #define pcb$v_noacnt pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_noacnt #define pcb$v_nosuspend pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_nosuspend #define pcb$v_astpen pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_astpen #define pcb$v_phdres pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_phdres #define pcb$v_hiber pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_hiber #define pcb$v_login pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_login #define pcb$v_netwrk pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_netwrk #define pcb$v_pwrast pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_pwrast #define pcb$v_nodelet pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_nodelet #define pcb$v_disaws pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_disaws #define pcb$v_inter pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_inter #define pcb$v_recover pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_recover #define pcb$v_hardaff pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_hardaff #define pcb$v_erdact pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_erdact #define pcb$v_softsusp pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_softsusp #define pcb$v_preempted pcb$r_fill_0_.pcb$r_fill_1_.pcb$v_preempted #define pcb$l_sts2 pcb$r_fill_2_.pcb$l_sts2 #define pcb$v_quantum_resched pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_quantum_resched #define pcb$v_disable_preempt_pkta_lock pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_disable_preempt_pkta_lock #define pcb$v_fredlock pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_fredlock #define pcb$v_phdlock pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_phdlock #define pcb$v_tcb pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_tcb #define pcb$v_tbs_state_pending pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_tbs_state_pending #define pcb$v_ss_logging_enable pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_ss_logging_enable #define pcb$v_ss_logging_perm pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_ss_logging_perm #define pcb$v_brk_rundown_loaded pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_brk_rundown_loaded #define pcb$v_class_sched_perm pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_class_sched_perm #define pcb$v_term_notify pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_term_notify #define pcb$v_bytlm_loan pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_bytlm_loan #define pcb$v_disable_preempt pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_disable_preempt #define pcb$v_nounshelve pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_nounshelve #define pcb$v_shelving_reserved pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_shelving_reserved #define pcb$v_class_scheduled pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_class_scheduled #define pcb$v_class_supplied pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_class_supplied #define pcb$v_in_tbs_state pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_in_tbs_state #define pcb$v_windfall pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_windfall #define pcb$v_notify pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_notify #define pcb$v_single_threaded pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_single_threaded #define pcb$v_rwast pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_rwast #define pcb$v_soft_single_thread pcb$r_fill_2_.pcb$r_fill_3_.pcb$v_soft_single_thread #define pcb$l_efc2p pcb$r_cefc_overlay.pcb$r_cefc_overlay_1.pcb$l_efc2p #define pcb$l_efc3p pcb$r_cefc_overlay.pcb$r_cefc_overlay_1.pcb$l_efc3p #define pcb$w_pgflchar pcb$r_cefc_overlay.pcb$r_cefc_overlay_2.pcb$w_pgflchar #define pcb$b_pgflindex pcb$r_cefc_overlay.pcb$r_cefc_overlay_2.pcb$b_pgflindex #define pcb$l_epid pcb$r_fill_4_.pcb$l_epid #define pcb$v_epid_proc pcb$r_fill_4_.pcb$r_fill_5_.pcb$v_epid_proc #define pcb$v_epid_node_idx pcb$r_fill_4_.pcb$r_fill_5_.pcb$v_epid_node_idx #define pcb$v_epid_node_seq pcb$r_fill_4_.pcb$r_fill_5_.pcb$v_epid_node_seq #define pcb$v_epid_wild pcb$r_fill_4_.pcb$r_fill_5_.pcb$v_epid_wild #define pcb$q_priv pcb$r_pcbarb.pcb$q_priv #define pcb$l_arb pcb$r_pcbarb.pcb$l_arb #define pcb$l_uic pcb$r_pcbarb.pcb$r_fill_6_.pcb$l_uic #define pcb$w_mem pcb$r_pcbarb.pcb$r_fill_6_.pcb$r_fill_7_.pcb$w_mem #define pcb$w_grp pcb$r_pcbarb.pcb$r_fill_6_.pcb$r_fill_7_.pcb$w_grp #define pcb$q_xscb_que pcb$r_fill_8_.pcb$q_xscb_que #define pcb$a_xscb_flink pcb$r_fill_8_.pcb$r_fill_9_.pcb$a_xscb_flink #define pcb$a_xscb_blink pcb$r_fill_8_.pcb$r_fill_9_.pcb$a_xscb_blink #define pcb$q_rmcb_que pcb$r_fill_10_.pcb$q_rmcb_que #define pcb$a_rmcb_flink pcb$r_fill_10_.pcb$r_fill_11_.pcb$a_rmcb_flink #define pcb$a_rmcb_blink pcb$r_fill_10_.pcb$r_fill_11_.pcb$a_rmcb_blink #define pcb$q_cd_que pcb$r_fill_12_.pcb$q_cd_que #define pcb$a_cd_flink pcb$r_fill_12_.pcb$r_fill_13_.pcb$a_cd_flink #define pcb$a_cd_blink pcb$r_fill_12_.pcb$r_fill_13_.pcb$a_cd_blink #define pcb$l_psx_flags pcb$r_fill_14_.pcb$l_psx_flags #define pcb$v_fork pcb$r_fill_14_.pcb$r_fill_15_.pcb$v_fork #define pcb$l_frewsle_param pcb$r_pqb_overlay.pcb$l_frewsle_param #define pcb$l_pqb pcb$r_pqb_overlay.pcb$l_pqb #define pcb$q_rdpb_que pcb$r_fill_16_.pcb$q_rdpb_que #define pcb$a_rdpb_flink pcb$r_fill_16_.pcb$r_fill_17_.pcb$a_rdpb_flink #define pcb$a_rdpb_blink pcb$r_fill_16_.pcb$r_fill_17_.pcb$a_rdpb_blink #define pcb$l_thread_events pcb$r_fill_18_.pcb$l_thread_events #define pcb$v_event_no_flag pcb$r_fill_18_.pcb$r_fill_19_.pcb$v_event_no_flag #define pcb$q_postef pcb$r_postef_overlay.pcb$q_postef #define pcb$l_postef1 pcb$r_postef_overlay.pcb$r_postef_clusters.pcb$l_postef1 #define pcb$l_postef2 pcb$r_postef_overlay.pcb$r_postef_clusters.pcb$l_postef2 #define pcb$l_sts3 pcb$r_fill_20_.pcb$l_sts3 #define pcb$v_in_delpag pcb$r_fill_20_.pcb$r_fill_21_.pcb$v_in_delpag #define pcb$v_wakepen pcb$r_fill_20_.pcb$r_fill_21_.pcb$v_wakepen #define pcb$v_secaudit pcb$r_fill_20_.pcb$r_fill_21_.pcb$v_secaudit #define pcb$v_upcall_ast_blocked pcb$r_fill_20_.pcb$r_fill_21_.pcb$v_upcall_ast_blocked #define pcb$l_initial_ktb pcb$r_pcb_iktb_overlay.pcb$l_initial_ktb #define pcb$l_pcb pcb$r_pcb_iktb_overlay.pcb$l_pcb #define pcb$q_tqe_flags pcb$r_fill_22_.pcb$q_tqe_flags #define pcb$l_timer pcb$r_fill_22_.pcb$r_fill_23_.pcb$l_timer #define pcb$l_wakeup pcb$r_fill_22_.pcb$r_fill_23_.pcb$l_wakeup #define pcb$l_image_flags pcb$r_fill_24_.pcb$l_image_flags #define pcb$v_sugid_image pcb$r_fill_24_.pcb$r_fill_25_.pcb$v_sugid_image #define pcb$v_sugid_process pcb$r_fill_24_.pcb$r_fill_25_.pcb$v_sugid_process #define pcb$r_cbb_perm_cpu_affinity pcb$r_cbb_perm_overlay.pcb$r_cbb_perm_cpu_affinity #define pcb$l_permanent_cpu_affinity pcb$r_cbb_perm_overlay.pcb$r_cbb_perm_compat_overlay.pcb$r_cbb_perm_data_overlay.pcb$l_permane\ nt_cpu_affinity #define pcb$q_permanent_cpu_affinity pcb$r_cbb_perm_overlay.pcb$r_cbb_perm_compat_overlay.pcb$r_cbb_perm_data_overlay.pcb$q_permane\ nt_cpu_affinity #define pcb$r_cbb_current_affinity pcb$r_cbb_curaff_overlay.pcb$r_cbb_current_affinity #define pcb$l_current_affinity pcb$r_cbb_curaff_overlay.pcb$r_cbb_curaff_compat_overlay.pcb$r_cbb_curraff_data_overlay.pcb$l_curren\ t_affinity #define pcb$q_current_affinity pcb$r_cbb_curaff_overlay.pcb$r_cbb_curaff_compat_overlay.pcb$r_cbb_curraff_data_overlay.pcb$q_curren\ t_affinity #define pcb$r_cbb_active_cpus pcb$r_cbb_actcpu_overlay.pcb$r_cbb_active_cpus #define pcb$l_active_cpus pcb$r_cbb_actcpu_overlay.pcb$r_cbb_actcpu_compat_overlay.pcb$r_cbb_actcpu_data_overlay.pcb$l_active_cpus #define pcb$q_active_cpus pcb$r_cbb_actcpu_overlay.pcb$r_cbb_actcpu_compat_overlay.pcb$r_cbb_actcpu_data_overlay.pcb$q_active_cpus #define pcb$r_cbb_affinities pcb$r_cbb_affs_overlay.pcb$r_cbb_affinities #define pcb$l_affinities pcb$r_cbb_affs_overlay.pcb$r_cbb_affs_compat_overlay.pcb$r_cbb_affs_data_overlay.pcb$l_affinities #define pcb$q_affinities pcb$r_cbb_affs_overlay.pcb$r_cbb_affs_compat_overlay.pcb$r_cbb_affs_data_overlay.pcb$q_affinities #define pcb$r_cbb_permanent_affinities pcb$r_cbb_permaffs_overlay.pcb$r_cbb_permanent_affinities #define pcb$l_permanent_affinities pcb$r_cbb_permaffs_overlay.pcb$r_cbb_permaffs_compat_overlay.pcb$r_cbb_permaffs_data_overlay.pcb\ $l_permanent_affinities #define pcb$q_permanent_affinities pcb$r_cbb_permaffs_overlay.pcb$r_cbb_permaffs_compat_overlay.pcb$r_cbb_permaffs_data_overlay.pcb\ $q_permanent_affinities #define pcb$r_cbb_saved_affinities pcb$r_cbb_savedaffs_overlay.pcb$r_cbb_saved_affinities #define pcb$l_saved_affinities pcb$r_cbb_savedaffs_overlay.pcb$r_cbb_savedaffs_compat_overlay.pcb$r_cbb_savedaffs_data_overlay.pcb$\ l_saved_affinities #define pcb$q_saved_affinities pcb$r_cbb_savedaffs_overlay.pcb$r_cbb_savedaffs_compat_overlay.pcb$r_cbb_savedaffs_data_overlay.pcb$\ q_saved_affinities #endif /* #if !defined(__VAXC) */ #define PCB$K_LENGTH 1480 /* Length of PCB */ #define PCB$C_LENGTH 1480 /* Length of PCB */ #define PCB$S_PCBDEF 1480 /* Old PCB size for compatibility */ #define KTB$M_RES 0x1 #define KTB$M_DELPEN 0x2 #define KTB$M_FORCPEN 0x4 #define KTB$M_INQUAN 0x8 #define KTB$M_PSWAPM 0x10 #define KTB$M_RESPEN 0x20 #define KTB$M_SSFEXC 0x40 #define KTB$M_SSFEXCE 0x80 #define KTB$M_SSFEXCS 0x100 #define KTB$M_SSFEXCU 0x200 #define KTB$M_SSRWAIT 0x400 #define KTB$M_SUSPEN 0x800 #define KTB$M_WALL 0x2000 #define KTB$M_BATCH 0x4000 #define KTB$M_NOACNT 0x8000 #define KTB$M_NOSUSPEND 0x10000 #define KTB$M_ASTPEN 0x20000 #define KTB$M_PHDRES 0x40000 #define KTB$M_HIBER 0x80000 #define KTB$M_LOGIN 0x100000 #define KTB$M_NETWRK 0x200000 #define KTB$M_PWRAST 0x400000 #define KTB$M_NODELET 0x800000 #define KTB$M_DISAWS 0x1000000 #define KTB$M_INTER 0x2000000 #define KTB$M_RECOVER 0x4000000 #define KTB$M_HARDAFF 0x10000000 #define KTB$M_ERDACT 0x20000000 #define KTB$M_SOFTSUSP 0x40000000 #define KTB$M_PREEMPTED 0x80000000 #define KTB$M_QUANTUM_RESCHED 0x1 #define KTB$M_PHDLOCK 0x8 #define KTB$M_TCB 0x10 #define KTB$M_TBS_STATE_PENDING 0x20 #define KTB$M_CLASS_SCHED_PERM 0x8000 #define KTB$M_TERM_NOTIFY 0x10000 #define KTB$M_BYTLM_LOAN 0x20000 #define KTB$M_NOUNSHELVE 0x80000 #define KTB$M_SHELVING_RESERVED 0x100000 #define KTB$M_CLASS_SCHEDULED 0x200000 #define KTB$M_CLASS_SUPPLIED 0x400000 #define KTB$M_IN_TBS_STATE 0x800000 #define KTB$M_WINDFALL 0x1000000 #define KTB$M_NOTIFY 0x2000000 #define KTB$M_SINGLE_THREADED 0x3C000000 #define KTB$M_EPID_WILD 0x80000000 #define KTB$K_SCHED_OTHER 0 /* Native VMS policy (MBZ) */ #define KTB$K_SCHED_FIFO 1 /* POSIX FIFO policy */ #define KTB$K_SCHED_RR 2 /* POSIX Round-Robbin policy */ /* [1..10] for POSIX */ #define KTB$K_SCHED_POLICY_CNT 3 /* # legal sched policies */ #define KTB$M_WAKEPEN 0x1000 #define KTB$M_SECAUDIT 0x8000000 #define KTB$M_UPCALL_AST_BLOCKED 0x80000000 #define KTB$M_DELETE_PENDING 0x1 #define KTB$M_SCHED_CONTEXT_SAVED 0x2 #define KTB$M_SINGLE_THREAD_ACT 0x3C #define KTB$M_TOLERANT 0x40 #define KTB$M_SOFT_RAD_AFFINITY 0x80 #ifdef __cplusplus /* Define structure prototypes */ struct _acb; struct _phd; struct _jib; struct _psb; struct _fred; #endif /* #ifdef __cplusplus */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _ktb { #pragma __nomember_alignment struct _ktb *ktb$l_sqfl; /* State queue forward link */ struct _ktb *ktb$l_sqbl; /* State queue backward link */ unsigned short int ktb$w_size; /* Size, in bytes */ unsigned char ktb$b_type; /* Structure type code for KTB */ unsigned char ktb$b_fill_1; unsigned int ktb$l_ast_pending; /* AST pending mask */ unsigned __int64 ktb$q_phypcb; /* Physical address of HWPCB */ char ktb$b_pcb_padding_1 [8]; /* pad to match PCB */ struct _acb *ktb$l_astqfl_spk; /* Special kernel AST queue forward link (head) */ struct _acb *ktb$l_astqbl_spk; /* Special kernel AST queue back link (tail) */ struct _acb *ktb$l_astqfl_k; /* Kernel AST queue forward link (head) */ struct _acb *ktb$l_astqbl_k; /* Kernel AST queue back link (tail) */ struct _acb *ktb$l_astqfl_e; /* Executive AST queue forward link (head) */ struct _acb *ktb$l_astqbl_e; /* Executive AST queue back link (tail) */ struct _acb *ktb$l_astqfl_s; /* Supervisor AST queue forward link (head) */ struct _acb *ktb$l_astqbl_s; /* Supervisor AST queue back link (tail) */ struct _acb *ktb$l_astqfl_u; /* User AST queue forward link (head) */ struct _acb *ktb$l_astqbl_u; /* User AST queue back link (tail) */ char ktb$b_pcb_padding_2 [4]; /* pad to match PCB */ int ktb$l_cpu_id; /* Current CPU (last one to load context) */ char ktb$b_pcb_padding_3 [24]; /* pad to match PCB */ unsigned int ktb$l_astact; /* Access modes with active ASTs */ unsigned int ktb$l_state; /* Process state */ unsigned int ktb$l_pri; /* Process current priority */ unsigned int ktb$l_prib; /* Base priority */ unsigned int ktb$l_affinity_skip; /* Affinity skip count */ unsigned int ktb$l_owner; /* PID of creator */ __union { unsigned int ktb$l_sts; /* Process status flags */ __struct { unsigned ktb$v_res : 1; /* Resident, in balance set */ unsigned ktb$v_delpen : 1; /* Delete pending */ unsigned ktb$v_forcpen : 1; /* Force exit pending */ unsigned ktb$v_inquan : 1; /* Initial quantum in progress */ unsigned ktb$v_pswapm : 1; /* Process swap mode, 1=NOSWAP */ unsigned ktb$v_respen : 1; /* Resume pending, skip suspend */ unsigned ktb$v_ssfexc : 1; /* System service exception enable (K) */ unsigned ktb$v_ssfexce : 1; /* System service exception enable (E) */ unsigned ktb$v_ssfexcs : 1; /* System service exception enable (S) */ unsigned ktb$v_ssfexcu : 1; /* System service exception enable (U) */ unsigned ktb$v_ssrwait : 1; /* System service resource wait disable */ unsigned ktb$v_suspen : 1; /* Suspend pending */ unsigned ktb$v_reserved_1 : 1; /* reserved bit, overlays WAKEPEN in STS3 */ unsigned ktb$v_wall : 1; /* Wait for all events in mask */ unsigned ktb$v_batch : 1; /* Process is a batch job */ unsigned ktb$v_noacnt : 1; /* No accounting for process */ unsigned ktb$v_nosuspend : 1; /* Process cannot be suspended */ unsigned ktb$v_astpen : 1; /* AST pending */ unsigned ktb$v_phdres : 1; /* Process header resident */ unsigned ktb$v_hiber : 1; /* Hibernate after initial image activate */ unsigned ktb$v_login : 1; /* Login without reading UAF */ unsigned ktb$v_netwrk : 1; /* Network connect job */ unsigned ktb$v_pwrast : 1; /* Power fail AST */ unsigned ktb$v_nodelet : 1; /* No delete */ unsigned ktb$v_disaws : 1; /* Disable automatic WS adjustment */ unsigned ktb$v_inter : 1; /* Process is an interactive job */ unsigned ktb$v_recover : 1; /* Process can recover locks */ unsigned ktb$v_reserved_4 : 1; /* reserved bit, overlays SECAUDIT in STS3 */ unsigned ktb$v_hardaff : 1; /* Process is bound to particular CPU */ unsigned ktb$v_erdact : 1; /* Exec mode rundown active */ unsigned ktb$v_softsusp : 1; /* Process is in "soft" suspend */ unsigned ktb$v_preempted : 1; /* Hard suspend has preempted soft */ } ktb$r_fill_31_; } ktb$r_fill_30_; __union { unsigned int ktb$l_sts2; /* Process status flags (2nd LW) */ __struct { unsigned ktb$v_quantum_resched : 1; /* Quantum-oriented process reschedule */ unsigned ktb$v_fill_2 : 2; unsigned ktb$v_phdlock : 1; /* Don't swap PHD -- process has $LCKPAG pages */ unsigned ktb$v_tcb : 1; /* TCB process */ unsigned ktb$v_tbs_state_pending : 1; /* Going to TBS, but not on the queue yet */ unsigned ktb$v_fill_3 : 9; unsigned ktb$v_class_sched_perm : 1; /* process is part of permanent scheduling class */ unsigned ktb$v_term_notify : 1; /* termination notification */ unsigned ktb$v_bytlm_loan : 1; /* Process has received rundown BYTLIM loan */ unsigned ktb$v_fill_4 : 1; unsigned ktb$v_nounshelve : 1; /* if set, don't auto-unshelve */ unsigned ktb$v_shelving_reserved : 1; /* Reserved for shelving facility */ unsigned ktb$v_class_scheduled : 1; /* This process is class scheduled */ unsigned ktb$v_class_supplied : 1; /* This process has been assigned a class, */ /* or an explicit "No class" (happens only */ /* when CLASS_SCHEDULED is cleared) */ unsigned ktb$v_in_tbs_state : 1; /* This process is in TBS state */ unsigned ktb$v_windfall : 1; /* Process eligible for windfall */ unsigned ktb$v_notify : 1; /* Send process termination msg. to CSP */ unsigned ktb$v_single_threaded : 4; /* single threaded bits, 1 per mode */ unsigned ktb$v_fill_48_ : 2; } ktb$r_fill_33_; } ktb$r_fill_32_; unsigned int ktb$l_prisav; /* Saved current priority */ unsigned int ktb$l_pribsav; /* Saved base priority */ unsigned int ktb$l_authpri; /* Initial process priority */ unsigned int ktb$l_onqtime; /* Abs time when placed on COM/COMO queue, */ /* adjusted for process wait time */ unsigned int ktb$l_waitime; /* Abs time of last process event */ char ktb$b_pcb_padding_4 [32]; /* pad to match PCB */ unsigned int ktb$l_wefc; /* Waiting EF cluster number */ unsigned int ktb$l_efwm; /* Event flag wait mask */ char ktb$b_pcb_padding_5 [16]; /* pad to match PCB */ unsigned int ktb$l_pid; /* Process ID used by exec on local node only */ /* */ /**** WARNING - THE INTERNAL STRUCTURE OF THE EPID IS SUBJECT TO RADICAL CHANGE BETWEEN */ /**** VERSIONS OF VMS. NO ASSUMPTIONS SHOULD EVER BE MADE ABOUT ITS FORMAT */ /* */ __union { unsigned int ktb$l_epid; /* Cluster-wide process ID seen by the world */ __struct { unsigned ktb$v_epid_proc : 21; /* Process ID field, can convert to KTB$l_pid */ unsigned ktb$v_epid_node_idx : 8; /* IDX - index to table of node identifications */ unsigned ktb$v_epid_node_seq : 2; /* SEQ - sequence number for node table entry reuse */ unsigned ktb$v_epid_wild : 1; /* Flag that EPID is wildcard context for $GETJPI, */ } ktb$r_fill_35_; } ktb$r_fill_34_; /* and not a valid EPID */ char ktb$b_pcb_padding_6 [8]; /* pad to match PCB */ unsigned int ktb$l_mtxcnt; /* Count of mutex semaphores owned */ char ktb$b_pcb_padding_7 [16]; /* pad to match PCB */ struct _phd *ktb$l_phd; /* Address of Process Header */ struct _jib *ktb$l_jib; /* Address of Job Information Block */ char ktb$b_pcb_padding_8 [132]; /* pad to match PCB */ unsigned int ktb$l_home_rad; /* Which RAD is most of our memory in? */ unsigned int ktb$l_sra_skip_count; /* How many times has KT been skipped because of soft RAD affinity? */ char ktb$b_pcb_padding_81 [12]; /* pad to match PCB */ int ktb$l_affinity; /* CPU ID for affinity */ unsigned int ktb$l_capability; /* CPU capability selection bitmask */ char ktb$b_pcb_padding_9 [32]; /* pad to match PCB */ unsigned int ktb$l_permanent_capability; /* Permanent capability mask */ int ktb$l_cbb_reserved_1; /* $l_permanent_cpu_affinity moves to bottom */ char ktb$b_pcb_padding_10 [8]; /* pad to match PCB */ int ktb$l_cbb_reserved_2; /* $l_current_affinity moves to bottom */ int ktb$l_capability_seq; /* Copy of last sequence number */ char ktb$b_pcb_padding_11 [8]; /* pad to match PCB */ unsigned int ktb$l_ast_blocked; /* AST blocked bits */ void *ktb$l_class_quant; /* Address of cell containing class quantum */ unsigned short int ktb$w_class_extra_ticks; /* If class scheduled, extra ticks given to this KTB */ char ktb$b_pcb_padding_12 [94]; /* pad to match PCB */ unsigned int ktb$l_sched_policy; /* POSIX sched policy */ char ktb$b_pcb_padding_13 [160]; /* pad to match PCB */ __union { unsigned int ktb$l_sts3; /* Process status flags */ __struct { unsigned ktb$v_reserved_2 : 12; /* Reserved bits, overlays with fields in STS */ unsigned ktb$v_wakepen : 1; /* Wake pending, skip hibernate */ unsigned ktb$v_reserved_3 : 14; /* Reserved bits, overlays with fields in STS */ unsigned ktb$v_secaudit : 1; /* Mandatory security auditing enabled */ unsigned ktb$v_reserved_5 : 3; /* Reserved bits, overlays with fields in STS */ unsigned ktb$v_upcall_ast_blocked : 1; /* indicates that upcall ASTs are blocked */ } ktb$r_fill_37_; } ktb$r_fill_36_; __union { struct _pcb *ktb$l_pcb; /* PCB, overlays PCB$L_INITIAL_KTB */ struct _ktb *ktb$l_initial_ktb; /* Initial KTB, overlays KTB$L_PCB */ } ktb$r_pcb_iktb_overlay; __union { unsigned int ktb$l_flags; /* Kernel thread flags */ __struct { unsigned ktb$v_delete_pending : 1; /* Delete pending */ unsigned ktb$v_sched_context_saved : 1; /* Saved scheduling state */ unsigned ktb$v_single_thread_act : 4; /* single thread active bits, 1 per mode */ unsigned ktb$v_tolerant : 1; /* Thread is executing a tolerant system service */ unsigned ktb$v_soft_rad_affinity : 1; /* Soft RAD affinity is in effect for this KT */ } ktb$r_fill_39_; } ktb$r_fill_38_; char ktb$b_pcb_padding_18 [4]; /* pad to match PCB */ void *ktb$l_per_kt_area; /* Address of kthread p1 area */ struct _acb *ktb$l_tquant_acb; /* Tquantum upcall ACB */ unsigned int ktb$l_tquant; /* Remaining per user thread quantum */ unsigned int ktb$l_quant; /* Remaining per kernel thread quantum */ void *ktb$l_tm_callbacks; /* Address of callback vector */ unsigned int ktb$l_callback_err; /* Error bits if callback fails */ char ktb$b_fill_49_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned __int64 ktb$q_capabilities; /* Thread capabilities and affinities */ __struct { unsigned int ktb$l_capabilities; /* Thread system and user capability mask */ int ktb$l_cbb_reserved_4; /* $l_affinities moves to bottom */ } ktb$r_fill_41_; } ktb$r_fill_40_; __union { unsigned __int64 ktb$q_permanent_capabilities; /* Thread permanent capabilities and affinities */ __struct { unsigned int ktb$l_permanent_capabilities; /* Thread permanent system and user capability mask */ int ktb$l_cbb_reserved_5; /* $l_permanent_affinities moves to bottom */ } ktb$r_fill_43_; } ktb$r_fill_42_; __union { unsigned __int64 ktb$q_saved_capabilities; /* Thread capabilities and affinities */ __struct { unsigned int ktb$l_saved_capabilities; /* Thread system and user capability mask */ int ktb$l_cbb_reserved_6; /* $l_saved_affinities moves to bottom */ } ktb$r_fill_45_; } ktb$r_fill_44_; unsigned int ktb$l_bias_cell; /* Implicit affinity CPU bias */ unsigned int ktb$l_persona_id; /* Unique Persona Identifier */ struct _psb *ktb$ar_psb; /* Pointer to active Persona */ unsigned int ktb$l_swp_seq; /* Current swapper's sequence */ __int64 ktb$q_vol_waits; /* # of voluntary waits over a specific time */ int ktb$l_curr_vol_waits; /* current # of voluntary waits (...and counting) */ int ktb$l_qend_count; /* # of quantum ends incurred */ unsigned __int64 ktb$q_comq_wait; /* SCC at the time the thread was placed on the */ /* COM queue */ unsigned __int64 ktb$q_runtime_start; /* SCC at time thread placed into execution */ unsigned __int64 ktb$q_inttime_start; /* current # of interrupt ticks (hard ticks) when */ /* thread placed into execution */ int ktb$l_soft_broken; /* # of times soft affinity has been broken */ char ktb$b_pcb_padding_14 [20]; /* pad to match PCB */ unsigned __int64 ktb$q_acc_run; /* Accumulated run time. */ unsigned __int64 ktb$q_acc_wait; /* Accumulated wait time. */ unsigned __int64 ktb$q_acc_interrupt; /* Accumulated interrupt time. */ int ktb$l_run_count; /* # of times run on this s.a. CPU. */ unsigned int ktb$l_glock_wait_status; /* Status of glock wait */ unsigned __int64 ktb$q_glock; /* Galaxy lock handle */ char ktb$b_pcb_padding_15 [16]; /* pad to match PCB */ unsigned int ktb$l_lckrq; /* pointer to LCKRQ packet */ unsigned int ktb$l_comq_head; /* If in COM, what queue are we in? */ unsigned __int64 ktb$q_sched_count; /* How many times has this KTB been scheduled */ __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _fred *ktb$q_fred; /* Address of FRED block */ #else unsigned __int64 ktb$q_fred; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ struct _fred *ktb$q_virpcb; /* VA of HWPCB */ #else unsigned __int64 ktb$q_virpcb; #endif } ktb$r_fred_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment unsigned __int64 ktb$q_tqe_flags; /* TQE flags */ __struct { unsigned int ktb$l_timer; /* Timer Request info */ unsigned int ktb$l_wakeup; /* Wakeup Call info */ } ktb$r_fill_47_; } ktb$r_fill_46_; char ktb$b_pcb_padding_16 [28]; /* pad to match PCB */ char ktb$b_fill_50_ [4]; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_perm_cpu_affinity; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_1 [6]; __union { unsigned int ktb$l_permanent_cpu_affinity; /* Permanent CPU affinity */ unsigned __int64 ktb$q_permanent_cpu_affinity; /* Permanent CPU affinity */ } ktb$r_cbb_perm_data_overlay; } ktb$r_cbb_perm_compat_overlay; } ktb$r_cbb_perm_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_current_affinity; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_3 [6]; __union { unsigned int ktb$l_current_affinity; /* Current CPU mask */ unsigned __int64 ktb$q_current_affinity; /* Current CPU mask */ } ktb$r_cbb_curraff_data_overlay; } ktb$r_cbb_curaff_compat_overlay; } ktb$r_cbb_curaff_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_active_cpus; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_5 [6]; __union { unsigned int ktb$l_active_cpus; /* CPUs owned by this process */ unsigned __int64 ktb$q_active_cpus; /* CPUs owned by this process */ } ktb$r_cbb_actcpu_data_overlay; } ktb$r_cbb_actcpu_compat_overlay; } ktb$r_cbb_actcpu_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_7 [6]; __union { unsigned int ktb$l_affinities; /* Thread affinity mask */ unsigned __int64 ktb$q_affinities; /* Thread affinity mask */ } ktb$r_cbb_affs_data_overlay; } ktb$r_cbb_affs_compat_overlay; } ktb$r_cbb_affs_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_permanent_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_9 [6]; __union { unsigned int ktb$l_permanent_affinities; /* Thread permanent affinity mask */ unsigned __int64 ktb$q_permanent_affinities; /* Thread permanent affinity mask */ } ktb$r_cbb_permaffs_data_overlay; } ktb$r_cbb_permaffs_compat_overlay; } ktb$r_cbb_permaffs_overlay; #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif __union { #pragma __nomember_alignment CBB ktb$r_cbb_saved_affinities; /* Embedded CBB block */ __struct { /* Compatability offset cells */ __int64 ktb$q_cbb_fill_11 [6]; __union { unsigned int ktb$l_saved_affinities; /* Thread saved affinity mask */ unsigned __int64 ktb$q_saved_affinities; /* Thread saved affinity mask */ } ktb$r_cbb_savedaffs_data_overlay; } ktb$r_cbb_savedaffs_compat_overlay; } ktb$r_cbb_savedaffs_overlay; char ktb$b_pcb_padding_17 [16]; /* pad to match PCB */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *ktb$pq_fp_disabled_action; /* If we get float disabled fault, what to do? */ #else unsigned __int64 ktb$pq_fp_disabled_action; #endif char ktb$b_pcb_padding_19 [16]; /* pad to match PCB */ char ktb$b_pcb_padding_20 [32]; /* pad to match PCB */ unsigned int ktb$l_kt_kernel_counter; /* Per-kthread kernel mode counters */ unsigned int ktb$l_kt_exec_counter; /* Per-kthread exec mode counters */ unsigned int ktb$l_kt_super_counter; /* Per-kthread super mode counters */ unsigned int ktb$l_kt_user_counter; /* Per-kthread user mode counters */ unsigned __int64 ktb$q_kt_kernel_counter_frac; /* Fractional tick for kernel mode */ unsigned __int64 ktb$q_kt_exec_counter_frac; /* Fractional tick for exec mode */ unsigned __int64 ktb$q_kt_super_counter_frac; /* Fractional tick for super mode */ unsigned __int64 ktb$q_kt_user_counter_frac; /* Fractional tick for user mode */ char ktb$b_pcb_padding_21 [4]; /* for PCB$L_KT_LIMIT and pad to quadword */ unsigned int ktb$l_spare; /* Available for either KTB or PCB */ } KTB; #if !defined(__VAXC) #define ktb$l_sts ktb$r_fill_30_.ktb$l_sts #define ktb$v_res ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_res #define ktb$v_delpen ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_delpen #define ktb$v_forcpen ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_forcpen #define ktb$v_inquan ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_inquan #define ktb$v_pswapm ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_pswapm #define ktb$v_respen ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_respen #define ktb$v_ssfexc ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_ssfexc #define ktb$v_ssfexce ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_ssfexce #define ktb$v_ssfexcs ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_ssfexcs #define ktb$v_ssfexcu ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_ssfexcu #define ktb$v_ssrwait ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_ssrwait #define ktb$v_suspen ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_suspen #define ktb$v_wall ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_wall #define ktb$v_batch ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_batch #define ktb$v_noacnt ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_noacnt #define ktb$v_nosuspend ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_nosuspend #define ktb$v_astpen ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_astpen #define ktb$v_phdres ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_phdres #define ktb$v_hiber ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_hiber #define ktb$v_login ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_login #define ktb$v_netwrk ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_netwrk #define ktb$v_pwrast ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_pwrast #define ktb$v_nodelet ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_nodelet #define ktb$v_disaws ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_disaws #define ktb$v_inter ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_inter #define ktb$v_recover ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_recover #define ktb$v_hardaff ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_hardaff #define ktb$v_erdact ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_erdact #define ktb$v_softsusp ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_softsusp #define ktb$v_preempted ktb$r_fill_30_.ktb$r_fill_31_.ktb$v_preempted #define ktb$l_sts2 ktb$r_fill_32_.ktb$l_sts2 #define ktb$v_quantum_resched ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_quantum_resched #define ktb$v_phdlock ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_phdlock #define ktb$v_tcb ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_tcb #define ktb$v_tbs_state_pending ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_tbs_state_pending #define ktb$v_class_sched_perm ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_class_sched_perm #define ktb$v_term_notify ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_term_notify #define ktb$v_bytlm_loan ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_bytlm_loan #define ktb$v_nounshelve ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_nounshelve #define ktb$v_shelving_reserved ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_shelving_reserved #define ktb$v_class_scheduled ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_class_scheduled #define ktb$v_class_supplied ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_class_supplied #define ktb$v_in_tbs_state ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_in_tbs_state #define ktb$v_windfall ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_windfall #define ktb$v_notify ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_notify #define ktb$v_single_threaded ktb$r_fill_32_.ktb$r_fill_33_.ktb$v_single_threaded #define ktb$l_epid ktb$r_fill_34_.ktb$l_epid #define ktb$v_epid_proc ktb$r_fill_34_.ktb$r_fill_35_.ktb$v_epid_proc #define ktb$v_epid_node_idx ktb$r_fill_34_.ktb$r_fill_35_.ktb$v_epid_node_idx #define ktb$v_epid_node_seq ktb$r_fill_34_.ktb$r_fill_35_.ktb$v_epid_node_seq #define ktb$v_epid_wild ktb$r_fill_34_.ktb$r_fill_35_.ktb$v_epid_wild #define ktb$l_sts3 ktb$r_fill_36_.ktb$l_sts3 #define ktb$v_wakepen ktb$r_fill_36_.ktb$r_fill_37_.ktb$v_wakepen #define ktb$v_secaudit ktb$r_fill_36_.ktb$r_fill_37_.ktb$v_secaudit #define ktb$v_upcall_ast_blocked ktb$r_fill_36_.ktb$r_fill_37_.ktb$v_upcall_ast_blocked #define ktb$l_pcb ktb$r_pcb_iktb_overlay.ktb$l_pcb #define ktb$l_initial_ktb ktb$r_pcb_iktb_overlay.ktb$l_initial_ktb #define ktb$l_flags ktb$r_fill_38_.ktb$l_flags #define ktb$v_delete_pending ktb$r_fill_38_.ktb$r_fill_39_.ktb$v_delete_pending #define ktb$v_sched_context_saved ktb$r_fill_38_.ktb$r_fill_39_.ktb$v_sched_context_saved #define ktb$v_single_thread_act ktb$r_fill_38_.ktb$r_fill_39_.ktb$v_single_thread_act #define ktb$v_tolerant ktb$r_fill_38_.ktb$r_fill_39_.ktb$v_tolerant #define ktb$v_soft_rad_affinity ktb$r_fill_38_.ktb$r_fill_39_.ktb$v_soft_rad_affinity #define ktb$q_capabilities ktb$r_fill_40_.ktb$q_capabilities #define ktb$l_capabilities ktb$r_fill_40_.ktb$r_fill_41_.ktb$l_capabilities #define ktb$q_permanent_capabilities ktb$r_fill_42_.ktb$q_permanent_capabilities #define ktb$l_permanent_capabilities ktb$r_fill_42_.ktb$r_fill_43_.ktb$l_permanent_capabilities #define ktb$q_saved_capabilities ktb$r_fill_44_.ktb$q_saved_capabilities #define ktb$l_saved_capabilities ktb$r_fill_44_.ktb$r_fill_45_.ktb$l_saved_capabilities #define ktb$q_fred ktb$r_fred_overlay.ktb$q_fred #define ktb$q_virpcb ktb$r_fred_overlay.ktb$q_virpcb #define ktb$q_tqe_flags ktb$r_fill_46_.ktb$q_tqe_flags #define ktb$l_timer ktb$r_fill_46_.ktb$r_fill_47_.ktb$l_timer #define ktb$l_wakeup ktb$r_fill_46_.ktb$r_fill_47_.ktb$l_wakeup #define ktb$r_cbb_perm_cpu_affinity ktb$r_cbb_perm_overlay.ktb$r_cbb_perm_cpu_affinity #define ktb$l_permanent_cpu_affinity ktb$r_cbb_perm_overlay.ktb$r_cbb_perm_compat_overlay.ktb$r_cbb_perm_data_overlay.ktb$l_permane\ nt_cpu_affinity #define ktb$q_permanent_cpu_affinity ktb$r_cbb_perm_overlay.ktb$r_cbb_perm_compat_overlay.ktb$r_cbb_perm_data_overlay.ktb$q_permane\ nt_cpu_affinity #define ktb$r_cbb_current_affinity ktb$r_cbb_curaff_overlay.ktb$r_cbb_current_affinity #define ktb$l_current_affinity ktb$r_cbb_curaff_overlay.ktb$r_cbb_curaff_compat_overlay.ktb$r_cbb_curraff_data_overlay.ktb$l_curren\ t_affinity #define ktb$q_current_affinity ktb$r_cbb_curaff_overlay.ktb$r_cbb_curaff_compat_overlay.ktb$r_cbb_curraff_data_overlay.ktb$q_curren\ t_affinity #define ktb$r_cbb_active_cpus ktb$r_cbb_actcpu_overlay.ktb$r_cbb_active_cpus #define ktb$l_active_cpus ktb$r_cbb_actcpu_overlay.ktb$r_cbb_actcpu_compat_overlay.ktb$r_cbb_actcpu_data_overlay.ktb$l_active_cpus #define ktb$q_active_cpus ktb$r_cbb_actcpu_overlay.ktb$r_cbb_actcpu_compat_overlay.ktb$r_cbb_actcpu_data_overlay.ktb$q_active_cpus #define ktb$r_cbb_affinities ktb$r_cbb_affs_overlay.ktb$r_cbb_affinities #define ktb$l_affinities ktb$r_cbb_affs_overlay.ktb$r_cbb_affs_compat_overlay.ktb$r_cbb_affs_data_overlay.ktb$l_affinities #define ktb$q_affinities ktb$r_cbb_affs_overlay.ktb$r_cbb_affs_compat_overlay.ktb$r_cbb_affs_data_overlay.ktb$q_affinities #define ktb$r_cbb_permanent_affinities ktb$r_cbb_permaffs_overlay.ktb$r_cbb_permanent_affinities #define ktb$l_permanent_affinities ktb$r_cbb_permaffs_overlay.ktb$r_cbb_permaffs_compat_overlay.ktb$r_cbb_permaffs_data_overlay.ktb\ $l_permanent_affinities #define ktb$q_permanent_affinities ktb$r_cbb_permaffs_overlay.ktb$r_cbb_permaffs_compat_overlay.ktb$r_cbb_permaffs_data_overlay.ktb\ $q_permanent_affinities #define ktb$r_cbb_saved_affinities ktb$r_cbb_savedaffs_overlay.ktb$r_cbb_saved_affinities #define ktb$l_saved_affinities ktb$r_cbb_savedaffs_overlay.ktb$r_cbb_savedaffs_compat_overlay.ktb$r_cbb_savedaffs_data_overlay.ktb$\ l_saved_affinities #define ktb$q_saved_affinities ktb$r_cbb_savedaffs_overlay.ktb$r_cbb_savedaffs_compat_overlay.ktb$r_cbb_savedaffs_data_overlay.ktb$\ q_saved_affinities #endif /* #if !defined(__VAXC) */ #define KTB$K_LENGTH 1480 /* Length of KTB */ #define KTB$C_LENGTH 1480 /* Length of KTB */ #define KTB$S_KTBDEF 1480 /* Old KTB size for compatibility */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PCBDEF_LOADED */