summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2025-05-30 23:17:35 +0000
committermidipix <writeonce@midipix.org>2025-05-30 23:44:13 +0000
commit57ddbe03f41c4fc4686f92734b2aa3a56392815a (patch)
tree635f1f264223b7a19d70d22918cfc075b591074e /src
parentd2434891f37ef9592fa2e6b606d4a4411500d94b (diff)
downloadperk-57ddbe03f41c4fc4686f92734b2aa3a56392815a.tar.bz2
perk-57ddbe03f41c4fc4686f92734b2aa3a56392815a.tar.xz
library api: _meta_ (object and image meta data) namespace overhaul.
Diffstat (limited to 'src')
-rw-r--r--src/driver/pe_unit_ctx.c4
-rw-r--r--src/logic/pe_image_meta_data.c (renamed from src/logic/pe_get_image_meta.c)46
-rw-r--r--src/output/pe_output_mdso_libraries.c14
3 files changed, 32 insertions, 32 deletions
diff --git a/src/driver/pe_unit_ctx.c b/src/driver/pe_unit_ctx.c
index 48afa81..8a88884 100644
--- a/src/driver/pe_unit_ctx.c
+++ b/src/driver/pe_unit_ctx.c
@@ -17,7 +17,7 @@
static int pe_lib_free_unit_ctx_impl(struct pe_unit_ctx_impl * ctx, int ret)
{
if (ctx) {
- pe_free_image_meta(ctx->meta);
+ pe_meta_free_image_meta(ctx->meta);
pe_unmap_raw_image(&ctx->map);
free(ctx);
}
@@ -51,7 +51,7 @@ int pe_lib_get_unit_ctx(
return pe_lib_free_unit_ctx_impl(ctx,
PERK_NESTED_ERROR(dctx));
- if (pe_get_image_meta(dctx,&ctx->map,&ctx->meta))
+ if (pe_meta_get_image_meta(dctx,&ctx->map,&ctx->meta))
return pe_lib_free_unit_ctx_impl(ctx,
PERK_NESTED_ERROR(dctx));
diff --git a/src/logic/pe_get_image_meta.c b/src/logic/pe_image_meta_data.c
index daf6939..37d524f 100644
--- a/src/logic/pe_get_image_meta.c
+++ b/src/logic/pe_image_meta_data.c
@@ -34,12 +34,12 @@ static int pe_free_image_meta_impl(struct pe_image_meta * meta, int ret)
return ret;
}
-void pe_free_image_meta(struct pe_image_meta * meta)
+void pe_meta_free_image_meta(struct pe_image_meta * meta)
{
pe_free_image_meta_impl(meta,0);
}
-int pe_get_named_section_index(const struct pe_image_meta * m, const char * name)
+int pe_meta_get_named_section_index(const struct pe_image_meta * m, const char * name)
{
int i; for (i=0; i<m->m_coff.cfh_num_of_sections; i++)
if (!(strcmp(name,m->m_sectbl[i].sh_name)))
@@ -48,7 +48,7 @@ int pe_get_named_section_index(const struct pe_image_meta * m, const char * name
return -1;
}
-int pe_get_block_section_index(const struct pe_image_meta * m, const struct pe_block * block)
+int pe_meta_get_block_section_index(const struct pe_image_meta * m, const struct pe_block * block)
{
int i;
uint32_t low,high;
@@ -67,7 +67,7 @@ int pe_get_block_section_index(const struct pe_image_meta * m, const struct pe_b
return -1;
}
-int pe_get_roffset_from_rva(const struct pe_image_meta * m, uint32_t rva, uint32_t * roffset)
+int pe_meta_get_roffset_from_rva(const struct pe_image_meta * m, uint32_t rva, uint32_t * roffset)
{
int i;
uint32_t low,high;
@@ -85,7 +85,7 @@ int pe_get_roffset_from_rva(const struct pe_image_meta * m, uint32_t rva, uint32
return -1;
}
-int pe_get_rva_from_roffset(const struct pe_image_meta * m, uint32_t roffset, uint32_t * rva)
+int pe_meta_get_rva_from_roffset(const struct pe_image_meta * m, uint32_t roffset, uint32_t * rva)
{
int i;
uint32_t low,high,ref;
@@ -110,7 +110,7 @@ int pe_get_rva_from_roffset(const struct pe_image_meta * m, uint32_t roffset, ui
return -1;
}
-int pe_get_expsym_by_name(
+int pe_meta_get_expsym_by_name(
const struct pe_image_meta * m,
const char * name,
struct pe_expsym * expsym)
@@ -144,7 +144,7 @@ int pe_get_expsym_by_name(
return -1;
}
-int pe_get_expsym_by_index(
+int pe_meta_get_expsym_by_index(
const struct pe_image_meta * m,
unsigned index,
struct pe_expsym * expsym)
@@ -230,7 +230,7 @@ static void pe_detect_image_subtype(struct pe_image_meta * m)
static bool pe_image_is_psxscl(const struct pe_image_meta * m)
{
return (!m->m_stats.t_nimplibs
- && !pe_get_expsym_by_name(m,"__psx_init",0));
+ && !pe_meta_get_expsym_by_name(m,"__psx_init",0));
}
static bool pe_image_is_cygwin(const struct pe_image_meta * m)
@@ -257,22 +257,22 @@ static bool pe_image_is_msys(const struct pe_image_meta * m)
static bool pe_image_is_mingw(const struct pe_image_meta * m)
{
- return ((pe_get_named_section_index(m,".CRT") >= 0)
- && (pe_get_named_section_index(m,".bss") >= 0)
- && (pe_get_named_section_index(m,".tls") >= 0));
+ return ((pe_meta_get_named_section_index(m,".CRT") >= 0)
+ && (pe_meta_get_named_section_index(m,".bss") >= 0)
+ && (pe_meta_get_named_section_index(m,".tls") >= 0));
}
static void pe_detect_image_framework(struct pe_image_meta * m)
{
int framework;
- if (pe_get_named_section_index(m,".midipix") >= 0)
+ if (pe_meta_get_named_section_index(m,".midipix") >= 0)
framework = PE_FRAMEWORK_MIDIPIX;
- else if (pe_get_named_section_index(m,".freestd") >= 0)
+ else if (pe_meta_get_named_section_index(m,".freestd") >= 0)
framework = PE_FRAMEWORK_FREESTD;
- else if (pe_get_named_section_index(m,".cygheap") >= 0)
+ else if (pe_meta_get_named_section_index(m,".cygheap") >= 0)
framework = PE_FRAMEWORK_CYGONE;
else if (pe_image_is_psxscl(m))
@@ -302,7 +302,7 @@ static void pe_detect_image_framework(struct pe_image_meta * m)
m->m_framework = framework;
}
-int pe_get_image_meta(
+int pe_meta_get_image_meta(
const struct pe_driver_ctx * dctx,
const struct pe_raw_image * image,
struct pe_image_meta ** meta)
@@ -376,8 +376,8 @@ int pe_get_image_meta(
}
/* .edata */
- i = pe_get_named_section_index(m,".edata");
- s = pe_get_block_section_index(m,&m->m_opt.oh_dirs.coh_export_tbl);
+ i = pe_meta_get_named_section_index(m,".edata");
+ s = pe_meta_get_block_section_index(m,&m->m_opt.oh_dirs.coh_export_tbl);
if ((i >= 0) && (i != s))
return pe_free_image_meta_impl(
@@ -404,8 +404,8 @@ int pe_get_image_meta(
unsigned char * pitem;
size_t psize;
- i = pe_get_named_section_index(m,".idata");
- s = pe_get_block_section_index(m,&m->m_opt.oh_dirs.coh_import_tbl);
+ i = pe_meta_get_named_section_index(m,".idata");
+ s = pe_meta_get_block_section_index(m,&m->m_opt.oh_dirs.coh_import_tbl);
if ((i >= 0) && (i != s))
return pe_free_image_meta_impl(
@@ -501,7 +501,7 @@ int pe_get_image_meta(
}
/* .dsometa */
- if ((i = pe_get_named_section_index(m,MDSO_META_SECTION)) >= 0) {
+ if ((i = pe_meta_get_named_section_index(m,MDSO_META_SECTION)) >= 0) {
m->h_dsometa = &m->m_sectbl[i];
m->r_dsometa = base + m->m_sectbl[i].sh_ptr_to_raw_data;
@@ -511,7 +511,7 @@ int pe_get_image_meta(
}
/* .dsosyms */
- if ((i = pe_get_named_section_index(m,MDSO_SYMS_SECTION)) >= 0) {
+ if ((i = pe_meta_get_named_section_index(m,MDSO_SYMS_SECTION)) >= 0) {
m->h_dsosyms = &m->m_sectbl[i];
m->r_dsosyms = base + m->m_sectbl[i].sh_ptr_to_raw_data;
@@ -521,13 +521,13 @@ int pe_get_image_meta(
}
/* .dsostrs */
- if ((i = pe_get_named_section_index(m,MDSO_STRS_SECTION)) >= 0) {
+ if ((i = pe_meta_get_named_section_index(m,MDSO_STRS_SECTION)) >= 0) {
m->h_dsostrs = &m->m_sectbl[i];
m->r_dsostrs = base + m->m_sectbl[i].sh_ptr_to_raw_data;
}
/* .dsodata */
- if ((i = pe_get_named_section_index(m,MDSO_DATA_SECTION)) >= 0) {
+ if ((i = pe_meta_get_named_section_index(m,MDSO_DATA_SECTION)) >= 0) {
m->h_dsodata = &m->m_sectbl[i];
m->r_dsodata = base + m->m_sectbl[i].sh_ptr_to_raw_data;
}
diff --git a/src/output/pe_output_mdso_libraries.c b/src/output/pe_output_mdso_libraries.c
index c668564..049cd4e 100644
--- a/src/output/pe_output_mdso_libraries.c
+++ b/src/output/pe_output_mdso_libraries.c
@@ -92,7 +92,7 @@ static char * dsolib_name(const struct pe_image_meta * m, int i)
rva = va - m->m_opt.oh_mem.coh_image_base;
}
- if (pe_get_roffset_from_rva(m,(uint32_t)rva,&roffset) < 0)
+ if (pe_meta_get_roffset_from_rva(m,(uint32_t)rva,&roffset) < 0)
return 0;
return (addr = m->r_image.map_addr) + roffset;
@@ -117,14 +117,14 @@ static unsigned char * dsosym_meta(const struct pe_image_meta * m, int j)
rva = va;
}
- if ((idx = pe_get_named_section_index(m,MDSO_META_SECTION)) >= 0)
- if (idx != pe_get_block_section_index(m,&(struct pe_block){rva,0}))
+ if ((idx = pe_meta_get_named_section_index(m,MDSO_META_SECTION)) >= 0)
+ if (idx != pe_meta_get_block_section_index(m,&(struct pe_block){rva,0}))
return (unsigned char *)(-1);
if (va > rva)
return 0;
- if (pe_get_roffset_from_rva(m,rva,&roffset) < 0)
+ if (pe_meta_get_roffset_from_rva(m,rva,&roffset) < 0)
return 0;
return (unsigned char *)m->r_image.map_addr + roffset;
@@ -150,14 +150,14 @@ static char * dsosym_string(const struct pe_image_meta * m, int j)
rva = va;
}
- if ((idx = pe_get_named_section_index(m,MDSO_STRS_SECTION)) >= 0)
- if (idx != pe_get_block_section_index(m,&(struct pe_block){rva,0}))
+ if ((idx = pe_meta_get_named_section_index(m,MDSO_STRS_SECTION)) >= 0)
+ if (idx != pe_meta_get_block_section_index(m,&(struct pe_block){rva,0}))
return (char *)(-2);
if (va > rva)
return 0;
- if (pe_get_roffset_from_rva(m,rva,&roffset) < 0)
+ if (pe_meta_get_roffset_from_rva(m,rva,&roffset) < 0)
return 0;
return (addr = m->r_image.map_addr) + roffset;