source: trunk/packages/xen-3.1/xen-3.1/extras/mini-os/include/xmalloc.h @ 34

Last change on this file since 34 was 34, checked in by hartmans, 17 years ago

Add xen and xen-common

File size: 746 bytes
Line 
1#ifndef __XMALLOC_H__
2#define __XMALLOC_H__
3
4/* Allocate space for typed object. */
5#define xmalloc(_type) ((_type *)_xmalloc(sizeof(_type), __alignof__(_type)))
6
7/* Allocate space for array of typed objects. */
8#define xmalloc_array(_type, _num) ((_type *)_xmalloc_array(sizeof(_type), __alignof__(_type), _num))
9
10#define malloc(size) _xmalloc(size, 4)
11#define free(ptr) xfree(ptr)
12
13/* Free any of the above. */
14extern void xfree(const void *);
15
16/* Underlying functions */
17extern void *_xmalloc(size_t size, size_t align);
18static inline void *_xmalloc_array(size_t size, size_t align, size_t num)
19{
20        /* Check for overflow. */
21        if (size && num > UINT_MAX / size)
22                return NULL;
23        return _xmalloc(size * num, align);
24}
25
26#endif /* __XMALLOC_H__ */
Note: See TracBrowser for help on using the repository browser.