#include <zone_debug.h>
#include <mach_kdb.h>
#include <kern/lock.h>
+#include <kern/locks.h>
#include <kern/queue.h>
#include <kern/call_entry.h>
struct zone {
int count; /* Number of elements used now */
vm_offset_t free_elements;
- decl_mutex_data(,lock) /* generic lock */
+ decl_lck_mtx_data(,lock) /* zone lock */
+ lck_mtx_ext_t lock_ext; /* placeholder for indirect mutex */
+ lck_attr_t lock_attr; /* zone lock attribute */
+ lck_grp_t lock_grp; /* zone lock group */
+ lck_grp_attr_t lock_grp_attr; /* zone lock group attribute */
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 */
};
extern void zone_gc(void);
-extern void consider_zone_gc(void);
+extern void consider_zone_gc(boolean_t);
/* Steal memory for zone module */
extern void zone_steal_memory(void);
/* Bootstrap zone module (create zone zone) */
-extern void zone_bootstrap(void);
+extern void zone_bootstrap(void) __attribute__((section("__TEXT, initcode")));
/* Init zone module */
extern void zone_init(
- vm_size_t map_size);
+ vm_size_t map_size) __attribute__((section("__TEXT, initcode")));
/* Stack use statistics */
extern void stack_fake_zone_info(