summaryrefslogtreecommitdiffhomepage
path: root/src/ldso
diff options
context:
space:
mode:
Diffstat (limited to 'src/ldso')
-rw-r--r--src/ldso/pe_load_framework_loader.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/ldso/pe_load_framework_loader.c b/src/ldso/pe_load_framework_loader.c
index 3e3e903..e70c183 100644
--- a/src/ldso/pe_load_framework_loader.c
+++ b/src/ldso/pe_load_framework_loader.c
@@ -114,12 +114,12 @@ static int32_t pe_get_device_dos_drive_letter(
}
-int32_t pe_load_framework_loader(
- void ** baseaddr,
- struct pe_framework_runtime_data * rtdata,
- uintptr_t * buffer,
- uint32_t bufsize,
- uint32_t * flags)
+static int32_t pe_load_library_impl(
+ void ** baseaddr,
+ void * hdsolib,
+ uintptr_t * buffer,
+ uint32_t bufsize,
+ uint32_t * flags)
{
int32_t status;
struct pe_unicode_str path;
@@ -152,7 +152,7 @@ int32_t pe_load_framework_loader(
/* loader native path */
if ((status = zw_query_object(
- rtdata->hloader,
+ hdsolib,
OS_OBJECT_NAME_INFORMATION,
buffer,bufsize,&len)))
return status;
@@ -244,3 +244,18 @@ int32_t pe_load_framework_loader(
ldrdir,flags,
&path,baseaddr);
}
+
+
+int32_t pe_load_framework_loader(
+ void ** baseaddr,
+ struct pe_framework_runtime_data * rtdata,
+ uintptr_t * buffer,
+ uint32_t bufsize,
+ uint32_t * sysflags)
+{
+ return pe_load_library_impl(
+ baseaddr,
+ rtdata->hloader,
+ buffer,bufsize,
+ sysflags);
+}