op_libiberty.c revision 7984f7ab3e13cda0c3b04ffeb2608f232e57f93a
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file op_libiberty.c 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Wrapper for libiberty - always use this instead of 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * libiberty.h 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @remark Copyright 2002 OProfile authors 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @remark Read the file COPYING 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @author John Levon 101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) * @author Philippe Elie 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) */ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string.h> 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "op_libiberty.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef HAVE_XCALLOC 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* some system have a valid libiberty without xcalloc */ 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void * xcalloc(size_t n_elem, size_t sz) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void * ptr = xmalloc(n_elem * sz); 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) memset(ptr, '\0', n_elem * sz); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ptr; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 27424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#endif 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef HAVE_XMEMDUP 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void * xmemdup (void const * input, size_t copy_size, size_t alloc_size) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void * output = xcalloc(1, alloc_size); 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) memcpy(output, input, copy_size); 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return output; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)