1/*- 2 * Copyright (c) 2002-2005, 2009 Jeffrey Roberson <jeff@FreeBSD.org> 3 * Copyright (c) 2004, 2005 Bosko Milekic <bmilekic@FreeBSD.org> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/vm/uma_int.h 242152 2012-10-26 17:51:05Z mdf $ |
28 * 29 */ 30 31/* 32 * This file includes definitions, structures, prototypes, and inlines that 33 * should not be used outside of the actual implementation of UMA. 34 */ 35 --- 161 unchanged lines hidden (view full) --- 197 * 198 */ 199struct uma_keg { 200 LIST_ENTRY(uma_keg) uk_link; /* List of all kegs */ 201 202 struct mtx uk_lock; /* Lock for the keg */ 203 struct uma_hash uk_hash; 204 |
205 const char *uk_name; /* Name of creating zone. */ |
206 LIST_HEAD(,uma_zone) uk_zones; /* Keg's zones */ 207 LIST_HEAD(,uma_slab) uk_part_slab; /* partially allocated slabs */ 208 LIST_HEAD(,uma_slab) uk_free_slab; /* empty slab list */ 209 LIST_HEAD(,uma_slab) uk_full_slab; /* full slabs */ 210 211 u_int32_t uk_recurse; /* Allocation recursion count */ 212 u_int32_t uk_align; /* Alignment mask */ 213 u_int32_t uk_pages; /* Total page count */ --- 86 unchanged lines hidden (view full) --- 300 301/* 302 * Zone management structure 303 * 304 * TODO: Optimize for cache line size 305 * 306 */ 307struct uma_zone { |
308 const char *uz_name; /* Text name of the zone */ |
309 struct mtx *uz_lock; /* Lock for the zone (keg's lock) */ 310 311 LIST_ENTRY(uma_zone) uz_link; /* List of all zones in keg */ 312 LIST_HEAD(,uma_bucket) uz_full_bucket; /* full buckets */ 313 LIST_HEAD(,uma_bucket) uz_free_bucket; /* Buckets for frees */ 314 315 LIST_HEAD(,uma_klink) uz_kegs; /* List of kegs. */ 316 struct uma_klink uz_klink; /* klink for first keg. */ --- 135 unchanged lines hidden --- |