1/*
2 * Copyright (c) 2002, Jeffrey Roberson <jroberson@chesapeake.net>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 9 unchanged lines hidden (view full) ---
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/vm/uma.h 100326 2002-07-18 15:53:11Z markm $
27 *
28 */
29
30/*
31 * uma.h - External definitions for the Universal Memory Allocator
32 *
33 * Jeff Roberson <jroberson@chesapeake.net>
34*/
--- 133 unchanged lines hidden (view full) ---
168 physical memory XXX Not yet */
169#define UMA_ZONE_ZINIT 0x0002 /* Initialize with zeros */
170#define UMA_ZONE_STATIC 0x0004 /* Staticly sized zone */
171#define UMA_ZONE_OFFPAGE 0x0008 /* Force the slab structure allocation
172 off of the real memory */
173#define UMA_ZONE_MALLOC 0x0010 /* For use by malloc(9) only! */
174#define UMA_ZONE_NOFREE 0x0020 /* Do not free slabs of this type! */
175#define UMA_ZONE_MTXCLASS 0x0040 /* Create a new lock class */
176#define UMA_ZONE_VM 0x0080 /* Used for internal vm datastructures */
177
178/* Definitions for align */
179#define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */
180#define UMA_ALIGN_LONG (sizeof(long) - 1) /* "" long */
181#define UMA_ALIGN_INT (sizeof(int) - 1) /* "" int */
182#define UMA_ALIGN_SHORT (sizeof(short) - 1) /* "" short */
183#define UMA_ALIGN_CHAR (sizeof(char) - 1) /* "" char */
184#define UMA_ALIGN_CACHE (16 - 1) /* Cache line size align */
--- 119 unchanged lines hidden (view full) ---
304
305void uma_startup(void *bootmem);
306
307/*
308 * Finishes starting up the allocator. This should
309 * be called when kva is ready for normal allocs.
310 *
311 * Arguments:
312 * hash An area of memory that will become the malloc hash
313 * elems The number of elements in this array
314 *
315 * Returns:
316 * Nothing
317 *
318 * Discussion:
319 * uma_startup2 is called by kmeminit() to prepare the malloc
320 * hash bucket, and enable use of uma for malloc ops.
321 */
322
323void uma_startup2(void *hash, u_long elems);
324
325/*
326 * Reclaims unused memory for all zones
327 *
328 * Arguments:
329 * None
330 * Returns:
331 * None
--- 94 unchanged lines hidden ---
2 * Copyright (c) 2002, Jeffrey Roberson <jroberson@chesapeake.net>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
--- 9 unchanged lines hidden (view full) ---
18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $FreeBSD: head/sys/vm/uma.h 100326 2002-07-18 15:53:11Z markm $
27 *
28 */
29
30/*
31 * uma.h - External definitions for the Universal Memory Allocator
32 *
33 * Jeff Roberson <jroberson@chesapeake.net>
34*/
--- 133 unchanged lines hidden (view full) ---
168 physical memory XXX Not yet */
169#define UMA_ZONE_ZINIT 0x0002 /* Initialize with zeros */
170#define UMA_ZONE_STATIC 0x0004 /* Staticly sized zone */
171#define UMA_ZONE_OFFPAGE 0x0008 /* Force the slab structure allocation
172 off of the real memory */
173#define UMA_ZONE_MALLOC 0x0010 /* For use by malloc(9) only! */
174#define UMA_ZONE_NOFREE 0x0020 /* Do not free slabs of this type! */
175#define UMA_ZONE_MTXCLASS 0x0040 /* Create a new lock class */
176#define UMA_ZONE_VM 0x0080 /* Used for internal vm datastructures */
177
178/* Definitions for align */
179#define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */
180#define UMA_ALIGN_LONG (sizeof(long) - 1) /* "" long */
181#define UMA_ALIGN_INT (sizeof(int) - 1) /* "" int */
182#define UMA_ALIGN_SHORT (sizeof(short) - 1) /* "" short */
183#define UMA_ALIGN_CHAR (sizeof(char) - 1) /* "" char */
184#define UMA_ALIGN_CACHE (16 - 1) /* Cache line size align */
--- 119 unchanged lines hidden (view full) ---
304
305void uma_startup(void *bootmem);
306
307/*
308 * Finishes starting up the allocator. This should
309 * be called when kva is ready for normal allocs.
310 *
311 * Arguments:
312 * hash An area of memory that will become the malloc hash
313 * elems The number of elements in this array
314 *
315 * Returns:
316 * Nothing
317 *
318 * Discussion:
319 * uma_startup2 is called by kmeminit() to prepare the malloc
320 * hash bucket, and enable use of uma for malloc ops.
321 */
322
323void uma_startup2(void *hash, u_long elems);
324
325/*
326 * Reclaims unused memory for all zones
327 *
328 * Arguments:
329 * None
330 * Returns:
331 * None
--- 94 unchanged lines hidden ---