summaryrefslogtreecommitdiff
path: root/kern/zalloc.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2007-01-04 23:51:02 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:27:00 +0200
commit818dca5f6e64e5db7ff40c860a17b8a6bbe1af30 (patch)
tree51d50599f61b7e810dd99cc91b369ced423e2cb6 /kern/zalloc.h
parentf9107bcab72087acb32ab2800be04b6506b0780a (diff)
2006-12-30 Richard Braun <syn@hurdfr.org>
Add alignment support in the zone allocator. * kern/zalloc.c (ALIGN_SIZE_UP): New macro. (zinit): New `align' parameter. (zget_space): Likewise. (zalloc): Updated call to zget_space() with the zone alignment. * kern/zalloc.h (zone): New member `align'. (zinit): Declaration updated as required. * device/dev_lookup.c (dev_lookup_init): Updated call to zinit() with alignment of 0. * device/dev_pager.c (dev_pager_hash_init): Likewise. (device_pager_init): Likewise. * device/ds_routines.c (ds_init): Likewise. (ds_trap_init): Likewise. * device/net_io.c (net_io_init): Likewise. * i386/i386/fpu.c (fpu_module_init): Likewise. * i386/i386/pcb.c (pcb_module_init): Likewise. * i386/intel/pmap.c (pmap_init): Likewise. * ipc/ipc_init.c (ipc_bootstrap): Likewise. * ipc/ipc_marequest.c (ipc_marequest_init): Likewise. * kern/act.c (global_act_init): Likewise. * kern/kalloc.c (kalloc_init): Likewise. * kern/processor.c (pset_sys_init): Likewise. * kern/task.c (task_init): Likewise. * kern/thread.c (thread_init): Likewise. * kern/zalloc.c (zone_bootstrap): Likewise. * vm/vm_external.c (vm_external_module_initialize): Likewise. * vm/vm_fault.c (vm_fault_init): Likewise. * vm/vm_map.c (vm_map_init): Likewise. * vm/vm_object.c (vm_object_bootstrap): Likewise. * vm/vm_resident.c (vm_page_module_init): Likewise.
Diffstat (limited to 'kern/zalloc.h')
-rw-r--r--kern/zalloc.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/kern/zalloc.h b/kern/zalloc.h
index 9e44a6d..3f9bf21 100644
--- a/kern/zalloc.h
+++ b/kern/zalloc.h
@@ -59,6 +59,7 @@ struct zone {
vm_size_t cur_size; /* current memory utilization */
vm_size_t max_size; /* how large can this zone grow */
vm_size_t elem_size; /* size of an element */
+ vm_size_t align; /* alignment of elements */
vm_size_t alloc_size; /* size used for more memory */
boolean_t doing_alloc; /* is zone expanding now? */
char *zone_name; /* a name for the zone */
@@ -71,8 +72,8 @@ typedef struct zone *zone_t;
#define ZONE_NULL ((zone_t) 0)
/* Exported to everyone */
-zone_t zinit(vm_size_t size, vm_size_t max, vm_size_t alloc,
- unsigned int memtype, char *name);
+zone_t zinit(vm_size_t size, vm_size_t align, vm_size_t max,
+ vm_size_t alloc, unsigned int memtype, char *name);
vm_offset_t zalloc(zone_t zone);
vm_offset_t zget(zone_t zone);
void zfree(zone_t zone, vm_offset_t elem);