op_libiberty.c revision 10e23eebca4175a8dfe3a788b2bebacb1fcfce54
1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/**
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @file op_libiberty.c
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Wrapper for libiberty - always use this instead of
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * libiberty.h
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @remark Copyright 2002 OProfile authors
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @remark Read the file COPYING
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @author John Levon
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @author Philippe Elie
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string.h>
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "op_libiberty.h"
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef HAVE_XCALLOC
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* some system have a valid libiberty without xcalloc */
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void * xcalloc(size_t n_elem, size_t sz)
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	void * ptr = xmalloc(n_elem * sz);
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	memset(ptr, '\0', n_elem * sz);
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	return ptr;
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef HAVE_XMEMDUP
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void * xmemdup (void const * input, size_t copy_size, size_t alloc_size)
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	void * output = xcalloc(1, alloc_size);
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	memcpy(output, input, copy_size);
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)	return output;
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)