Macros | Enumerations | Functions | Variables
win/tty.c File Reference
#include <assert.h>
#include <io.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include "uv.h"
#include "internal.h"
#include "handle-inl.h"
#include "stream-inl.h"
#include "req-inl.h"
Include dependency graph for win/tty.c:

Go to the source code of this file.

Macros

#define ANSI_BACKSLASH_SEEN   0x0080
 
#define ANSI_CSI   0x0004
 
#define ANSI_DECSCUSR   0x0200
 
#define ANSI_ESCAPE_SEEN   0x0002
 
#define ANSI_EXTENSION   0x0100
 
#define ANSI_IGNORE   0x0010
 
#define ANSI_IN_ARG   0x0020
 
#define ANSI_IN_STRING   0x0040
 
#define ANSI_NORMAL   0x0000
 
#define ANSI_ST_CONTROL   0x0008
 
#define COMMON_LVB_REVERSE_VIDEO   0x4000
 
#define CURSOR_SIZE_LARGE   100
 
#define CURSOR_SIZE_SMALL   25
 
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING   0x0004
 
#define ENSURE_BUFFER_SPACE(wchars_needed)
 
#define FLIP_FGBG
 
#define FLUSH_TEXT()
 
#define InterlockedOr   _InterlockedOr
 
#define KEV   handle->tty.rd.last_input_record.Event.KeyEvent
 
#define MAX_CONSOLE_CHAR   8192
 
#define MAX_INPUT_BUFFER_LENGTH   8192
 
#define UNICODE_REPLACEMENT_CHARACTER   (0xfffd)
 
#define VK_CASE(vk, normal_str, shift_str, ctrl_str, shift_ctrl_str)
 

Enumerations

enum  uv__read_console_status_e { NOT_STARTED, IN_PROGRESS, TRAP_REQUESTED, COMPLETED }
 

Functions

static const char * get_vt100_fn_key (DWORD code, char shift, char ctrl, size_t *len)
 
static int uv__cancel_read_console (uv_tty_t *handle)
 
static void uv__determine_vterm_state (HANDLE handle)
 
static void CALLBACK uv__tty_console_resize_event (HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime)
 
static DWORD WINAPI uv__tty_console_resize_message_loop_thread (void *param)
 
static DWORD WINAPI uv__tty_console_resize_watcher_thread (void *param)
 
static void uv__tty_console_signal_resize (void)
 
int uv__tty_try_write (uv_tty_t *handle, const uv_buf_t bufs[], unsigned int nbufs)
 
void uv_console_init (void)
 
void uv_process_tty_accept_req (uv_loop_t *loop, uv_tty_t *handle, uv_req_t *raw_req)
 
void uv_process_tty_connect_req (uv_loop_t *loop, uv_tty_t *handle, uv_connect_t *req)
 
void uv_process_tty_read_line_req (uv_loop_t *loop, uv_tty_t *handle, uv_req_t *req)
 
void uv_process_tty_read_raw_req (uv_loop_t *loop, uv_tty_t *handle, uv_req_t *req)
 
void uv_process_tty_read_req (uv_loop_t *loop, uv_tty_t *handle, uv_req_t *req)
 
void uv_process_tty_write_req (uv_loop_t *loop, uv_tty_t *handle, uv_write_t *req)
 
static void uv_tty_capture_initial_style (CONSOLE_SCREEN_BUFFER_INFO *screen_buffer_info, CONSOLE_CURSOR_INFO *cursor_info)
 
static int uv_tty_clear (uv_tty_t *handle, int dir, char entire_screen, DWORD *error)
 
void uv_tty_close (uv_tty_t *handle)
 
static int uv_tty_emit_text (uv_tty_t *handle, WCHAR buffer[], DWORD length, DWORD *error)
 
void uv_tty_endgame (uv_loop_t *loop, uv_tty_t *handle)
 
int uv_tty_get_vterm_state (uv_tty_vtermstate_t *state)
 
int uv_tty_get_winsize (uv_tty_t *tty, int *width, int *height)
 
int uv_tty_init (uv_loop_t *loop, uv_tty_t *tty, uv_file fd, int unused)
 
