diff options
author | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-19 14:38:35 -0500 |
---|---|---|
committer | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-19 14:38:35 -0500 |
commit | 720f5023a8f68aaaa54cb6b7bf46efee23b5b4c3 (patch) | |
tree | 26a8d91183787418455f65c2bb44ed641800dad3 /binreloc.h | |
parent | 854292407779593a401a1d5ce71add51880fa84f (diff) |
Import Upstream version 0.4.1
Diffstat (limited to 'binreloc.h')
-rw-r--r-- | binreloc.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/binreloc.h b/binreloc.h new file mode 100644 index 00000000..3bf48bc6 --- /dev/null +++ b/binreloc.h @@ -0,0 +1,68 @@ +/* + * BinReloc - a library for creating relocatable executables + * Written by: Hongli Lai <h.lai@chello.nl> + * http://autopackage.org/ + * + * This source code is public domain. You can relicense this code + * under whatever license you want. + * + * See http://autopackage.org/docs/binreloc/ for + * more information and how to use this. + */ + +#ifndef __BINRELOC_H__ +#define __BINRELOC_H__ + +#include <glib.h> + +G_BEGIN_DECLS + + +/** These error codes can be returned by br_init(), br_init_lib(), gbr_init() or gbr_init_lib(). */ +typedef enum { + /** Cannot allocate memory. */ + GBR_INIT_ERROR_NOMEM, + /** Unable to open /proc/self/maps; see errno for details. */ + GBR_INIT_ERROR_OPEN_MAPS, + /** Unable to read from /proc/self/maps; see errno for details. */ + GBR_INIT_ERROR_READ_MAPS, + /** The file format of /proc/self/maps is invalid; kernel bug? */ + GBR_INIT_ERROR_INVALID_MAPS, + /** BinReloc is disabled (the ENABLE_BINRELOC macro is not defined). */ + GBR_INIT_ERROR_DISABLED +} GbrInitError; + + +#ifndef BINRELOC_RUNNING_DOXYGEN +/* Mangle symbol names to avoid symbol collisions with other ELF objects. */ + #define gbr_find_exe UfUy21856259474323_gbr_find_exe + #define gbr_find_exe_dir UfUy21856259474323_gbr_find_exe_dir + #define gbr_find_prefix UfUy21856259474323_gbr_find_prefix + #define gbr_find_bin_dir UfUy21856259474323_gbr_find_bin_dir + #define gbr_find_sbin_dir UfUy21856259474323_gbr_find_sbin_dir + #define gbr_find_data_dir UfUy21856259474323_gbr_find_data_dir + #define gbr_find_locale_dir UfUy21856259474323_gbr_find_locale_dir + #define gbr_find_lib_dir UfUy21856259474323_gbr_find_lib_dir + #define gbr_find_libexec_dir UfUy21856259474323_gbr_find_libexec_dir + #define gbr_find_etc_dir UfUy21856259474323_gbr_find_etc_dir + + +#endif +gboolean gbr_init (GError **error); +gboolean gbr_init_lib (GError **error); + +gchar *gbr_find_exe (const gchar *default_exe); +gchar *gbr_find_exe_dir (const gchar *default_dir); +gchar *gbr_find_prefix (const gchar *default_prefix); +gchar *gbr_find_bin_dir (const gchar *default_bin_dir); +gchar *gbr_find_sbin_dir (const gchar *default_sbin_dir); +gchar *gbr_find_data_dir (const gchar *default_data_dir); +gchar *gbr_find_locale_dir (const gchar *default_locale_dir); +gchar *gbr_find_lib_dir (const gchar *default_lib_dir); +gchar *gbr_find_libexec_dir (const gchar *default_libexec_dir); +gchar *gbr_find_etc_dir (const gchar *default_etc_dir); + + +G_END_DECLS + +#endif /* __BINRELOC_H__ */ |