diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-08-28 22:25:59 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-08-28 22:32:18 +0200 |
commit | 247031c88d56028d8f6ea888bb28f20a96aafbc2 (patch) | |
tree | d18b1e2b7f9729b1f95b4c9da012ee84f6f36e1e /include | |
parent | 8852aa3195cebbbcde50743ce4d8e8c85f32262c (diff) | |
download | gnumach-247031c88d56028d8f6ea888bb28f20a96aafbc2.tar.gz gnumach-247031c88d56028d8f6ea888bb28f20a96aafbc2.tar.bz2 gnumach-247031c88d56028d8f6ea888bb28f20a96aafbc2.zip |
mach_vm_object_pages: Extend for PAE
Diffstat (limited to 'include')
-rw-r--r-- | include/mach_debug/mach_debug.defs | 9 | ||||
-rw-r--r-- | include/mach_debug/mach_debug_types.defs | 10 | ||||
-rw-r--r-- | include/mach_debug/vm_info.h | 12 |
3 files changed, 31 insertions, 0 deletions
diff --git a/include/mach_debug/mach_debug.defs b/include/mach_debug/mach_debug.defs index 8f3456dd..2de7df52 100644 --- a/include/mach_debug/mach_debug.defs +++ b/include/mach_debug/mach_debug.defs @@ -217,3 +217,12 @@ routine host_load_symbol_table( #else /* !defined(MACH_KDB) || MACH_KDB */ skip; /* host_load_symbol_table */ #endif /* !defined(MACH_KDB) || MACH_KDB */ + +#if !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG +routine mach_vm_object_pages_phys( + object : memory_object_name_t; + out pages : vm_page_phys_info_array_t, + CountInOut, Dealloc); +#else /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ +skip; /* mach_vm_object_pages_phys */ +#endif /* !defined(MACH_VM_DEBUG) || MACH_VM_DEBUG */ diff --git a/include/mach_debug/mach_debug_types.defs b/include/mach_debug/mach_debug_types.defs index 3e38ccae..d897380f 100644 --- a/include/mach_debug/mach_debug_types.defs +++ b/include/mach_debug/mach_debug_types.defs @@ -102,6 +102,16 @@ type vm_page_info_t = struct { }; type vm_page_info_array_t = array[] of vm_page_info_t; +type vm_page_phys_info_t = struct { + rpc_vm_offset_t vpi_offset; + rpc_phys_addr_t vpi_phys_addr; + unsigned vpi_wire_count; + vm_prot_t vpi_page_lock; + vm_prot_t vpi_unlock_request; + vm_page_info_state_t vpi_state; +}; +type vm_page_phys_info_array_t = array[] of vm_page_phys_info_t; + type symtab_name_t = c_string[32]; type kernel_debug_name_t = c_string[*: 64]; diff --git a/include/mach_debug/vm_info.h b/include/mach_debug/vm_info.h index 2c1b019f..cf45a2cc 100644 --- a/include/mach_debug/vm_info.h +++ b/include/mach_debug/vm_info.h @@ -117,6 +117,7 @@ typedef uint32_t vm_page_info_state_t; #define VPI_STATE_PAGER 0x80000000 /* pager has the page */ +/* XXX: This structure holds a 32bit vpi_phys_addr. */ typedef struct vm_page_info { rpc_vm_offset_t vpi_offset; /* offset in object */ rpc_vm_offset_t vpi_phys_addr; /* physical address */ @@ -128,4 +129,15 @@ typedef struct vm_page_info { typedef vm_page_info_t *vm_page_info_array_t; +typedef struct vm_page_phys_info { + rpc_vm_offset_t vpi_offset; /* offset in object */ + rpc_phys_addr_t vpi_phys_addr; /* physical address */ + unsigned int vpi_wire_count; /* number of times wired */ + vm_prot_t vpi_page_lock; /* XP access restrictions */ + vm_prot_t vpi_unlock_request; /* outstanding unlock requests */ + vm_page_info_state_t vpi_state; /* random state bits */ +} vm_page_phys_info_t; + +typedef vm_page_phys_info_t *vm_page_phys_info_array_t; + #endif /* _MACH_DEBUG_VM_INFO_H_ */ |