1 /*  BEGIN INCLUDE FILE ... apte.incl.pl1 */
  2 
  3 /* Modified 1984-11-11 by E. Swenson for IPC event channel validation. */
  4 
  5 dcl  aptep pointer;
  6 
  7 dcl 1 apte based (aptep) aligned,                           /* APT entry declaration for an active (known) process */
  8     2 thread unaligned,                                     /* List thread */
  9       3 fp bit (18),                                        /* Forward pointer */
 10       3 bp bit (18),                                        /* Backward pointer */
 11     2 flags unaligned,                                      /* Flags and miscellaneous */
 12       3 mbz bit (1),                                        /* This bit must be zero (sentinel bit) */
 13       3 wakeup_waiting bit (1),                             /* ON if process has received wakeup */
 14       3 stop_pending bit (1),                               /* ON if process has received stop connect */
 15       3 pre_empted bit (1),                                 /* ON if process is being pre-empted by get_processor */
 16       3 hproc bit (1),                                      /* ON if process is hardcore process */
 17       3 loaded bit (1),                                     /* ON if required per-process pages are in memory and wired */
 18       3 eligible bit (1),                                   /* ON if process is eligible */
 19       3 idle bit (1),                                       /* ON if  this is an idle process */
 20       3 interaction bit (1),                                /* ON if process has interacted recently */
 21       3 pre_empt_pending bit (1),                           /* ON if process has received pre-empt connect */
 22       3 default_procs_required bit (1),                     /* ON if apte.procs_required is system default */
 23       3 realtime_burst bit (1),                             /* ON if next eligibility is realtime */
 24       3 always_loaded bit (1),                              /* ON if process is not to be unloaded */
 25       3 dbr_loaded bit (1),                                 /* ON if DBR is loaded on some CPU */
 26       3 being_loaded bit (1),                               /* ON if somebody loading this process */
 27       3 shared_stack_0 bit (1),                             /* ON if a shared stack_0 is assigned */
 28       3 page_wait_flag bit (1),                             /* flag ON if waiting for page */
 29       3 firstsw bit (1),                                    /* OFF until process is intialized */
 30       3 state bit (18),                                     /* execution state */
 31     2 page_faults fixed bin (35),                           /* total page faults for the process */
 32     2 processid bit (36),                                   /* bit 0-17: offset of ATPE */
 33                                                             /* bit 18-35: sequential number */
 34     2 te fixed bin (35),                                    /* virtual time since eligibility award */
 35     2 ts fixed bin (35),                                    /* virtual time since scheduling */
 36     2 ti fixed bin (35),                                    /* virtual time since interaction */
 37     2 timax fixed bin (35),                                 /* maximum value allowed for apte.ti */
 38 
 39 /* * * * * * * * */
 40 
 41     2 ipc_pointers unaligned,
 42       3 event_thread bit (18),                              /* relative pointer to ITT list */
 43       3 pad3 bit (18),
 44     2 ips_message bit (36),                                 /* IPS signals pending */
 45     2 asteps unaligned,                                     /* relative ASTE pointers */
 46       3 pds bit (18),                                       /* PDS (per-process) */
 47       3 dseg bit (18),                                      /* DSEG (per-process) */
 48       3 prds bit (18),                                      /* PRDS (per-processor) */
 49     2 savex7 bit (18) unaligned,                            /* x7 at call to getwork (return point in pxss) */
 50     2 term_processid bit (36),                              /* process to send wakeup at temination */
 51     2 lock_id bit (36),                                     /* File System unqieu ID associated with process */
 52     2 time_used_clock fixed bin (71),                       /* Total CPU time when process last lost CPU */
 53 
 54 /* * * * * * * * */
 55 
 56     2 wait_event bit (36) aligned,                          /* Event ID process awaiting */
 57     2 wct_index bit (18) unaligned,                         /* rel offset of WCTE */
 58     2 flags2 unaligned,
 59       3 priority_scheduling bit (1),                        /* ON if guaranteed eligibility */
 60       3 special_wakeups bit (6),                            /* Special wakeup channels */
 61       3 pad7 bit (7),
 62       3 batch bit (1),                                      /* ON if absentee */
 63       3 pr_tag bit (3),                                     /* CPU tag running or last run */
 64     2 state_change_time fixed bin (71),                     /* Time apte.state last changed */
 65     2 alarm_event fixed bin (71),                           /* wakeup event for alarm clock manager */
 66     2 alarm_time_thread bit (18) unaligned,                 /* thread of processes with pending alarms */
 67     2 alarm_time bit (54) unaligned,                        /* wakeup time for alarm */
 68 
 69 /* * * * * * */
 70 
 71     2 term_channel fixed bin (71),                          /* wakeup event for account overflow */
 72     2 ws_size fixed bin,                                    /* working set estimate for the process */
 73     2 temax fixed bin (35),                                 /* maximum eligibility slice (vcpu) */
 74     2 deadline fixed bin (71),                              /* time of next run */
 75     2 lock bit (18) unaligned,                              /* 0 => APTE locked, unlocked => return point of last unlock */
 76     2 unusable bit (18) unaligned,                          /* locking routines destroy */
 77     2 cpu_monitor fixed bin (35),                           /* if not 0, send wakeup to term_processid when virtual cpu
 78                                                             /* reaches this (units = 1/1024 sec) */
 79     2 paging_measure fixed bin (71),                        /* cumulative memory units */
 80     2 access_authorization bit (72),                        /* authorization of this process */
 81     2 dbr fixed bin (71),                                   /* DBR value (constant since DSEG entry-held) */
 82 
 83     2 virtual_cpu_time fixed bin (71),                      /* cumulative virtual CPU time for the process */
 84     2 ittes_sent fixed bin (18),                            /* Unprocessed ITTs sent by this process */
 85     2 ittes_got fixed bin (18),                             /* Unprocessed ITTs received by this process */
 86 
 87 /*  Cells used to drive and instrument finite-state model for response time
 88     measurement. Maintained by meter_response_time */
 89 
 90     2 current_response_state fixed bin (17) unaligned,      /* Process state in modle */
 91     2 pad18 bit (18) unaligned,
 92     2 number_processing fixed bin (35),                     /* Number interactions */
 93     2 last_response_state_time fixed bin (71),              /* Clock time at last response state change */
 94     2 total_processing_time fixed bin (71),                 /* Total interaction processing time */
 95 
 96 /* * * * * * */
 97 
 98     2 begin_interaction_vcpu fixed bin (71),                /* Virtual cpu at beginning of last interaction */
 99 
100 /*  End of cells for finite-state model */
101 
102     2 saved_temax fixed bin (35),                           /* temax at eligibility award */
103     2 procs_required bit (8) unaligned,                     /* bit mask of CPUs this process can run */
104     2 pad4 bit (28) unaligned,
105     2 ipc_r_offset fixed bin (18) unsigned,
106     2 ipc_r_factor fixed bin (35) unsigned,
107     2 apad (10) fixed bin (35);
108 
109 /*  END INCLUDE FILE ... apte.incl.pl1 */