mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
7e0a09feec
This change ports APE Loader to Linux AARCH64, so that Raspberry Pi users can run programs like redbean, without the executable needing to modify itself. Progress has also slipped into this change on the issue of making progress better conforming to user expectations and industry standards regarding which symbols we're allowed to declare
59 lines
2.2 KiB
C
59 lines
2.2 KiB
C
#ifndef COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_
|
|
#define COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_
|
|
#ifndef __STRICT_ANSI__
|
|
#include "libc/dce.h"
|
|
#include "libc/elf/struct/ehdr.h"
|
|
#include "libc/runtime/runtime.h"
|
|
|
|
#define STACK_CEIL 0x700000000000ul
|
|
#define STACK_SIZE FRAMESIZE
|
|
|
|
#define RUNLEVEL_MALLOC 1
|
|
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
extern int __pid;
|
|
extern char __runlevel;
|
|
extern int ftrace_stackdigs;
|
|
extern uint32_t __ntconsolemode[3];
|
|
extern const char v_ntsubsystem[] __attribute__((__weak__));
|
|
extern const uintptr_t __fini_array_end[] __attribute__((__weak__));
|
|
extern const uintptr_t __fini_array_start[] __attribute__((__weak__));
|
|
|
|
extern unsigned char _tdata_start[] __attribute__((__weak__));
|
|
extern unsigned char _tdata_end[] __attribute__((__weak__));
|
|
extern unsigned char _tdata_size[] __attribute__((__weak__));
|
|
extern unsigned char _tbss_start[] __attribute__((__weak__));
|
|
extern unsigned char _tbss_end[] __attribute__((__weak__));
|
|
extern unsigned char _tbss_size[] __attribute__((__weak__));
|
|
extern unsigned char _tbss_offset[] __attribute__((__weak__));
|
|
extern unsigned char _tls_size[] __attribute__((__weak__));
|
|
extern unsigned char _tls_content[] __attribute__((__weak__));
|
|
|
|
void _init(void);
|
|
int ftrace_init(void);
|
|
void ftrace_hook(void);
|
|
void __morph_tls(void);
|
|
void __enable_tls(void);
|
|
void __enable_threads(void);
|
|
void *__cxa_finalize(void *);
|
|
void __stack_chk_fail(void) wontreturn relegated;
|
|
void __stack_chk_fail_local(void) wontreturn relegated;
|
|
void __asan_init(int, char **, char **, intptr_t *);
|
|
void _jmpstack(void *, void *, ...) wontreturn;
|
|
long _setstack(void *, void *, ...);
|
|
int GetDosArgv(const char16_t *, char *, size_t, char **, size_t);
|
|
int GetDosEnviron(const char16_t *, char *, size_t, char **, size_t);
|
|
bool __intercept_flag(int *, char *[], const char *);
|
|
int sys_mprotect_nt(void *, size_t, int);
|
|
int __inflate(void *, size_t, const void *, size_t);
|
|
void *_Mmap(void *, size_t, int, int, int, int64_t) dontasan;
|
|
int _Munmap(char *, size_t) dontasan;
|
|
void __on_arithmetic_overflow(void);
|
|
void __init_fds(void);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* ANSI */
|
|
#endif /* COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_ */
|