|
|
234f06 |
#ifndef _PELDSO_H_
|
|
|
234f06 |
#define _PELDSO_H_
|
|
|
234f06 |
|
|
|
234f06 |
/* ldso flags (pemagine)*/
|
|
|
234f06 |
#define PE_LDSO_INTEGRAL_ONLY 0x00000000
|
|
|
234f06 |
#define PE_LDSO_DEFAULT_EXECUTABLE 0x00000001
|
|
|
234f06 |
#define PE_LDSO_STANDALONE_EXECUTABLE 0x00000002
|
|
|
234f06 |
|
|
|
234f06 |
/* error status (ntapi) */
|
|
|
234f06 |
#define NT_STATUS_NOINTERFACE 0xC00002B9
|
|
|
234f06 |
|
|
|
234f06 |
/* rtdata guid (ntapi) */
|
|
|
234f06 |
#define NT_PROCESS_GUID_RTDATA {0x3e43ec84,0x1af1,0x4ede,{0xac,0xd8,0xc3,0xd9,0x20,0xaf,0xc8,0x68}}
|
|
|
234f06 |
|
|
|
234f06 |
/* abi guid */
|
|
|
234f06 |
struct __guid {
|
|
|
234f06 |
unsigned int data1;
|
|
|
234f06 |
unsigned short data2;
|
|
|
234f06 |
unsigned short data3;
|
|
|
234f06 |
unsigned char data4[8];
|
|
|
234f06 |
};
|
|
|
234f06 |
|
|
|
234f06 |
/* loader interfaces, statically linked (libldso.a) */
|
|
|
234f06 |
__attribute__((__visibility__("hidden"))) int __ldso_terminate_current_process(
|
|
|
234f06 |
int estatus);
|
|
|
234f06 |
|
|
|
234f06 |
__attribute__((__visibility__("hidden"))) void * __ldso_get_procedure_address(
|
|
|
234f06 |
const void * base,
|
|
|
234f06 |
const char * name);
|
|
|
234f06 |
|
|
|
234f06 |
__attribute__((__visibility__("hidden"))) int __ldso_load_framework_loader_ex(
|
|
|
234f06 |
void ** baseaddr,
|
|
|
234f06 |
void ** hroot,
|
|
|
234f06 |
void ** hdsodir,
|
|
|
234f06 |
const struct __guid * abi,
|
|
|
234f06 |
const unsigned short * basename,
|
|
|
234f06 |
const unsigned short * rrelname,
|
|
|
234f06 |
void * refaddr,
|
|
|
234f06 |
unsigned long * buffer,
|
|
|
234f06 |
unsigned int bufsize,
|
|
|
234f06 |
unsigned int flags,
|
|
|
234f06 |
unsigned int * sysflags);
|
|
|
234f06 |
|
|
|
234f06 |
__attribute__((__visibility__("hidden"))) int __ldso_load_framework_library(
|
|
|
234f06 |
void ** baseaddr,
|
|
|
234f06 |
void * hat,
|
|
|
234f06 |
const unsigned short * atrelname,
|
|
|
234f06 |
unsigned long * buffer,
|
|
|
234f06 |
unsigned int bufsize,
|
|
|
234f06 |
unsigned int * sysflags);
|
|
|
234f06 |
|
|
|
234f06 |
#endif
|