static DWORD CALLBACK uv_tty_line_read_thread (void *data)
 
static COORD uv_tty_make_real_coord (uv_tty_t *handle, CONSOLE_SCREEN_BUFFER_INFO *info, int x, unsigned char x_relative, int y, unsigned char y_relative)
 
static int uv_tty_move_caret (uv_tty_t *handle, int x, unsigned char x_relative, int y, unsigned char y_relative, DWORD *error)
 
static void CALLBACK uv_tty_post_raw_read (void *data, BOOLEAN didTimeout)
 
static void uv_tty_queue_read (uv_loop_t *loop, uv_tty_t *handle)
 
static void uv_tty_queue_read_line (uv_loop_t *loop, uv_tty_t *handle)
 
static void uv_tty_queue_read_raw (uv_loop_t *loop, uv_tty_t *handle)
 
int uv_tty_read_start (uv_tty_t *handle, uv_alloc_cb alloc_cb, uv_read_cb read_cb)
 
int uv_tty_read_stop (uv_tty_t *handle)
 
static int uv_tty_reset (uv_tty_t *handle, DWORD *error)
 
int uv_tty_reset_mode (void)
 
static int uv_tty_restore_state (uv_tty_t *handle, unsigned char restore_attributes, DWORD *error)
 
static int uv_tty_save_state (uv_tty_t *handle, unsigned char save_attributes, DWORD *error)
 
static int uv_tty_set_cursor_shape (uv_tty_t *handle, int style, DWORD *error)
 
static int uv_tty_set_cursor_visibility (uv_tty_t *handle, BOOL visible, DWORD *error)
 
int uv_tty_set_mode (uv_tty_t *tty, uv_tty_mode_t mode)
 
static int uv_tty_set_style (uv_tty_t *handle, DWORD *error)
 
void uv_tty_set_vterm_state (uv_tty_vtermstate_t state)
 
static void uv_tty_update_virtual_window (CONSOLE_SCREEN_BUFFER_INFO *info)
 
int uv_tty_write (uv_loop_t *loop, uv_write_t *req, uv_tty_t *handle, const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb)
 
static int uv_tty_write_bufs (uv_tty_t *handle, const uv_buf_t bufs[], unsigned int nbufs, DWORD *error)
 

Variables

static BOOL uv__need_check_vterm_state = TRUE
 
static volatile LONG uv__read_console_status = NOT_STARTED
 
static volatile LONG uv__restore_screen_state
 
static CONSOLE_SCREEN_BUFFER_INFO uv__saved_screen_state
 
static HANDLE uv__tty_console_handle = INVALID_HANDLE_VALUE
 
static int uv__tty_console_height = -1
 
static uv_mutex_t uv__tty_console_resize_mutex
 
static HANDLE uv__tty_console_resized = INVALID_HANDLE_VALUE
 
static int uv__tty_console_width = -1
 
static uv_tty_vtermstate_t uv__vterm_state = UV_TTY_UNSUPPORTED
 
static const uv_buf_t uv_null_buf_ = { 0, NULL }
 
static char uv_tty_default_bg_bright = 0
 
static char uv_tty_default_bg_color = 0
 
static CONSOLE_CURSOR_INFO uv_tty_default_cursor_info
 
static char uv_tty_default_fg_bright = 0
 
static char uv_tty_default_fg_color = 7
 
static char uv_tty_default_inverse = 0
 
static WORD uv_tty_default_text_attributes
 
static uv_sem_t uv_tty_output_lock
 
static int uv_tty_virtual_height = -1
 
static int uv_tty_virtual_offset = -1
 
static int uv_tty_virtual_width = -1
 

Macro Definition Documentation

◆ ANSI_BACKSLASH_SEEN

#define ANSI_BACKSLASH_SEEN   0x0080

Definition at line 56 of file win/tty.c.

◆ ANSI_CSI

#define ANSI_CSI   0x0004

Definition at line 51 of file win/tty.c.

◆ ANSI_DECSCUSR

#define ANSI_DECSCUSR   0x0200

Definition at line 58 of file win/tty.c.

◆ ANSI_ESCAPE_SEEN

