summaryrefslogtreecommitdiff
path: root/debian/patches/0009-moar-cleanups.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-05-17 15:18:07 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-05-17 15:18:07 +0200
commit522a86c2b2e203926c3be8b07f3030c7ffb69d4a (patch)
treefe71f26679596ff9e52437c5fdd8c275f93bc1dd /debian/patches/0009-moar-cleanups.patch
parentf15c1011e3b3107925325dbff3fdf764b033c566 (diff)
add patch series
Diffstat (limited to 'debian/patches/0009-moar-cleanups.patch')
-rw-r--r--debian/patches/0009-moar-cleanups.patch287
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, &copy);
+-
+- 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
+