110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file op_abi.h 310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * This file contains a simple C interface to the ABI-describing functionality, 410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * the majority of which is implemented in C++. this is the file which is 510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * intended for use in files outside the /libabi directory. 610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002 OProfile authors 810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING 910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Graydon Hoare 1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Philippe Elie 1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef OP_ABI_H 1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define OP_ABI_H 1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct op_abi_entry { 1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * name; 1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project /// offset or size of the named entry 2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int offset; 2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project}; 2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifdef __cplusplus 2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern "C" { 2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/// return array is terminated by a NULL entry in name field 2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct op_abi_entry const * get_abi(void); 2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/// return non zero if the abi is little endian 3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectint op_little_endian(void); 3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Write current abi to file. 3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * return 1 on success, 0 on failure 3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectint op_write_abi_to_file(char const * abi_file); 3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifdef __cplusplus 4010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project} 4110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 4210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 4310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif // OP_ABI_H 44