1 /* START OF: amu_hardcore_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 2 3 4 5 6 /****^ HISTORY COMMENTS: 7 1) change(2022-11-06,GDixon), approve(2023-01-16,MCR10129), 8 audit(2023-02-28,Swenson), install(2023-02-28,MR12.8-1054): 9 A) Add iupt and int_unpaged_page_tables elements. 10 B) Add 3 elements describing the breakpoint_page segment and 11 single PTW locating its data page in a wired, real-memory frame. 12 C) Add/clarify comments describing various elements. 13 D) Add pad elements to facilitate future addition w/o need to recompile 14 many components not otherwise affected by those additions. 15 END HISTORY COMMENTS */ 16 17 18 19 20 /* This structure contains information about the hardcore supervisor address 21 space for an address translation. */ 22 23 dcl 1 hardcore_info aligned based (amu_info.hardcore_info_ptr), 24 25 2 pointers, /* assorted pointers to various useful items */ 26 3 slt aligned, /* SLT (Segment Loader Table) */ 27 4 fptr pointer unaligned, /* address in foreign address space */ 28 4 lptr pointer unaligned, /* location in local address space */ 29 3 sltnt aligned like hardcore_info.slt, /* SLT Names Segment */ 30 3 definitions aligned like hardcore_info.slt, /* hardcore definitions_ segment */ 31 3 sst aligned like hardcore_info.slt, /* SST (System Segments Table - aka sst or sst_seg) */ 32 3 sstnt aligned like hardcore_info.slt, /* SSTNT (SST Names Table) */ 33 /* (if any -- foreign_ptr = null if not) */ 34 3 tc_data aligned like hardcore_info.slt, /* TC_DATA (Traffic Control Data - aka tc_data) */ 35 3 upt aligned like hardcore_info.slt, /* unpaged_page_tables */ 36 /* (if any -- foreign_ptr = null if not) */ 37 3 iupt aligned like hardcore_info.slt, /* int_unpaged_page_tables */ 38 /* (if any -- foreign_ptr = null if not) */ 39 3 pad1 (4) ptr unaligned, 40 41 2 segno, /* various per-process/per-processor segment numbers */ 42 3 prds fixed bin (15), /* PRDS (Processor Data Segment) */ 43 3 dseg fixed bin (15), /* DSEG (process' Descriptor Segment) */ 44 3 pds fixed bin (15), /* PDS (Process Data Segment) */ 45 3 kst fixed bin (15), /* KST (process' Known Segment Table) */ 46 /* next two items are hardcore supervisor segs, but not */ 47 /* per-process/per-processor segments... */ 48 3 stack_0 fixed bin (15), /* stack_0 -- first one in stack group */ 49 3 sst_seg fixed bin(15), /* SST - System Segment Table */ 50 /* next two items are per-bootload segments known mostly */ 51 /* by process 0 (Initializer.SysDaemon)... */ 52 3 unpaged_page_tables fixed bin(15), /* unpaged_page_tables if it exists */ 53 3 int_unpaged_page_tables fixed bin(15), /* int_unpaged_page_tables if it exists */ 54 3 pad2 (2) fixed bin(15), 55 56 2 apt, /* information about the APT */ 57 3 foreign_ptr pointer unaligned, /* foreign and local pointers to tcm.apt */ 58 3 local_ptr pointer unaligned, 59 3 count fixed bin, /* number of APTEs */ 60 3 size fixed bin, /* size of a single APTE */ 61 62 2 hcs_count fixed bin, /* highest hardcore segno */ 63 64 2 breakpoint_page aligned, /* Information about the breakpoint_page segment used by */ 65 /* bce_probe command to set breakpoints in hardcore */ 66 /* segments having the SLTE breakpointable attribute. */ 67 3 bkpt_ptw_add fixed bin(18) unsigned, /* - ptw.add absadr of this wired page in real memory; */ 68 /* it appears at end of page table for each segment */ 69 /* in which breakpoints may be set by bce_probe. */ 70 /* This single page thereby appears in each of these */ 71 /* segments, and can easily be referenced when a */ 72 /* a breakpoint is reached in code execution. */ 73 3 bkpt_cme_offset fixed bin(12) unsigned, /* - offset of its real memory frame in core_map */ 74 3 bkpt_segno fixed bin, /* - segno of breakpoint_page segment: a 1-page seg */ 75 /* defined in SLT used by bce_probe to reference the */ 76 /* the page. */ 77 2 pad3 (6) fixed bin(35); 78 79 80 dcl 1 hardcore_cur based (hardcore_cur_ptr), /* Structure filled by: amu_$hardcore_info_set_cur_ptrs */ 81 /* containing ptrs to contiguous copies of segments from */ 82 /* an fdump (crash dump): */ 83 2 sltp ptr, /* SLT (Segment Loader Table) */ 84 2 sltntp ptr, /* SLT Name Table */ 85 2 defp ptr, /* definitions */ 86 2 sstp ptr, /* SST (System Segments Table - aka sst or sst_seg) */ 87 2 sstntp ptr, /* SST Name Table */ 88 2 tc_datap ptr, /* TC_DATA (Traffic Control Data - aka tc_data) */ 89 2 uptp ptr, /* unpaged_page_tables (Page Tables for segs w/o ASTE) */ 90 2 iuptp ptr, /* int_unpaged_page_tables (like uptp but for init_segs) */ 91 2 pad4 (2) ptr; 92 dcl hardcore_cur_ptr ptr; 93 94 /* END OF: amu_hardcore_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */