summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-04-26 19:50:04 -0400
committermidipix <writeonce@midipix.org>2015-04-26 19:50:04 -0400
commit5c78a73341a7d84c72c1ed775b88cd7d7cc4c66e (patch)
tree1a447eea2ae145a0e7e75207d37cf9ebdb995b37
parent963057fbdbca88cc0438621b38471a32bfdde982 (diff)
downloadscrap-5c78a73341a7d84c72c1ed775b88cd7d7cc4c66e.tar.bz2
scrap-5c78a73341a7d84c72c1ed775b88cd7d7cc4c66e.tar.xz
complete draft of api needed for high-priority functionality.
-rw-r--r--perk/perk.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/perk/perk.h b/perk/perk.h
index 7b7a5f7..28bee77 100644
--- a/perk/perk.h
+++ b/perk/perk.h
@@ -27,28 +27,41 @@ struct pe_raw_image {
};
struct pe_image_meta {
- struct pe_image_dos_hdr * ados;
- struct pe_coff_file_hdr * acoff;
- union pe_opt_hdr * aopt;
+ struct pe_raw_image image;
struct pe_meta_image_dos_hdr dos;
struct pe_meta_coff_file_hdr coff;
struct pe_meta_opt_hdr opt;
+ struct pe_meta_sec_hdr * sectbl;
+
+ struct pe_image_dos_hdr * ados;
+ struct pe_coff_file_hdr * acoff;
+ union pe_opt_hdr * aopt;
+ struct pe_sec_hdr * asectbl;
+
+ struct pe_meta_export_hdr edata;
+ struct pe_export_hdr * aedata;
+ struct pe_meta_sec_hdr * hedata;
};
+/* utility api */
+int perk_main (int argc, char * argv[], char * envp[]);
+
/* high-level api */
-int pe_map_raw_image (int fd, char * fname, struct pe_raw_image *);
+int pe_map_raw_image (int fd, char * fname, struct pe_raw_image *);
int pe_unmap_raw_image (struct pe_raw_image *);
-int pe_get_image_meta (char * image, struct pe_image_meta ** meta);
+int pe_get_image_meta (struct pe_raw_image * image, struct pe_image_meta ** meta);
int pe_free_image_meta (struct pe_image_meta * meta);
-/* low-level api */
-int pe_read_dos_header (struct pe_image_dos_hdr * p, struct pe_meta_image_dos_hdr * m);
-int pe_read_coff_header (struct pe_coff_file_hdr * p, struct pe_meta_coff_file_hdr * m);
-int pe_read_optional_header (union pe_opt_hdr * p, struct pe_meta_opt_hdr * m);
+int pe_get_named_section_index (struct pe_image_meta * meta, char * name);
+int pe_output_export_symbols (struct pe_image_meta * meta, FILE * stream);
-int perk_main(int argc, char * argv[], char * envp[]);
+/* low-level api */
+int pe_read_dos_header (struct pe_image_dos_hdr * p, struct pe_meta_image_dos_hdr * m);
+int pe_read_coff_header (struct pe_coff_file_hdr * p, struct pe_meta_coff_file_hdr * m);
+int pe_read_optional_header (union pe_opt_hdr * p, struct pe_meta_opt_hdr * m);
+int pe_read_section_header (struct pe_sec_hdr * p, struct pe_meta_sec_hdr * m);
+int pe_read_export_header (struct pe_export_hdr * p, struct pe_meta_export_hdr * m);
#endif
-