#define ANSI_ESCAPE_SEEN   0x0002

Definition at line 50 of file win/tty.c.

◆ ANSI_EXTENSION

#define ANSI_EXTENSION   0x0100

Definition at line 57 of file win/tty.c.

◆ ANSI_IGNORE

#define ANSI_IGNORE   0x0010

Definition at line 53 of file win/tty.c.

◆ ANSI_IN_ARG

#define ANSI_IN_ARG   0x0020

Definition at line 54 of file win/tty.c.

◆ ANSI_IN_STRING

#define ANSI_IN_STRING   0x0040

Definition at line 55 of file win/tty.c.

◆ ANSI_NORMAL

#define ANSI_NORMAL   0x0000

Definition at line 49 of file win/tty.c.

◆ ANSI_ST_CONTROL

#define ANSI_ST_CONTROL   0x0008

Definition at line 52 of file win/tty.c.

◆ COMMON_LVB_REVERSE_VIDEO

#define COMMON_LVB_REVERSE_VIDEO   0x4000

Definition at line 34 of file win/tty.c.

◆ CURSOR_SIZE_LARGE

#define CURSOR_SIZE_LARGE   100

Definition at line 68 of file win/tty.c.

◆ CURSOR_SIZE_SMALL

#define CURSOR_SIZE_SMALL   25

Definition at line 67 of file win/tty.c.

◆ ENABLE_VIRTUAL_TERMINAL_PROCESSING

#define ENABLE_VIRTUAL_TERMINAL_PROCESSING   0x0004

Definition at line 64 of file win/tty.c.

◆ ENSURE_BUFFER_SPACE

#define ENSURE_BUFFER_SPACE (   wchars_needed)
Value:
if (wchars_needed > ARRAY_SIZE(utf16_buf) - utf16_buf_used) { \
FLUSH_TEXT(); \
}

◆ FLIP_FGBG

#define FLIP_FGBG
Value:
do { \
WORD fg = info.wAttributes & 0xF; \
WORD bg = info.wAttributes & 0xF0; \
info.wAttributes &= 0xFF00; \
info.wAttributes |= fg << 4; \
info.wAttributes |= bg >> 4; \
} while (0)

Definition at line 1393 of file win/tty.c.

◆ FLUSH_TEXT

#define FLUSH_TEXT ( )
Value:
do { \
if (utf16_buf_used > 0) { \
uv_tty_emit_text(handle, utf16_buf, utf16_buf_used, error); \
utf16_buf_used = 0; \
} \
} while (0)

◆ InterlockedOr

#define InterlockedOr   _InterlockedOr

Definition at line 44 of file win/tty.c.

◆ KEV

#define KEV   handle->tty.rd.last_input_record.Event.KeyEvent

◆ MAX_CONSOLE_CHAR

#define MAX_CONSOLE_CHAR   8192

Definition at line 61 of file win/tty.c.

◆ MAX_INPUT_BUFFER_LENGTH

#define MAX_INPUT_BUFFER_LENGTH   8192

Definition at line 60 of file win/tty.c.

◆ UNICODE_REPLACEMENT_CHARACTER

#define UNICODE_REPLACEMENT_CHARACTER   (0xfffd)

Definition at line 47 of file win/tty.c.

◆ VK_CASE

#define VK_CASE (   vk,
  normal_str,
  shift_str,
  ctrl_str,
  shift_ctrl_str 
)
Value:
case (vk): \
if (shift && ctrl) { \
*len = sizeof shift_ctrl_str; \
return "\033" shift_ctrl_str; \
} else if (shift) { \
*len = sizeof shift_str ; \
return "\033" shift_str; \
} else if (ctrl) { \
*len = sizeof ctrl_str; \
return "\033" ctrl_str; \
} else { \
*len = sizeof normal_str; \
return "\033" normal_str; \
}

Enumeration Type Documentation

◆ uv__read_console_status_e

Enumerator
NOT_STARTED 
IN_PROGRESS 
TRAP_REQUESTED 
COMPLETED 

Definition at line 80 of file win/tty.c.

Function Documentation

◆ get_vt100_fn_key()

