#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 */

COSMOPOLITAN_C_START_

bool swtch(void);
bool swtch_pri(int);

COSMOPOLITAN_C_END_
#endif /* COSMOPOLITAN_LIBC_MACH_H_ */