cosmopolitan/libc/mach.internal.h
Justine Tunney 4a59210008
Introduce #include <cosmo.h> to toolchain users
This change improves the way internal APIs are being hidden behind the
`COSMO` define. The cosmo.h header will take care of defining that, so
that a separate define statement isn't needed. This change also does a
lot more to define which APIs are standard, and which belong to Cosmo.
2023-06-09 18:03:05 -07:00

50 lines
4.5 KiB
C

#ifndef COSMOPOLITAN_LIBC_MACH_H_
#define COSMOPOLITAN_LIBC_MACH_H_
/* ▄▄███▄
▄▄████████▄
▄█████████████▄
▄▄███▓▓▓▓▓▓▓▓▓▓▓███▄
▄▄█████▓▓▓█████████▓▓▓██▄
▄▄████████▓▓▓███████▓▓▓▓▓████▄
▄█████░░░████▓▓█████▓▓▓▓█████████▄
▄▄█████████░░░███▓▓█▓▓▓▓▒███████▓▓▒███▄
▄██████████████░░░██▓▓▓▓███████████▓▓█████▄
██████████████████░░░██▓▓▓█████████▓▓▓███████▄
███░░░░░░█████████▓░░███▓▓▓▓▓▓▓▓▓▓▓█████▒▒▒██▄
█░███░░░██░░░░░░░░░██░░██████████████▒▒▒▒██████▄
███████░░░█████████░░░░░░█████████▒▒▒▒▒██████████▄
█████ ██░░░███████████████████▒▒▒▒▒██░▒▒██████████▄
██████ ██░░░██████████████░███▒████████▒▒██████████▄
████████ ███░░█████████████░░████████████▒▒███████████
█████████ ███░░███████████░░██████████████▒▒███████████
▄██████████ ██████████████ ░░███████████████▒▒███████████
████████████ ███░░░░░█████░░█████████████████▒▒██████ █
█████████████ ██████░░░░░░░▒█████████████████████ ████▀
█████████████ ██████████░░░░░░░░░███████████ ████████
█████████████ ████████░░███████░░░██████ ▓██████████
█████████████ ██████░░░████████████ █████████████
╔────────────────────────────────────────────────────────────────────────────│─╗
│ cosmopolitan § xnu's not unix! » carnegie mellon mach microkernel ─╬─│┼
╚────────────────────────────────────────────────────────────────────────────│*/
#define XNU_SYSCALL_MASK_MACH 0x1000000
#define XNU_SYSCALL_MASK_UNIX 0x2000000
#define XNU_SYSCALL_MASK_MACH_IPC 0x5000000
#define kXnuCommonPage 0x00007fffffe00000
#define kXnuNtTscBase 0x050 /* uint64_t */
#define kXnuNtScale 0x058 /* uint32_t */
#define kXnuNtShift 0x05c /* uint32_t */
#define kXnuNtNsBase 0x060 /* uint64_t */
#define kXnuNtGeneration 0x068 /* uint32_t */
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
bool swtch(void);
bool swtch_pri(int);
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_MACH_H_ */