static const char* get_vt100_fn_key ( DWORD  code,
char  shift,
char  ctrl,
size_t *  len 
)
static

Definition at line 630 of file win/tty.c.

◆ uv__cancel_read_console()

static int uv__cancel_read_console ( uv_tty_t handle)
static

Definition at line 1083 of file win/tty.c.

◆ uv__determine_vterm_state()

static void uv__determine_vterm_state ( HANDLE  handle)
static

Definition at line 2333 of file win/tty.c.

◆ uv__tty_console_resize_event()

static void CALLBACK uv__tty_console_resize_event ( HWINEVENTHOOK  hWinEventHook,
DWORD  event,
HWND  hwnd,
LONG  idObject,
LONG  idChild,
DWORD  dwEventThread,
DWORD  dwmsEventTime 
)
static

Definition at line 2397 of file win/tty.c.

◆ uv__tty_console_resize_message_loop_thread()

static DWORD WINAPI uv__tty_console_resize_message_loop_thread ( void *  param)
static

Definition at line 2349 of file win/tty.c.

◆ uv__tty_console_resize_watcher_thread()

static DWORD WINAPI uv__tty_console_resize_watcher_thread ( void *  param)
static

Definition at line 2407 of file win/tty.c.

◆ uv__tty_console_signal_resize()

static void uv__tty_console_signal_resize ( void  )
static

Definition at line 2417 of file win/tty.c.

◆ uv__tty_try_write()

int uv__tty_try_write ( uv_tty_t handle,
const uv_buf_t  bufs[],
unsigned int  nbufs 
)

Definition at line 2212 of file win/tty.c.

◆ uv_console_init()

void uv_console_init ( void  )

Definition at line 166 of file win/tty.c.

◆ uv_process_tty_accept_req()

void uv_process_tty_accept_req ( uv_loop_t loop,
uv_tty_t handle,
uv_req_t raw_req 
)

Definition at line 2308 of file win/tty.c.

◆ uv_process_tty_connect_req()

void uv_process_tty_connect_req ( uv_loop_t loop,
uv_tty_t handle,
uv_connect_t req 
)

Definition at line 2318 of file win/tty.c.

◆ uv_process_tty_read_line_req()

void uv_process_tty_read_line_req ( uv_loop_t loop,
uv_tty_t handle,
uv_req_t req 
)

Definition at line 959 of file win/tty.c.

◆ uv_process_tty_read_raw_req()

void uv_process_tty_read_raw_req ( uv_loop_t loop,
uv_tty_t handle,
uv_req_t req 
)

Definition at line 696 of file win/tty.c.

◆ uv_process_tty_read_req()

void uv_process_tty_read_req ( uv_loop_t loop,
uv_tty_t handle,
uv_req_t req 
)

Definition at line 1001 of file win/tty.c.

◆ uv_process_tty_write_req()

void uv_process_tty_write_req ( uv_loop_t loop,
uv_tty_t handle,
uv_write_t req 
)

Definition at line 2227 of file win/tty.c.

◆ uv_tty_capture_initial_style()

static void uv_tty_capture_initial_style ( CONSOLE_SCREEN_BUFFER_INFO *  screen_buffer_info,
CONSOLE_CURSOR_INFO *  cursor_info 
)
static

Definition at line 292 of file win/tty.c.

◆ uv_tty_clear()

static int uv_tty_clear ( uv_tty_t handle,
int  dir,
char  entire_screen,
DWORD *  error 
)
static

Definition at line 1314 of file win/tty.c.

◆ uv_tty_close()

void uv_tty_close ( uv_tty_t handle)

Definition at line 2249 of file win/tty.c.

◆ uv_tty_emit_text()

static int uv_tty_emit_text ( uv_tty_t handle,
WCHAR  buffer[],
DWORD  length,
DWORD *  error 
)
static

Definition at line 1199 of file win/tty.c.

◆ uv_tty_endgame()

void uv_tty_endgame ( uv_loop_t loop,
uv_tty_t handle 
)

Definition at line 2270 of file win/tty.c.

◆ uv_tty_get_vterm_state()

int uv_tty_get_vterm_state ( uv_tty_vtermstate_t state)

