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)