diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-04-09 17:49:25 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-04-09 17:49:25 +0100 |
commit | 1386e66a6eb0203009528069869591152b882702 (patch) | |
tree | 900ce82cd0db0a3d6ab3f6db5f7bcc2108512d87 /tools/libxc/xg_private.c | |
parent | 3cb6817ad5b7dd6a7a5702d64c8c74184591df05 (diff) | |
download | xen-1386e66a6eb0203009528069869591152b882702.tar.gz xen-1386e66a6eb0203009528069869591152b882702.tar.bz2 xen-1386e66a6eb0203009528069869591152b882702.zip |
libxc: Move xg_memalign() into a proper source file, so that it
definitely does not leak out of tools/libxc. Return to the
ioemu/osdep.c way of checking for posix_memalign() as this works on
Solaris.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'tools/libxc/xg_private.c')
-rw-r--r-- | tools/libxc/xg_private.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c index 37bc587477..02c0ff70a6 100644 --- a/tools/libxc/xg_private.c +++ b/tools/libxc/xg_private.c @@ -8,6 +8,8 @@ #include <unistd.h> #include <zlib.h> #include <strings.h> +#include <stdlib.h> +#include <malloc.h> #include "xg_private.h" @@ -198,6 +200,22 @@ __attribute__((weak)) return -1; } +void *xg_memalign(size_t alignment, size_t size) +{ +#if defined(_POSIX_C_SOURCE) && !defined(__sun__) + int ret; + void *ptr; + ret = posix_memalign(&ptr, alignment, size); + if (ret != 0) + return NULL; + return ptr; +#elif defined(_BSD) + return valloc(size); +#else + return memalign(alignment, size); +#endif +} + /* * Local variables: * mode: C |