Definition at line 2446 of file win/tty.c.

◆ uv_tty_get_winsize()

int uv_tty_get_winsize ( uv_tty_t tty,
int width,
int height 
)

Definition at line 417 of file win/tty.c.

◆ uv_tty_init()

int uv_tty_init ( uv_loop_t loop,
uv_tty_t tty,
uv_file  fd,
int  unused 
)

Definition at line 190 of file win/tty.c.

◆ uv_tty_line_read_thread()

static DWORD CALLBACK uv_tty_line_read_thread ( void *  data)
static

Definition at line 486 of file win/tty.c.

◆ uv_tty_make_real_coord()

static COORD uv_tty_make_real_coord ( uv_tty_t handle,
CONSOLE_SCREEN_BUFFER_INFO *  info,
int  x,
unsigned char  x_relative,
int  y,
unsigned char  y_relative 
)
static

Definition at line 1162 of file win/tty.c.

◆ uv_tty_move_caret()

static int uv_tty_move_caret ( uv_tty_t handle,
int  x,
unsigned char  x_relative,
int  y,
unsigned char  y_relative,
DWORD *  error 
)
static

Definition at line 1220 of file win/tty.c.

◆ uv_tty_post_raw_read()

static void CALLBACK uv_tty_post_raw_read ( void *  data,
BOOLEAN  didTimeout 
)
static

Definition at line 435 of file win/tty.c.

◆ uv_tty_queue_read()

static void uv_tty_queue_read ( uv_loop_t loop,
uv_tty_t handle 
)
static

Definition at line 621 of file win/tty.c.

◆ uv_tty_queue_read_line()

static void uv_tty_queue_read_line ( uv_loop_t loop,
uv_tty_t handle 
)
static

Definition at line 581 of file win/tty.c.

◆ uv_tty_queue_read_raw()

static void uv_tty_queue_read_raw ( uv_loop_t loop,
uv_tty_t handle 
)
static

Definition at line 455 of file win/tty.c.

◆ uv_tty_read_start()

int uv_tty_read_start ( uv_tty_t handle,
uv_alloc_cb  alloc_cb,
uv_read_cb  read_cb 
)

Definition at line 1017 of file win/tty.c.

◆ uv_tty_read_stop()

int uv_tty_read_stop ( uv_tty_t handle)

Definition at line 1053 of file win/tty.c.

◆ uv_tty_reset()

static int uv_tty_reset ( uv_tty_t handle,
DWORD *  error 
)
static

Definition at line 1250 of file win/tty.c.

◆ uv_tty_reset_mode()

int uv_tty_reset_mode ( void  )

Definition at line 2324 of file win/tty.c.

◆ uv_tty_restore_state()

static int uv_tty_restore_state ( uv_tty_t handle,
unsigned char  restore_attributes,
DWORD *  error 
)
static

Definition at line 1587 of file win/tty.c.

◆ uv_tty_save_state()

static int uv_tty_save_state ( uv_tty_t handle,
unsigned char  save_attributes,
DWORD *  error 
)
static

Definition at line 1558 of file win/tty.c.

◆ uv_tty_set_cursor_shape()

static int uv_tty_set_cursor_shape ( uv_tty_t handle,
int  style,
DWORD *  error 
)
static

Definition at line 1647 of file win/tty.c.

◆ uv_tty_set_cursor_visibility()

static int uv_tty_set_cursor_visibility ( uv_tty_t handle,
BOOL  visible,
DWORD *  error 
)
static

Definition at line 1627 of file win/tty.c.

◆ uv_tty_set_mode()

int uv_tty_set_mode ( uv_tty_t tty,
uv_tty_mode_t  mode 
)

Definition at line 350 of file win/tty.c.

◆ uv_tty_set_style()

static int uv_tty_set_style ( uv_tty_t handle,
DWORD *  error 
)
static

Definition at line 1402 of file win/tty.c.

◆ uv_tty_set_vterm_state()

void uv_tty_set_vterm_state ( uv_tty_vtermstate_t  state)

Definition at line 2439 of file win/tty.c.

◆ uv_tty_update_virtual_window()

