PatchworkOS
Loading...
Searching...
No Matches
Terminal

Terminal Program. More...

Modules

 ANSI
 ANSI.
 

Data Structures

struct  uevent_terminal_data_t
 Terminal data event structure. struct uevent_terminal_data_t. More...
 
struct  terminal_char_t
 Terminal character. More...
 
struct  terminal_t
 Terminal structure. More...
 
struct  terminal_init_ctx_t
 Terminal initialization context. More...
 

Macros

#define TERMINAL_BLINK_INTERVAL   (CLOCKS_PER_SEC / 2)
 Terminal blink rate.
 
#define TERMINAL_COLUMNS   80
 Terminal columns.
 
#define TERMINAL_ROWS   30
 Terminal rows.
 
#define UEVENT_TERMINAL_DATA   (UEVENT_START + 0)
 Event sent from the terminals io thread to the main thread when there is data available.
 
#define TERMINAL_MAX_INPUT   64
 Maximum terminal input length.
 

Enumerations

enum  terminal_flags_t {
  TERMINAL_NONE = 0 ,
  TERMINAL_BOLD = (1 << 0) ,
  TERMINAL_DIM = (1 << 1) ,
  TERMINAL_ITALIC = (1 << 2) ,
  TERMINAL_UNDERLINE = (1 << 3) ,
  TERMINAL_BLINK = (1 << 4) ,
  TERMINAL_INVERSE = (1 << 5) ,
  TERMINAL_HIDDEN = (1 << 6) ,
  TERMINAL_STRIKETHROUGH = (1 << 7)
}
 Terminal flags. More...
 

Functions

window_tterminal_new (display_t *disp)
 Create a new terminal window.
 
void terminal_loop (window_t *win)
 Terminal main loop.
 

Detailed Description

Terminal Program.

A simple terminal emulator program.

The terminal always acts in raw mode, meaning that it does not process any input itself, instead it just sends all input directly to the shell program running inside it.

See also
Terminals OSDev Wiki
ANSI Escape Codes

Macro Definition Documentation

◆ TERMINAL_BLINK_INTERVAL

#define TERMINAL_BLINK_INTERVAL   (CLOCKS_PER_SEC / 2)

Terminal blink rate.

Definition at line 30 of file terminal.h.

◆ TERMINAL_COLUMNS

#define TERMINAL_COLUMNS   80

Terminal columns.

Definition at line 35 of file terminal.h.

◆ TERMINAL_MAX_INPUT

#define TERMINAL_MAX_INPUT   64

Maximum terminal input length.

Definition at line 50 of file terminal.h.

◆ TERMINAL_ROWS

#define TERMINAL_ROWS   30

Terminal rows.

Definition at line 40 of file terminal.h.

◆ UEVENT_TERMINAL_DATA

#define UEVENT_TERMINAL_DATA   (UEVENT_START + 0)

Event sent from the terminals io thread to the main thread when there is data available.

Definition at line 45 of file terminal.h.

Enumeration Type Documentation

◆ terminal_flags_t

Terminal flags.

Used for the ANSI state machine and character attributes.

Enumerator
TERMINAL_NONE 
TERMINAL_BOLD 
TERMINAL_DIM 
TERMINAL_ITALIC 
TERMINAL_UNDERLINE 
TERMINAL_BLINK 
TERMINAL_INVERSE 
TERMINAL_HIDDEN 
TERMINAL_STRIKETHROUGH 

Definition at line 70 of file terminal.h.

Function Documentation

◆ terminal_loop()

◆ terminal_new()

window_t * terminal_new ( display_t disp)

Create a new terminal window.

Parameters
dispThe display to create the window on.
Returns
On success, the terminal window. On failure, NULL and errno is set.

Definition at line 674 of file terminal.c.

References ERR, terminal_init_ctx_t::font, font_free(), font_new(), NULL, RECT_INIT_DIM, SURFACE_WINDOW, terminal_pixel_height(), terminal_pixel_width(), terminal_procedure(), WINDOW_DECO, window_free(), window_new(), and window_set_visible().

Referenced by main().