From 2ca216d03ead0249bf9e33cbea2c0328637943ad Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Fri, 22 May 2015 19:36:07 +0200 Subject: ipc: drop remnants of the IPC tables * ipc/ipc_table.c (ipc_table_entries): Remove. (ipc_table_entries_size): Likewise. (ipc_table_init): Remove initialization of `ipc_table_entries'. (ipc_table_realloc): Remove function. * ipc/ipc_table.h: Adjust comments. (ipc_table_entries): Remove declaration. (ipc_table_realloc): Likewise. (it_entries_{alloc,reallocable,realloc,free}): Remove macros. --- ipc/ipc_table.c | 44 -------------------------------------------- ipc/ipc_table.h | 55 +++++-------------------------------------------------- 2 files changed, 5 insertions(+), 94 deletions(-) diff --git a/ipc/ipc_table.c b/ipc/ipc_table.c index 90960a8..1a89d81 100644 --- a/ipc/ipc_table.c +++ b/ipc/ipc_table.c @@ -42,9 +42,6 @@ #include #include -ipc_table_size_t ipc_table_entries; -const unsigned int ipc_table_entries_size = 512; - ipc_table_size_t ipc_table_dnrequests; const unsigned int ipc_table_dnrequests_size = 64; @@ -92,20 +89,6 @@ ipc_table_fill( void ipc_table_init(void) { - ipc_table_entries = (ipc_table_size_t) - kalloc(sizeof(struct ipc_table_size) * - ipc_table_entries_size); - assert(ipc_table_entries != ITS_NULL); - - ipc_table_fill(ipc_table_entries, ipc_table_entries_size - 1, - 4, sizeof(struct ipc_entry)); - - /* the last two elements should have the same size */ - - ipc_table_entries[ipc_table_entries_size - 1].its_size = - ipc_table_entries[ipc_table_entries_size - 2].its_size; - - ipc_table_dnrequests = (ipc_table_size_t) kalloc(sizeof(struct ipc_table_size) * ipc_table_dnrequests_size); @@ -142,33 +125,6 @@ ipc_table_alloc( return table; } -/* - * Routine: ipc_table_realloc - * Purpose: - * Reallocate a big table. - * - * The new table remaps the old table, - * so copying is not necessary. - * Conditions: - * Only works for page-size or bigger tables. - * May block. - */ - -vm_offset_t -ipc_table_realloc( - vm_size_t old_size, - vm_offset_t old_table, - vm_size_t new_size) -{ - vm_offset_t new_table; - - if (kmem_realloc(kmem_map, old_table, old_size, - &new_table, new_size) != KERN_SUCCESS) - new_table = 0; - - return new_table; -} - /* * Routine: ipc_table_free * Purpose: diff --git a/ipc/ipc_table.h b/ipc/ipc_table.h index 311b9a7..7968e6b 100644 --- a/ipc/ipc_table.h +++ b/ipc/ipc_table.h @@ -30,8 +30,8 @@ * Author: Rich Draves * Date: 1989 * - * Definitions for tables, used for IPC capabilities (ipc_entry_t) - * and dead-name requests (ipc_port_request_t). + * Definitions for tables, used for dead-name requests + * (ipc_port_request_t). */ #ifndef _IPC_IPC_TABLE_H_ @@ -41,23 +41,8 @@ #include /* - * The is_table_next field of an ipc_space_t points to - * an ipc_table_size structure. These structures must - * be elements of an array, ipc_table_entries. - * * Every its_size value must must be a power of two. * - * The array must end with two elements with the same its_size value. - * Except for the terminating element, the its_size values must - * be strictly increasing. The largest (last) its_size value - * must be less than or equal to MACH_PORT_INDEX(MACH_PORT_DEAD). - * This ensures that - * 1) MACH_PORT_INDEX(MACH_PORT_DEAD) isn't a valid index - * in the table, so ipc_entry_get won't allocate it. - * 2) MACH_PORT_MAKE(index+1, 0) and MAKE_PORT_MAKE(size, 0) - * won't ever overflow. - * - * * The ipr_size field of the first element in a table of * dead-name requests (ipc_port_request_t) points to the * ipc_table_size structure. The structures must be elements @@ -65,8 +50,6 @@ * with an element with zero its_size, and except for this last * element, the its_size values must be strictly increasing. * - * The is_table_next field points to the ipc_table_size structure - * for the next larger size of table, not the one currently in use. * The ipr_size field points to the currently used ipc_table_size. */ @@ -79,32 +62,21 @@ typedef struct ipc_table_size { #define ITS_NULL ((ipc_table_size_t) 0) -extern ipc_table_size_t ipc_table_entries; extern ipc_table_size_t ipc_table_dnrequests; extern void ipc_table_init(void); /* - * Note that ipc_table_alloc, ipc_table_realloc, and ipc_table_free - * all potentially use the VM system. Hence simple locks can't - * be held across them. - * - * We can't use a copying realloc, because the realloc happens - * with the data unlocked. ipc_table_realloc remaps the data, - * so it is OK. + * Note that ipc_table_alloc, and ipc_table_free all potentially + * use the VM system. Hence simple locks can't be held across + * them. */ /* Allocate a table */ extern vm_offset_t ipc_table_alloc( vm_size_t size); -/* Reallocate a big table */ -extern vm_offset_t ipc_table_realloc( - vm_size_t old_size, - vm_offset_t old_table, - vm_size_t new_size); - /* Free a table */ extern void ipc_table_free( vm_size_t size, @@ -116,23 +88,6 @@ void ipc_table_fill( unsigned int min, vm_size_t elemsize); -#define it_entries_alloc(its) \ - ((ipc_entry_t) \ - ipc_table_alloc((its)->its_size * sizeof(struct ipc_entry))) - -#define it_entries_reallocable(its) \ - (((its)->its_size * sizeof(struct ipc_entry)) >= PAGE_SIZE) - -#define it_entries_realloc(its, table, nits) \ - ((ipc_entry_t) \ - ipc_table_realloc((its)->its_size * sizeof(struct ipc_entry), \ - (vm_offset_t)(table), \ - (nits)->its_size * sizeof(struct ipc_entry))) - -#define it_entries_free(its, table) \ - ipc_table_free((its)->its_size * sizeof(struct ipc_entry), \ - (vm_offset_t)(table)) - #define it_dnrequests_alloc(its) \ ((ipc_port_request_t) \ ipc_table_alloc((its)->its_size * \ -- cgit v1.2.3