static void uv_tty_update_virtual_window ( CONSOLE_SCREEN_BUFFER_INFO *  info)
static

Definition at line 1139 of file win/tty.c.

◆ uv_tty_write()

int uv_tty_write ( uv_loop_t loop,
uv_write_t req,
uv_tty_t handle,
const uv_buf_t  bufs[],
unsigned int  nbufs,
uv_write_cb  cb 
)

Definition at line 2182 of file win/tty.c.

◆ uv_tty_write_bufs()

static int uv_tty_write_bufs ( uv_tty_t handle,
const uv_buf_t  bufs[],
unsigned int  nbufs,
DWORD *  error 
)
static

Definition at line 1672 of file win/tty.c.

Variable Documentation

◆ uv__need_check_vterm_state

BOOL uv__need_check_vterm_state = TRUE
static

Definition at line 162 of file win/tty.c.

◆ uv__read_console_status

volatile LONG uv__read_console_status = NOT_STARTED
static

Definition at line 87 of file win/tty.c.

◆ uv__restore_screen_state

volatile LONG uv__restore_screen_state
static

Definition at line 88 of file win/tty.c.

◆ uv__saved_screen_state

CONSOLE_SCREEN_BUFFER_INFO uv__saved_screen_state
static

Definition at line 89 of file win/tty.c.

◆ uv__tty_console_handle

HANDLE uv__tty_console_handle = INVALID_HANDLE_VALUE
static

Definition at line 127 of file win/tty.c.

◆ uv__tty_console_height

int uv__tty_console_height = -1
static

Definition at line 128 of file win/tty.c.

◆ uv__tty_console_resize_mutex

uv_mutex_t uv__tty_console_resize_mutex
static

Definition at line 131 of file win/tty.c.

◆ uv__tty_console_resized

HANDLE uv__tty_console_resized = INVALID_HANDLE_VALUE
static

Definition at line 130 of file win/tty.c.

◆ uv__tty_console_width

int uv__tty_console_width = -1
static

Definition at line 129 of file win/tty.c.

◆ uv__vterm_state

uv_tty_vtermstate_t uv__vterm_state = UV_TTY_UNSUPPORTED
static

Definition at line 163 of file win/tty.c.

◆ uv_null_buf_

const uv_buf_t uv_null_buf_ = { 0, NULL }
static

Definition at line 78 of file win/tty.c.

◆ uv_tty_default_bg_bright

char uv_tty_default_bg_bright = 0
static

Definition at line 156 of file win/tty.c.

◆ uv_tty_default_bg_color

char uv_tty_default_bg_color = 0
static

Definition at line 154 of file win/tty.c.

◆ uv_tty_default_cursor_info

CONSOLE_CURSOR_INFO uv_tty_default_cursor_info
static

Definition at line 159 of file win/tty.c.

◆ uv_tty_default_fg_bright

char uv_tty_default_fg_bright = 0
static

Definition at line 155 of file win/tty.c.

◆ uv_tty_default_fg_color

char uv_tty_default_fg_color = 7
static

Definition at line 153 of file win/tty.c.

◆ uv_tty_default_inverse

char uv_tty_default_inverse = 0
static

Definition at line 157 of file win/tty.c.

◆ uv_tty_default_text_attributes

WORD uv_tty_default_text_attributes
static
Initial value:
=
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE

Definition at line 150 of file win/tty.c.

◆ uv_tty_output_lock

uv_sem_t uv_tty_output_lock
static

Definition at line 148 of file win/tty.c.

◆ uv_tty_virtual_height

int uv_tty_virtual_height = -1
static

Definition at line 119 of file win/tty.c.

◆ uv_tty_virtual_offset

int uv_tty_virtual_offset = -1
static

Definition at line 118 of file win/tty.c.

◆ uv_tty_virtual_width

int uv_tty_virtual_width = -1
static

Definition at line 120 of file win/tty.c.

ARRAY_SIZE
#define ARRAY_SIZE(array)
Definition: bloaty.cc:101
error
grpc_error_handle error
Definition: retry_filter.cc:499
handle
static csh handle
Definition: test_arm_regression.c:16
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46


grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:35