X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/55e303ae13a4cf49d70f2294092726f2fffb9ef2..8f6c56a50524aa785f7e596d52dddfb331e18961:/libsa/malloc.c?ds=sidebyside diff --git a/libsa/malloc.c b/libsa/malloc.c index 00a94e54e..7c897e6cb 100644 --- a/libsa/malloc.c +++ b/libsa/malloc.c @@ -1,16 +1,19 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ - * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER @@ -20,14 +23,18 @@ * Please see the License for the specific language governing rights and * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ #include +#include + +#include #include #include #include #include + #include #include "libsa/malloc.h" @@ -44,8 +51,8 @@ typedef struct malloc_block { struct malloc_block *malFwd; struct malloc_block *malBwd; + void *malActl; unsigned int malSize; - unsigned int malActl; } malloc_block; static malloc_block malAnchor = {&malAnchor, &malAnchor, 0, 0}; @@ -71,7 +78,7 @@ void * malloc(size_t size) { rmem = (nmem + 15) & -16; /* Round to 16 byte boundary */ amem = (malloc_block *)rmem; /* Point to the block */ - amem->malActl = (unsigned int)nmem; /* Set the actual address */ + amem->malActl = nmem; /* Set the actual address */ amem->malSize = nsize; /* Size */ mutex_lock(malloc_lock); @@ -126,7 +133,7 @@ void free(void * address) { __private_extern__ void malloc_init(void) { - malloc_lock = mutex_alloc(ETAP_IO_AHA); + malloc_lock = mutex_alloc(0); malInited = 1; } @@ -145,13 +152,13 @@ void malloc_reset(void) { mutex_lock(malloc_lock); - amem = malAnchor.malFwd; /* Get the first one */ + amem = malAnchor.malFwd; /* Get the first one */ - while(amem != &malAnchor) { /* Go until we hit the anchor */ + while(amem != &malAnchor) { /* Go until we hit the anchor */ - bmem = amem->malFwd; /* Next one */ - kfree(amem->malActl, amem->malSize); /* Toss it */ - amem = bmem; /* Skip to it */ + bmem = amem->malFwd; /* Next one */ + kfree(amem->malActl, amem->malSize); /* Toss it */ + amem = bmem; /* Skip to it */ }