diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-05-17 15:18:07 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-05-17 15:18:07 +0200 |
commit | 522a86c2b2e203926c3be8b07f3030c7ffb69d4a (patch) | |
tree | fe71f26679596ff9e52437c5fdd8c275f93bc1dd /debian/patches/0009-moar-cleanups.patch | |
parent | f15c1011e3b3107925325dbff3fdf764b033c566 (diff) |
add patch series
Diffstat (limited to 'debian/patches/0009-moar-cleanups.patch')
-rw-r--r-- | debian/patches/0009-moar-cleanups.patch | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/debian/patches/0009-moar-cleanups.patch b/debian/patches/0009-moar-cleanups.patch new file mode 100644 index 0000000..a37d69e --- /dev/null +++ b/debian/patches/0009-moar-cleanups.patch @@ -0,0 +1,287 @@ +From 92d75b7be4758e49ee5c5934f158cbd17e55b3a5 Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Sun, 17 May 2015 15:15:48 +0200 +Subject: [PATCH gnumach 09/10] moar cleanups + +--- + include/mach_debug/ipc_info.h | 20 ---- + include/mach_debug/mach_debug.defs | 21 +--- + include/mach_debug/mach_debug_types.defs | 5 - + ipc/mach_debug.c | 158 ------------------------------- + 4 files changed, 2 insertions(+), 202 deletions(-) + +diff --git a/include/mach_debug/ipc_info.h b/include/mach_debug/ipc_info.h +index 8c5bc5a..a47ae7b 100644 +--- a/include/mach_debug/ipc_info.h ++++ b/include/mach_debug/ipc_info.h +@@ -43,17 +43,6 @@ + * in mach_debug_types.defs when adding/removing fields. + */ + +- +-typedef struct ipc_info_space { +- natural_t iis_genno_mask; /* generation number mask */ +- natural_t iis_table_size; /* size of table */ +- natural_t iis_table_next; /* next possible size of table */ +- natural_t iis_tree_size; /* size of tree */ +- natural_t iis_tree_small; /* # of small entries in tree */ +- natural_t iis_tree_hash; /* # of hashed entries in tree */ +-} ipc_info_space_t; +- +- + typedef struct ipc_info_name { + mach_port_t iin_name; /* port name, including gen number */ + /*boolean_t*/integer_t iin_marequest; /* extant msg-accepted request? */ +@@ -65,15 +54,6 @@ typedef struct ipc_info_name { + + typedef ipc_info_name_t *ipc_info_name_array_t; + +- +-typedef struct ipc_info_tree_name { +- ipc_info_name_t iitn_name; +- mach_port_t iitn_lchild; /* name of left child */ +- mach_port_t iitn_rchild; /* name of right child */ +-} ipc_info_tree_name_t; +- +-typedef ipc_info_tree_name_t *ipc_info_tree_name_array_t; +- + /* + * Type definitions for mach_port_kernel_object. + * By remarkable coincidence, these closely resemble +diff --git a/include/mach_debug/mach_debug.defs b/include/mach_debug/mach_debug.defs +index fb6e3a9..c8e8b1b 100644 +--- a/include/mach_debug/mach_debug.defs ++++ b/include/mach_debug/mach_debug.defs +@@ -57,14 +57,7 @@ routine mach_port_get_srights( + name : mach_port_name_t; + out srights : mach_port_rights_t); + +-/* +- * Returns information about the global reverse hash table. +- */ +- +-routine host_ipc_hash_info( +- host : host_t; +- out info : hash_info_bucket_array_t, +- CountInOut, Dealloc); ++skip; /* host_ipc_hash_info */ + + /* + * Returns information about the marequest hash table. +@@ -76,17 +69,7 @@ routine host_ipc_marequest_info( + out info : hash_info_bucket_array_t, + CountInOut, Dealloc); + +-/* +- * Returns information about an IPC space. +- */ +- +-routine mach_port_space_info( +- task : ipc_space_t; +- out info : ipc_info_space_t; +- out table_info : ipc_info_name_array_t, +- CountInOut, Dealloc; +- out tree_info : ipc_info_tree_name_array_t, +- CountInOut, Dealloc); ++skip; /* mach_port_space_info */ + + /* + * Returns information about the dead-name requests +diff --git a/include/mach_debug/mach_debug_types.defs b/include/mach_debug/mach_debug_types.defs +index e8399d6..8df2f34 100644 +--- a/include/mach_debug/mach_debug_types.defs ++++ b/include/mach_debug/mach_debug_types.defs +@@ -38,14 +38,9 @@ type cache_info_array_t = array[] of cache_info_t; + type hash_info_bucket_t = struct[1] of natural_t; + type hash_info_bucket_array_t = array[] of hash_info_bucket_t; + +-type ipc_info_space_t = struct[6] of natural_t; +- + type ipc_info_name_t = struct[6] of natural_t; + type ipc_info_name_array_t = array[] of ipc_info_name_t; + +-type ipc_info_tree_name_t = struct[11] of natural_t; +-type ipc_info_tree_name_array_t = array[] of ipc_info_tree_name_t; +- + type vm_region_info_t = struct[11] of natural_t; + type vm_region_info_array_t = array[] of vm_region_info_t; + +diff --git a/ipc/mach_debug.c b/ipc/mach_debug.c +index 9d01d84..efb07a4 100644 +--- a/ipc/mach_debug.c ++++ b/ipc/mach_debug.c +@@ -93,28 +93,6 @@ mach_port_get_srights( + } + + /* +- * Routine: host_ipc_hash_info +- * Purpose: +- * Return information about the global reverse hash table. +- * Conditions: +- * Nothing locked. Obeys CountInOut protocol. +- * Returns: +- * KERN_SUCCESS Returned information. +- * KERN_INVALID_HOST The host is null. +- * KERN_RESOURCE_SHORTAGE Couldn't allocate memory. +- */ +- +-kern_return_t +-host_ipc_hash_info( +- host_t host, +- hash_info_bucket_array_t *infop, +- mach_msg_type_number_t *countp) +-{ +- *countp = 0; +- return KERN_SUCCESS; +-} +- +-/* + * Routine: host_ipc_marequest_info + * Purpose: + * Return information about the marequest hash table. +@@ -195,142 +173,6 @@ host_ipc_marequest_info( + } + + /* +- * Routine: mach_port_space_info +- * Purpose: +- * Returns information about an IPC space. +- * Conditions: +- * Nothing locked. Obeys CountInOut protocol. +- * Returns: +- * KERN_SUCCESS Returned information. +- * KERN_INVALID_TASK The space is null. +- * KERN_INVALID_TASK The space is dead. +- * KERN_RESOURCE_SHORTAGE Couldn't allocate memory. +- */ +- +-kern_return_t +-mach_port_space_info( +- ipc_space_t space, +- ipc_info_space_t *infop, +- ipc_info_name_array_t *tablep, +- mach_msg_type_number_t *tableCntp, +- ipc_info_tree_name_array_t *treep, +- mach_msg_type_number_t *treeCntp) +-{ +- ipc_info_name_t *table_info; +- unsigned int table_potential, table_actual; +- vm_offset_t table_addr; +- vm_size_t table_size = 0; /* Suppress gcc warning */ +- mach_port_index_t index; +- kern_return_t kr; +- +- if (space == IS_NULL) +- return KERN_INVALID_TASK; +- +- /* start with in-line memory */ +- +- table_info = *tablep; +- table_potential = *tableCntp; +- +- for (;;) { +- is_read_lock(space); +- if (!space->is_active) { +- is_read_unlock(space); +- if (table_info != *tablep) +- kmem_free(ipc_kernel_map, +- table_addr, table_size); +- return KERN_INVALID_TASK; +- } +- +- table_actual = space->is_size; +- +- if (table_actual <= table_potential) +- break; +- +- is_read_unlock(space); +- +- if (table_actual > table_potential) { +- if (table_info != *tablep) +- kmem_free(ipc_kernel_map, +- table_addr, table_size); +- +- table_size = round_page(table_actual * +- sizeof *table_info); +- kr = kmem_alloc(ipc_kernel_map, +- &table_addr, table_size); +- if (kr != KERN_SUCCESS) +- return KERN_RESOURCE_SHORTAGE; +- +- table_info = (ipc_info_name_t *) table_addr; +- table_potential = table_size/sizeof *table_info; +- } +- } +- /* space is read-locked and active; we have enough wired memory */ +- +- infop->iis_genno_mask = MACH_PORT_NGEN(MACH_PORT_DEAD); +- infop->iis_table_size = 0; +- infop->iis_table_next = 0; +- infop->iis_tree_size = 0; +- infop->iis_tree_small = 0; +- infop->iis_tree_hash = 0; +- +- ipc_entry_t entry; +- struct rdxtree_iter iter; +- index = 0; +- rdxtree_for_each(&space->is_map, &iter, entry) { +- ipc_info_name_t *iin = &table_info[index]; +- ipc_entry_bits_t bits = entry->ie_bits; +- +- iin->iin_name = MACH_PORT_MAKEB(entry->ie_name, bits); +- iin->iin_marequest = (bits & IE_BITS_MAREQUEST) ? TRUE : FALSE; +- iin->iin_type = IE_BITS_TYPE(bits); +- iin->iin_urefs = IE_BITS_UREFS(bits); +- iin->iin_object = (vm_offset_t) entry->ie_object; +- iin->iin_next = entry->ie_request; +- index += 1; +- } +- is_read_unlock(space); +- +- if (table_info == *tablep) { +- /* data fit in-line; nothing to deallocate */ +- +- *tableCntp = table_actual; +- } else if (table_actual == 0) { +- kmem_free(ipc_kernel_map, table_addr, table_size); +- +- *tableCntp = 0; +- } else { +- vm_size_t size_used, rsize_used; +- vm_map_copy_t copy; +- +- /* kmem_alloc doesn't zero memory */ +- +- size_used = table_actual * sizeof *table_info; +- rsize_used = round_page(size_used); +- +- if (rsize_used != table_size) +- kmem_free(ipc_kernel_map, +- table_addr + rsize_used, +- table_size - rsize_used); +- +- if (size_used != rsize_used) +- memset((void *) (table_addr + size_used), 0, +- rsize_used - size_used); +- +- kr = vm_map_copyin(ipc_kernel_map, table_addr, rsize_used, +- TRUE, ©); +- +- assert(kr == KERN_SUCCESS); +- +- *tablep = (ipc_info_name_t *) copy; +- *tableCntp = table_actual; +- } +- +- /* The splay tree is gone. */ +- *treeCntp = 0; +- return KERN_SUCCESS; +-} +- +-/* + * Routine: mach_port_dnrequest_info + * Purpose: + * Returns information about the dead-name requests +-- +2.1.4 + |