rizin/libr/bin/format/mz/mz.h
Oleksii Kuchma 0c57a435fc Rewrite MZ bin plugin
* Add const modifiers, fix function call style
* Add checking and using dos_file_size
* Fix number of arguments in load_bytes.
* Add check for NE, LE and LX executables.
* Fix function declaration for btree_traverse.
2015-06-08 22:18:21 +02:00

39 lines
989 B
C

/* radare - LGPL - Copyright 2015 nodepad */
#include <r_types.h>
#include <r_list.h>
#include <r_util.h>
#include <r_bin.h>
#include "mz_specs.h"
struct r_bin_mz_segment_t {
ut64 paddr;
ut64 size;
int last;
};
struct r_bin_mz_reloc_t {
ut64 paddr;
int last;
};
struct r_bin_mz_obj_t {
const MZ_image_dos_header *dos_header;
const void *dos_extended_header;
const MZ_image_relocation_entry *relocation_entries;
int dos_extended_header_size;
int size;
int dos_file_size; /* Size of dos file from dos executable header */
const char *file;
struct r_buf_t *b;
Sdb *kv;
};
int r_bin_mz_get_entrypoint(const struct r_bin_mz_obj_t *bin);
struct r_bin_mz_segment_t *r_bin_mz_get_segments(const struct r_bin_mz_obj_t *bin);
struct r_bin_mz_reloc_t *r_bin_mz_get_relocs(const struct r_bin_mz_obj_t *bin);
void *r_bin_mz_free(struct r_bin_mz_obj_t* bin);
struct r_bin_mz_obj_t* r_bin_mz_new(const char* file);
struct r_bin_mz_obj_t* r_bin_mz_new_buf(const struct r_buf_t *buf);