zalloc_defs.h (223904) | zalloc_defs.h (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 --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 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 * | 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 --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 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 * $FreeBSD: head/lib/libstand/zalloc_defs.h 223904 2011-07-10 07:14:32Z kevlo $ | 29 * $FreeBSD: head/lib/libstand/zalloc_defs.h 223905 2011-07-10 07:25:34Z avatar $ |
30 */ 31 32/* 33 * DEFS.H 34 */ 35 36#define USEGUARD /* use stard/end guard bytes */ 37#define USEENDGUARD 38#define DMALLOCDEBUG /* add debugging code to gather stats */ 39#define ZALLOCDEBUG 40 41#include <sys/stdint.h> | 30 */ 31 32/* 33 * DEFS.H 34 */ 35 36#define USEGUARD /* use stard/end guard bytes */ 37#define USEENDGUARD 38#define DMALLOCDEBUG /* add debugging code to gather stats */ 39#define ZALLOCDEBUG 40 41#include <sys/stdint.h> |
42#include <string.h> | |
43#include "stand.h" | 42#include "stand.h" |
44 45typedef uintptr_t iaddr_t; /* unsigned int same size as pointer */ 46typedef intptr_t saddr_t; /* signed int same size as pointer */ | |
47#include "zalloc_mem.h" 48 | 43#include "zalloc_mem.h" 44 |
49#define Prototype extern | |
50#define Library extern 51 | 45#define Library extern 46 |
52#ifndef NULL 53#define NULL ((void *)0) 54#endif 55 | |
56/* 57 * block extension for sbrk() 58 */ 59 60#define BLKEXTEND (4 * 1024) 61#define BLKEXTENDMASK (BLKEXTEND - 1) 62 63/* | 47/* 48 * block extension for sbrk() 49 */ 50 51#define BLKEXTEND (4 * 1024) 52#define BLKEXTENDMASK (BLKEXTEND - 1) 53 54/* |
64 * required malloc alignment. Use sizeof(long double) for architecture 65 * independance. | 55 * required malloc alignment. Just hardwire to 16. |
66 * 67 * Note: if we implement a more sophisticated realloc, we should ensure that 68 * MALLOCALIGN is at least as large as MemNode. 69 */ 70 71typedef struct Guard { 72 size_t ga_Bytes; 73 size_t ga_Magic; /* must be at least 32 bits */ 74} Guard; 75 | 56 * 57 * Note: if we implement a more sophisticated realloc, we should ensure that 58 * MALLOCALIGN is at least as large as MemNode. 59 */ 60 61typedef struct Guard { 62 size_t ga_Bytes; 63 size_t ga_Magic; /* must be at least 32 bits */ 64} Guard; 65 |
76#define MATYPE long double 77#define MALLOCALIGN ((sizeof(MATYPE) > sizeof(Guard)) ? sizeof(MATYPE) : sizeof(Guard)) | 66#define MALLOCALIGN 16 |
78#define GAMAGIC 0x55FF44FD 79#define GAFREE 0x5F54F4DF 80 81#include "zalloc_protos.h" | 67#define GAMAGIC 0x55FF44FD 68#define GAFREE 0x5F54F4DF 69 70#include "zalloc_protos.h" |
82 | |