Deleted Added
full compact
zalloc.c (223854) zalloc.c (223905)
1/*
2 * This module derived from code donated to the FreeBSD Project by
3 * Matthew Dillon <dillon@backplane.com>
4 *
5 * Copyright (c) 1998 The FreeBSD Project
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 14 unchanged lines hidden (view full) ---

23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#include <sys/cdefs.h>
1/*
2 * This module derived from code donated to the FreeBSD Project by
3 * Matthew Dillon <dillon@backplane.com>
4 *
5 * Copyright (c) 1998 The FreeBSD Project
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 14 unchanged lines hidden (view full) ---

23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#include <sys/cdefs.h>
31__FBSDID("$FreeBSD: head/lib/libstand/zalloc.c 223854 2011-07-08 01:35:33Z avatar $");
31__FBSDID("$FreeBSD: head/lib/libstand/zalloc.c 223905 2011-07-10 07:25:34Z avatar $");
32
33/*
34 * LIB/MEMORY/ZALLOC.C - self contained low-overhead memory pool/allocation
35 * subsystem
36 *
37 * This subsystem implements memory pools and memory allocation
38 * routines.
39 *

--- 32 unchanged lines hidden (view full) ---

72
73/*
74 * znalloc() - allocate memory (without zeroing) from pool. Call reclaim
75 * and retry if appropriate, return NULL if unable to allocate
76 * memory.
77 */
78
79void *
32
33/*
34 * LIB/MEMORY/ZALLOC.C - self contained low-overhead memory pool/allocation
35 * subsystem
36 *
37 * This subsystem implements memory pools and memory allocation
38 * routines.
39 *

--- 32 unchanged lines hidden (view full) ---

72
73/*
74 * znalloc() - allocate memory (without zeroing) from pool. Call reclaim
75 * and retry if appropriate, return NULL if unable to allocate
76 * memory.
77 */
78
79void *
80znalloc(MemPool *mp, iaddr_t bytes)
80znalloc(MemPool *mp, uintptr_t bytes)
81{
82 /*
83 * align according to pool object size (can be 0). This is
84 * inclusive of the MEMNODE_SIZE_MASK minimum alignment.
85 *
86 */
87 bytes = (bytes + MEMNODE_SIZE_MASK) & ~MEMNODE_SIZE_MASK;
88

--- 42 unchanged lines hidden (view full) ---

131 return(NULL);
132}
133
134/*
135 * zfree() - free previously allocated memory
136 */
137
138void
81{
82 /*
83 * align according to pool object size (can be 0). This is
84 * inclusive of the MEMNODE_SIZE_MASK minimum alignment.
85 *
86 */
87 bytes = (bytes + MEMNODE_SIZE_MASK) & ~MEMNODE_SIZE_MASK;
88

--- 42 unchanged lines hidden (view full) ---

131 return(NULL);
132}
133
134/*
135 * zfree() - free previously allocated memory
136 */
137
138void
139zfree(MemPool *mp, void *ptr, iaddr_t bytes)
139zfree(MemPool *mp, void *ptr, uintptr_t bytes)
140{
141 /*
142 * align according to pool object size (can be 0). This is
143 * inclusive of the MEMNODE_SIZE_MASK minimum alignment.
144 */
145 bytes = (bytes + MEMNODE_SIZE_MASK) & ~MEMNODE_SIZE_MASK;
146
147 if (bytes == 0)
148 return;
149
150 /*
151 * panic if illegal pointer
152 */
153
154 if ((char *)ptr < (char *)mp->mp_Base ||
155 (char *)ptr + bytes > (char *)mp->mp_End ||
140{
141 /*
142 * align according to pool object size (can be 0). This is
143 * inclusive of the MEMNODE_SIZE_MASK minimum alignment.
144 */
145 bytes = (bytes + MEMNODE_SIZE_MASK) & ~MEMNODE_SIZE_MASK;
146
147 if (bytes == 0)
148 return;
149
150 /*
151 * panic if illegal pointer
152 */
153
154 if ((char *)ptr < (char *)mp->mp_Base ||
155 (char *)ptr + bytes > (char *)mp->mp_End ||
156 ((iaddr_t)ptr & MEMNODE_SIZE_MASK) != 0)
156 ((uintptr_t)ptr & MEMNODE_SIZE_MASK) != 0)
157 panic("zfree(%p,%ju): wild pointer", ptr, (uintmax_t)bytes);
158
159 /*
160 * free the segment
161 */
162
163 {
164 MemNode **pmn;

--- 75 unchanged lines hidden (view full) ---

240 * must free it to make it available to the memory subsystem.
241 *
242 * Note: mp_Size may not reflect (mp_End - mp_Base) range
243 * due to other parts of the system doing their own sbrk()
244 * calls.
245 */
246
247void
157 panic("zfree(%p,%ju): wild pointer", ptr, (uintmax_t)bytes);
158
159 /*
160 * free the segment
161 */
162
163 {
164 MemNode **pmn;

--- 75 unchanged lines hidden (view full) ---

240 * must free it to make it available to the memory subsystem.
241 *
242 * Note: mp_Size may not reflect (mp_End - mp_Base) range
243 * due to other parts of the system doing their own sbrk()
244 * calls.
245 */
246
247void
248zextendPool(MemPool *mp, void *base, iaddr_t bytes)
248zextendPool(MemPool *mp, void *base, uintptr_t bytes)
249{
250 if (mp->mp_Size == 0) {
251 mp->mp_Base = base;
252 mp->mp_Used = bytes;
253 mp->mp_End = (char *)base + bytes;
254 mp->mp_Size = bytes;
255 } else {
256 void *pend = (char *)mp->mp_Base + mp->mp_Size;

--- 51 unchanged lines hidden ---
249{
250 if (mp->mp_Size == 0) {
251 mp->mp_Base = base;
252 mp->mp_Used = bytes;
253 mp->mp_End = (char *)base + bytes;
254 mp->mp_Size = bytes;
255 } else {
256 void *pend = (char *)mp->mp_Base + mp->mp_Size;

--- 51 unchanged lines hidden ---