00001 00011 #ifndef OPDIS_TYPES_H 00012 #define OPDIS_TYPES_H 00013 00014 #include <bfd.h> 00015 #include <stdio.h> 00016 #include <stdint.h> 00017 #include <sys/types.h> 00018 00019 #ifdef WIN32 00020 #define LIBCALL _stdcall 00021 #else 00022 #define LIBCALL 00023 #endif 00024 00029 typedef bfd_byte opdis_byte_t; 00030 00034 typedef size_t opdis_off_t; 00035 00041 #define OPDIS_INVALID_OFFSET ((opdis_off_t) -1 ) 00042 00047 typedef bfd_vma opdis_vma_t; 00048 00054 #define OPDIS_INVALID_ADDR ((opdis_vma_t) -1 ) 00055 00060 typedef struct { 00061 opdis_off_t len; 00062 opdis_vma_t vma; 00063 opdis_byte_t * data; 00064 } opdis_buffer_t; 00065 00070 typedef opdis_buffer_t * opdis_buf_t; 00071 00072 /* ---------------------------------------------------------------------- */ 00073 00074 #ifdef __cplusplus 00075 extern "C" 00076 { 00077 #endif 00078 00091 opdis_buf_t LIBCALL opdis_buf_alloc( opdis_off_t size, opdis_vma_t addr ); 00092 00101 void LIBCALL opdis_buf_set_vma( opdis_buf_t buf, opdis_vma_t addr ); 00102 00103 00120 opdis_buf_t LIBCALL opdis_buf_read( FILE * f, opdis_off_t size, 00121 opdis_vma_t addr ); 00122 00133 int LIBCALL opdis_buf_fill( opdis_buf_t buf, opdis_off_t offset, 00134 void * src, opdis_off_t len ); 00135 00143 void LIBCALL opdis_buf_free( opdis_buf_t buf ); 00144 00145 #ifdef __cplusplus 00146 } 00147 #endif 00148 00149 #endif