summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-05-22 19:36:07 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-05-22 19:36:07 +0200
commit2ca216d03ead0249bf9e33cbea2c0328637943ad (patch)
tree9c1a9d502bef3605cede309d809b191452f28c78
parente03567399f762998a4a0b4227adf86a38009c712 (diff)
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.
-rw-r--r--ipc/ipc_table.c44
-rw-r--r--ipc/ipc_table.h55
2 files changed, 5 insertions, 94 deletions
diff --git a/ipc/ipc_table.c b/ipc/ipc_table.c
index 90960a8f..1a89d812 100644
--- a/ipc/ipc_table.c
+++ b/ipc/ipc_table.c
@@ -42,9 +42,6 @@
#include <kern/slab.h>
#include <vm/vm_kern.h>
-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);
@@ -143,33 +126,6 @@ ipc_table_alloc(
}
/*
- * 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:
* Free a table allocated with ipc_table_alloc or
diff --git a/ipc/ipc_table.h b/ipc/ipc_table.h
index 311b9a78..7968e6bb 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 <mach/vm_param.h>
/*
- * 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 * \