mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 05:42:29 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
119
libc/nt/console.h
Normal file
119
libc/nt/console.h
Normal file
|
@ -0,0 +1,119 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_NT_CONSOLE_H_
|
||||
#define COSMOPOLITAN_LIBC_NT_CONSOLE_H_
|
||||
#include "libc/nt/enum/consolemodeflags.h"
|
||||
#include "libc/nt/struct/coord.h"
|
||||
#include "libc/nt/thunk/msabi.h"
|
||||
#include "libc/nt/typedef/handlerroutine.h"
|
||||
#if 0
|
||||
/* ░░░░
|
||||
▒▒▒░░░▒▒▒▒▒▒▒▓▓▓░
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▓▓▓▓▓▓░
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓░
|
||||
▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▒ ▒▒▒▓▓█
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
░▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ █▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓░ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒
|
||||
▒▒▒▒▓▓ ▓▒▒▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▓ ▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓
|
||||
░░░░░░░░░░░▒▒▒▒ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▓▓▓ ▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||
░▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓░ ░▓███▓
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▓▓░ ▒▓▓▓▒▒▒ ░▒▒▒▓ ████████████
|
||||
▒▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▒▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒░ ░███
|
||||
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ███
|
||||
▒▒░░░░░░░░░░▒▒▒▒▒▒▓▓ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ▓██
|
||||
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▓ ▓██
|
||||
▒▒░░░▒▒▒░░░▒▒░▒▒▒▓▓▒ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ███
|
||||
░▒▓ ░▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ▓██
|
||||
╔────────────────────────────────────────────────────────────────▀▀▀─────────│─╗
|
||||
│ cosmopolitan § new technology » console ─╬─│┼
|
||||
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||
#endif
|
||||
|
||||
#define kNtAttachParentProcess -1u
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
struct NtCharInfo;
|
||||
struct NtConsoleCursorInfo;
|
||||
struct NtConsoleScreenBufferInfo;
|
||||
struct NtConsoleScreenBufferInfoEx;
|
||||
struct NtConsoleSelectionInfo;
|
||||
struct NtInputRecord;
|
||||
struct NtSmallRect;
|
||||
|
||||
bool32 WriteConsoleOutput(int64_t hConsoleOutput,
|
||||
const struct NtCharInfo *lpBuffer,
|
||||
struct NtCoord dwBufferSize,
|
||||
struct NtCoord dwBufferCoord,
|
||||
struct NtSmallRect *lpWriteRegion);
|
||||
bool32 ReadConsoleInput(int64_t hConsoleInput, struct NtInputRecord *lpBuffer,
|
||||
uint32_t nLength, uint32_t *lpNumberOfEventsRead);
|
||||
bool32 PeekConsoleInput(int64_t hConsoleInput, struct NtInputRecord *lpBuffer,
|
||||
uint32_t nLength, uint32_t *lpNumberOfEventsRead);
|
||||
bool32 GetNumberOfConsoleInputEvent(int64_t hConsoleInput,
|
||||
uint32_t *lpNumberOfEvents);
|
||||
bool32 ReadConsoleOutput(int64_t hConsoleOutput, struct NtCharInfo *lpBuffer,
|
||||
struct NtCoord dwBufferSize,
|
||||
struct NtCoord dwBufferCoord,
|
||||
struct NtSmallRect *lpReadRegion);
|
||||
bool32 WriteConsoleInput(int64_t hConsoleInput,
|
||||
const struct NtInputRecord *lpBuffer, uint32_t nLength,
|
||||
uint32_t *lpNumberOfEventsWritten);
|
||||
bool32 FlushConsoleInputBuffer(int64_t hConsoleInput);
|
||||
|
||||
int64_t GetConsoleWindow(void);
|
||||
bool32 GetConsoleMode(int64_t hConsoleHandle, uint32_t *lpMode);
|
||||
bool32 SetConsoleMode(int64_t hConsoleHandle, uint32_t dwMode);
|
||||
int32_t AllocConsole(void);
|
||||
int32_t FreeConsole(void);
|
||||
int32_t AttachConsole(uint32_t dwProcessId);
|
||||
uint32_t GetConsoleTitle(char16_t *lpConsoleTitle, uint32_t nSize);
|
||||
int32_t SetConsoleTitle(const char16_t *lpConsoleTitle);
|
||||
bool32 GetConsoleScreenBufferInfo(
|
||||
int64_t hConsoleOutput,
|
||||
struct NtConsoleScreenBufferInfo *out_lpConsoleScreenBufferInfo);
|
||||
bool32 GetConsoleScreenBufferInfoEx(
|
||||
int64_t hConsoleOutput,
|
||||
struct NtConsoleScreenBufferInfoEx *in_out_lpConsoleScreenBufferInfo);
|
||||
bool32 SetConsoleScreenBufferInfoEx(
|
||||
int64_t hConsoleOutput,
|
||||
const struct NtConsoleScreenBufferInfoEx *lpConsoleScreenBufferInfo);
|
||||
bool32 SetConsoleScreenBufferSize(int64_t lpConsoleOutput,
|
||||
struct NtCoord dwSize);
|
||||
struct NtCoord GetLargestConsoleWindowSize(int64_t hConsoleHandle);
|
||||
int32_t ReadConsole(int64_t hConsoleInput, void *lpBuffer,
|
||||
uint32_t nNumberOfCharsToRead,
|
||||
uint32_t *lpNumberOfCharsRead, void *lpReserved);
|
||||
int32_t WriteConsole(int64_t hConsoleOutput, const void *lpBuffer,
|
||||
uint32_t nNumberOfCharsToWrite,
|
||||
uint32_t *lpNumberOfCharsWritten, void *lpReserved)
|
||||
paramsnonnull((2, 4));
|
||||
bool32 GetNumberOfConsoleMouseButtons(uint32_t *out_lpNumberOfMouseButtons)
|
||||
paramsnonnull();
|
||||
bool32 GetConsoleSelectionInfo(
|
||||
struct NtConsoleSelectionInfo *out_lpConsoleSelectionInfo);
|
||||
uint32_t WaitForInputIdle(int64_t hProcess, uint32_t dwMilliseconds);
|
||||
uint32_t GetConsoleCP(void);
|
||||
bool32 SetConsoleCP(uint32_t wCodePageID);
|
||||
bool32 SetConsoleOutputCP(uint32_t wCodePageID);
|
||||
uint32_t GetConsoleOutputCP(void);
|
||||
bool32 SetConsoleCtrlHandler(NtHandlerRoutine opt_HandlerRoutine, bool32 Add);
|
||||
bool32 GenerateConsoleCtrlEvent(uint32_t dwCtrlEvent,
|
||||
uint32_t dwProcessGroupId);
|
||||
|
||||
bool32 GetConsoleCursorInfo(
|
||||
int64_t hConsoleOutput,
|
||||
struct NtConsoleCursorInfo *out_lpConsoleCursorInfo);
|
||||
bool32 SetConsoleCursorInfo(
|
||||
int64_t hConsoleOutput,
|
||||
const struct NtConsoleCursorInfo *lpConsoleCursorInfo);
|
||||
|
||||
#if ShouldUseMsabiAttribute()
|
||||
#include "libc/nt/thunk/console.inc"
|
||||
#endif /* ShouldUseMsabiAttribute() */
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_NT_CONSOLE_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue