PatchworkOS
Loading...
Searching...
No Matches
terminal.h
Go to the documentation of this file.
1#pragma once
2
3#include "ansi.h"
4
6#include <stdint.h>
7#include <sys/io.h>
8#include <sys/kbd.h>
9#include <threads.h>
10
30#define TERMINAL_BLINK_INTERVAL (CLOCKS_PER_SEC / 2)
31
35#define TERMINAL_COLUMNS 80
36
40#define TERMINAL_ROWS 30
41
45#define UEVENT_TERMINAL_DATA (UEVENT_START + 0)
46
50#define TERMINAL_MAX_INPUT 64
51
63
70typedef enum
71{
73 TERMINAL_BOLD = (1 << 0),
74 TERMINAL_DIM = (1 << 1),
75 TERMINAL_ITALIC = (1 << 2),
77 TERMINAL_BLINK = (1 << 4),
78 TERMINAL_INVERSE = (1 << 5),
79 TERMINAL_HIDDEN = (1 << 6),
80 TERMINAL_STRIKETHROUGH = (1 << 7)
82
96
119
126typedef struct
127{
130
138
144void terminal_loop(window_t* win);
145
__UINT64_TYPE__ fd_t
A file descriptor.
Definition fd_t.h:12
__UINT64_TYPE__ pid_t
Process Identifier.
Definition pid_t.h:11
void terminal_loop(window_t *win)
Terminal main loop.
Definition terminal.c:702
terminal_flags_t
Terminal flags.
Definition terminal.h:71
#define TERMINAL_MAX_INPUT
Maximum terminal input length.
Definition terminal.h:50
#define TERMINAL_COLUMNS
Terminal columns.
Definition terminal.h:35
window_t * terminal_new(display_t *disp)
Create a new terminal window.
Definition terminal.c:674
#define TERMINAL_ROWS
Terminal rows.
Definition terminal.h:40
@ TERMINAL_DIM
Definition terminal.h:74
@ TERMINAL_STRIKETHROUGH
Definition terminal.h:80
@ TERMINAL_BLINK
Definition terminal.h:77
@ TERMINAL_ITALIC
Definition terminal.h:75
@ TERMINAL_NONE
Definition terminal.h:72
@ TERMINAL_UNDERLINE
Definition terminal.h:76
@ TERMINAL_HIDDEN
Definition terminal.h:79
@ TERMINAL_INVERSE
Definition terminal.h:78
@ TERMINAL_BOLD
Definition terminal.h:73
static log_screen_t screen
Definition log_screen.c:12
EFI_PHYSICAL_ADDRESS buffer
Definition mem.c:15
uint32_t pixel_t
Definition pixel.h:11
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__UINT16_TYPE__ uint16_t
Definition stdint.h:13
FILE * stdout
Definition std_streams.c:17
FILE * stdin
Definition std_streams.c:16
ANSI sending structure.
Definition ansi.h:139
Opaque display structure.
Definition internal.h:61
Terminal character.
Definition terminal.h:88
pixel_t foreground
Definition terminal.h:90
pixel_t background
Definition terminal.h:91
uint16_t col
Definition terminal.h:93
uint16_t physicalRow
Definition terminal.h:94
terminal_flags_t flags
Definition terminal.h:92
Terminal initialization context.
Definition terminal.h:127
Terminal structure.
Definition terminal.h:102
pixel_t background
Definition terminal.h:109
terminal_char_t * savedCursor
Definition terminal.h:114
terminal_char_t * prevCursor
Definition terminal.h:115
terminal_flags_t flags
Definition terminal.h:110
font_t * font
Definition terminal.h:104
window_t * win
Definition terminal.h:103
pid_t shell
Definition terminal.h:117
bool isCursorVisible
Definition terminal.h:105
pixel_t foreground
Definition terminal.h:108
uint64_t firstRow
Definition terminal.h:113
ansi_sending_t ansi
Definition terminal.h:111
terminal_char_t * cursor
Definition terminal.h:116
Terminal data event structure. struct uevent_terminal_data_t.
Definition terminal.h:59
Opaque window structure.
Definition internal.h:44