56 lines
4.4 KiB
C
56 lines
4.4 KiB
C
|
#ifndef COSMOPOLITAN_LIBC_NT_THREADS_H_
|
||
|
#define COSMOPOLITAN_LIBC_NT_THREADS_H_
|
||
|
#include "libc/nt/enum/threadaccess.h"
|
||
|
#include "libc/nt/thunk/msabi.h"
|
||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||
|
COSMOPOLITAN_C_START_
|
||
|
#if 0
|
||
|
/* ░░░░
|
||
|
▒▒▒░░░▒▒▒▒▒▒▒▓▓▓░
|
||
|
▒▒▒▒░░░▒▒▒▒▒▒▓▓▓▓▓▓░
|
||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓░
|
||
|
▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▒ ▒▒▒▓▓█
|
||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||
|
░▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ █▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓░ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒
|
||
|
▒▒▒▒▓▓ ▓▒▒▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||
|
▒▓ ▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓
|
||
|
░░░░░░░░░░░▒▒▒▒ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||
|
▒▒░░░░░░░░░░▒▒▒▒▒▓▓▓ ▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||
|
░▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓░ ░▓███▓
|
||
|
▒▒░░░░░░░░░░▒▒▒▒▒▓▓░ ▒▓▓▓▒▒▒ ░▒▒▒▓ ████████████
|
||
|
▒▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▒▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒░ ░███
|
||
|
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ███
|
||
|
▒▒░░░░░░░░░░▒▒▒▒▒▒▓▓ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ▓██
|
||
|
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▓ ▓██
|
||
|
▒▒░░░▒▒▒░░░▒▒░▒▒▒▓▓▒ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ███
|
||
|
░▒▓ ░▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ▓██
|
||
|
╔────────────────────────────────────────────────────────────────▀▀▀─────────│─╗
|
||
|
│ cosmopolitan § new technology » threads ─╬─│┼
|
||
|
╚────────────────────────────────────────────────────────────────────────────│*/
|
||
|
#endif
|
||
|
|
||
|
void ExitThread(uint32_t dwExitCode) noreturn;
|
||
|
int64_t GetCurrentThread(void);
|
||
|
uint32_t GetCurrentThreadId(void);
|
||
|
uint64_t SetThreadAffinityMask(int64_t hThread, uintptr_t dwThreadAffinityMask);
|
||
|
int64_t OpenThread(uint32_t dwDesiredAccess, bool32 bInheritHandle,
|
||
|
uint32_t dwThreadId);
|
||
|
bool32 TerminateThread(int64_t hThread, uint32_t dwExitCode);
|
||
|
bool32 GetExitCodeThread(int64_t hThread, uint32_t *lpExitCode);
|
||
|
|
||
|
/* e.g. kNtThreadPriorityAboveNormal, -1u on error */
|
||
|
uint32_t GetThreadPriority(int64_t hThread);
|
||
|
bool32 SetThreadPriority(int64_t hThread, int32_t nPriority);
|
||
|
bool32 SetThreadPriorityBoost(int64_t hThread, bool32 bDisablePriorityBoost);
|
||
|
bool32 GetThreadPriorityBoost(int64_t hThread, bool32 *pDisablePriorityBoost);
|
||
|
bool32 GetThreadIOPendingFlag(int64_t hThread, bool32 *lpIOIsPending);
|
||
|
|
||
|
#if ShouldUseMsabiAttribute()
|
||
|
#include "libc/nt/thunk/thread.inc"
|
||
|
#endif /* ShouldUseMsabiAttribute() */
|
||
|
COSMOPOLITAN_C_END_
|
||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||
|
#endif /* COSMOPOLITAN_LIBC_NT_THREADS_H_ */
|