diff options
Diffstat (limited to 'utils/mcpu-object-edit.h')
| -rw-r--r-- | utils/mcpu-object-edit.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/utils/mcpu-object-edit.h b/utils/mcpu-object-edit.h new file mode 100644 index 0000000..2e04d98 --- /dev/null +++ b/utils/mcpu-object-edit.h @@ -0,0 +1,49 @@ +#ifndef _MCPU_OBJECT_EDIT_H_ +#define _MCPU_OBJECT_EDIT_H_ 1 + +#include <stddef.h> + + +typedef enum mcpu_object_edit_action_type +{ + MCPU_OBJECT_EDIT_REMOVE = 1, + MCPU_OBJECT_EDIT_RENAME, + MCPU_OBJECT_EDIT_UPDATE, + MCPU_OBJECT_EDIT_ADD +} mcpu_object_edit_action_type; + + +typedef struct mcpu_object_edit_action +{ + mcpu_object_edit_action_type type; + const char *name; + const char *new_name; + const unsigned char *data; + size_t size; +} mcpu_object_edit_action; + + +typedef struct mcpu_object_edit_options +{ + const char *const *only_sections; + size_t only_count; + const mcpu_object_edit_action *actions; + size_t action_count; +} mcpu_object_edit_options; + + +int mcpu_object_strip_data( const unsigned char *data, size_t size, + unsigned char **out, size_t *out_size, + int *changed, char *err, size_t errsz ); + +int mcpu_object_edit_data( const unsigned char *data, size_t size, + const mcpu_object_edit_options *options, + unsigned char **out, size_t *out_size, + int *changed, char *err, size_t errsz ); + +int mcpu_object_dump_section( const unsigned char *data, size_t size, + const char *name, + unsigned char **out, size_t *out_size, + char *err, size_t errsz ); + +#endif |
