summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-11-14 21:44:29 -0500
committermidipix <writeonce@midipix.org>2016-11-14 21:44:29 -0500
commitbf447fdc36b3ce0280960d28d736a41f89b5b854 (patch)
tree935a5e240477e3ce9c28c053c64cb9330977a4b3 /include
parent10fddce6a8cbdbb5181442b538d2ae8fcbf8376b (diff)
downloadperk-bf447fdc36b3ce0280960d28d736a41f89b5b854.tar.bz2
perk-bf447fdc36b3ce0280960d28d736a41f89b5b854.tar.xz
info api: pe_get_image_framework(): initial implementation.
Diffstat (limited to 'include')
-rw-r--r--include/perk/perk.h7
-rw-r--r--include/perk/perk_meta.h16
2 files changed, 23 insertions, 0 deletions
diff --git a/include/perk/perk.h b/include/perk/perk.h
index 8c6711e..02d3275 100644
--- a/include/perk/perk.h
+++ b/include/perk/perk.h
@@ -154,6 +154,10 @@ struct pe_unit_ctx {
void * any;
};
+struct pe_info_string {
+ char buffer[128];
+};
+
/* package info */
perk_api const struct pe_source_version * pe_source_version(void);
@@ -188,6 +192,9 @@ perk_api int pe_get_rva_from_roffset (const struct pe_image_meta *, uint32_t ro
perk_api int pe_get_expsym_by_name (const struct pe_image_meta *, const char * name, struct pe_expsym * optional);
perk_api int pe_get_expsym_by_index (const struct pe_image_meta *, unsigned index, struct pe_expsym * optional);
+/* info api */
+perk_api int pe_get_image_framework (const struct pe_image_meta *, struct pe_info_string * optional);
+
/* low-level api */
perk_api int pe_read_dos_header (const struct pe_image_dos_hdr *, struct pe_meta_image_dos_hdr *);
perk_api int pe_read_coff_header (const struct pe_coff_file_hdr *, struct pe_meta_coff_file_hdr *);
diff --git a/include/perk/perk_meta.h b/include/perk/perk_meta.h
index e3dfab7..fc8c268 100644
--- a/include/perk/perk_meta.h
+++ b/include/perk/perk_meta.h
@@ -7,6 +7,22 @@ extern "C" {
#include <stdint.h>
+enum pe_framework {
+ PE_FRAMEWORK_UNKNOWN,
+ PE_FRAMEWORK_FREESTD,
+ PE_FRAMEWORK_PSXSCL,
+ PE_FRAMEWORK_MIDIPIX,
+ PE_FRAMEWORK_CYGONE,
+ PE_FRAMEWORK_CYGWIN,
+ PE_FRAMEWORK_MINGW,
+ PE_FRAMEWORK_MSYS,
+ PE_FRAMEWORK_SUACON,
+ PE_FRAMEWORK_WINCON,
+ PE_FRAMEWORK_WINCLI,
+ PE_FRAMEWORK_WIN32,
+ PE_FRAMEWORK_CAP
+};
+
/* generic block info / image directory header */
struct pe_block {
uint32_t rva;