diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/nt32/peldso.h | 52 | ||||
-rw-r--r-- | arch/nt64/peldso.h | 52 |
2 files changed, 104 insertions, 0 deletions
diff --git a/arch/nt32/peldso.h b/arch/nt32/peldso.h new file mode 100644 index 0000000..bbe3e22 --- /dev/null +++ b/arch/nt32/peldso.h @@ -0,0 +1,52 @@ +#ifndef _PELDSO_H_ +#define _PELDSO_H_ + +/* ldso flags (pemagine)*/ +#define PE_LDSO_INTEGRAL_ONLY 0x00000000 +#define PE_LDSO_DEFAULT_EXECUTABLE 0x00000001 +#define PE_LDSO_STANDALONE_EXECUTABLE 0x00000002 + +/* error status (ntapi) */ +#define NT_STATUS_NOINTERFACE 0xC00002B9 + +/* rtdata guid (ntapi) */ +#define NT_PROCESS_GUID_RTDATA {0x3e43ec84,0x1af1,0x4ede,{0xac,0xd8,0xc3,0xd9,0x20,0xaf,0xc8,0x68}} + +/* abi guid */ +struct __guid { + unsigned int data1; + unsigned short data2; + unsigned short data3; + unsigned char data4[8]; +}; + +/* loader interfaces, statically linked (libldso.a) */ +__attribute__((__visibility__("hidden"))) int __ldso_terminate_current_process( + int estatus); + +__attribute__((__visibility__("hidden"))) void * __ldso_get_procedure_address( + const void * base, + const char * name); + +__attribute__((__visibility__("hidden"))) int __ldso_load_framework_loader_ex( + void ** baseaddr, + void ** hroot, + void ** hdsodir, + const struct __guid * abi, + const unsigned short * basename, + const unsigned short * rrelname, + void * refaddr, + unsigned long * buffer, + unsigned int bufsize, + unsigned int flags, + unsigned int * sysflags); + +__attribute__((__visibility__("hidden"))) int __ldso_load_framework_library( + void ** baseaddr, + void * hat, + const unsigned short * atrelname, + unsigned long * buffer, + unsigned int bufsize, + unsigned int * sysflags); + +#endif diff --git a/arch/nt64/peldso.h b/arch/nt64/peldso.h new file mode 100644 index 0000000..bbe3e22 --- /dev/null +++ b/arch/nt64/peldso.h @@ -0,0 +1,52 @@ +#ifndef _PELDSO_H_ +#define _PELDSO_H_ + +/* ldso flags (pemagine)*/ +#define PE_LDSO_INTEGRAL_ONLY 0x00000000 +#define PE_LDSO_DEFAULT_EXECUTABLE 0x00000001 +#define PE_LDSO_STANDALONE_EXECUTABLE 0x00000002 + +/* error status (ntapi) */ +#define NT_STATUS_NOINTERFACE 0xC00002B9 + +/* rtdata guid (ntapi) */ +#define NT_PROCESS_GUID_RTDATA {0x3e43ec84,0x1af1,0x4ede,{0xac,0xd8,0xc3,0xd9,0x20,0xaf,0xc8,0x68}} + +/* abi guid */ +struct __guid { + unsigned int data1; + unsigned short data2; + unsigned short data3; + unsigned char data4[8]; +}; + +/* loader interfaces, statically linked (libldso.a) */ +__attribute__((__visibility__("hidden"))) int __ldso_terminate_current_process( + int estatus); + +__attribute__((__visibility__("hidden"))) void * __ldso_get_procedure_address( + const void * base, + const char * name); + +__attribute__((__visibility__("hidden"))) int __ldso_load_framework_loader_ex( + void ** baseaddr, + void ** hroot, + void ** hdsodir, + const struct __guid * abi, + const unsigned short * basename, + const unsigned short * rrelname, + void * refaddr, + unsigned long * buffer, + unsigned int bufsize, + unsigned int flags, + unsigned int * sysflags); + +__attribute__((__visibility__("hidden"))) int __ldso_load_framework_library( + void ** baseaddr, + void * hat, + const unsigned short * atrelname, + unsigned long * buffer, + unsigned int bufsize, + unsigned int * sysflags); + +#endif |