110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file op_libiberty.c 310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Wrapper for libiberty - always use this instead of 410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * libiberty.h 510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002 OProfile authors 710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING 810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author John Levon 1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Philippe Elie 1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include <string.h> 1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include "op_libiberty.h" 1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef HAVE_XCALLOC 1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/* some system have a valid libiberty without xcalloc */ 1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectvoid * xcalloc(size_t n_elem, size_t sz) 2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project{ 2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project void * ptr = xmalloc(n_elem * sz); 2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project memset(ptr, '\0', n_elem * sz); 2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project return ptr; 2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project} 2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef HAVE_XMEMDUP 3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectvoid * xmemdup (void const * input, size_t copy_size, size_t alloc_size) 3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project{ 3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project void * output = xcalloc(1, alloc_size); 3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project memcpy(output, input, copy_size); 3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project return output; 3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project} 3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 39