2 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
4 Ben Kibbey <bjk@luxsci.net>
6 This file is part of pwmd.
8 Pwmd is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 2 of the License, or
11 (at your option) any later version.
13 Pwmd is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with Pwmd. If not, see <http://www.gnu.org/licenses/>.
34 xrealloc_gpgrt (void *p
, size_t n
)
45 return xrealloc (p
, n
);
53 } __attribute ((packed
));
64 m
= (struct memchunk_s
*)((char *)ptr
-(offsetof (struct memchunk_s
, data
)));
65 p
= (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));
66 wipememory (p
, 0, m
->size
);
78 m
= malloc (sizeof (struct memchunk_s
)+size
);
83 return (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));
87 xcalloc (size_t nmemb
, size_t size
)
92 m
= malloc (sizeof (struct memchunk_s
)+(nmemb
*size
));
97 p
= (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));
98 memset (p
, 0, m
->size
);
103 xrealloc (void *ptr
, size_t size
)
106 struct memchunk_s
*m
, *mp
;
111 m
= (struct memchunk_s
*)((char *)ptr
-(offsetof (struct memchunk_s
, data
)));
112 p
= (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));
113 wipememory (p
, 0, m
->size
);
118 return xmalloc (size
);
120 m
= malloc (sizeof (struct memchunk_s
)+size
);
125 np
= (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));
127 mp
= (struct memchunk_s
*)((char *)ptr
-(offsetof (struct memchunk_s
, data
)));
128 p
= (void *)((char *)mp
+(offsetof (struct memchunk_s
, data
)));
130 n
= size
> mp
->size
? mp
->size
: size
;
132 wipememory (p
, 0, mp
->size
);
135 return (void *)((char *)m
+(offsetof (struct memchunk_s
, data
)));