Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
tty.c File Reference
#include "tty.h"
#include "hal/cpu/core.h"
#include "hal/graphic/graphic.h"
#include "init/init.h"
#include "input.h"
#include "libk/serial.h"
#include "notify.h"
#include "procc/scheduler.h"
#include "procc/workqueue.h"
#include "str.h"
#include "string.h"
#include "sys/err_no.h"
#include "type.h"
#include "vfs/dentry.h"
#include "vfs/dev.h"
#include "vfs/vfs.h"
#include "vfs/vnode.h"
#include <autoconf.h>
#include <console/console.h>

Go to the source code of this file.

Data Structures

struct  win_size
 

Macros

#define TIOCGWINSZ   0x5413
 
#define FONT_SIZE   14
 

Functions

static void configure_tty (int tty)
 
static int char_ioctl (vnode_t *vnode, uint32_t req, void *arg)
 
static long char_write (vnode_t *vnode, void *buf, size_t len, size_t offset)
 
static void do_scroll (struct tty_internal *priv)
 
static int char_read (vnode_t *vnode, void *buf, size_t len, size_t offset)
 
static void tty_input_handler (uint32_t event, void *data, void *ctx)
 
 INIT (TTY)
 
void start_tty ()
 
void change_active_tty (int tty)
 
int get_active_tty ()
 
dentry_ptr get_active_tty_dentry ()
 
void tty_check_and_flush ()
 
dentry_ptr get_tty_dentry (int tty)
 

Variables

static dentry_ptr __tty_dentry [VOXIA_TTY_MAX_COUNT] = {0}
 
static int __current_tty_active = 0
 
static vops_file_t__tty_ops = 0
 

Macro Definition Documentation

◆ FONT_SIZE

#define FONT_SIZE   14

Definition at line 22 of file tty.c.

◆ TIOCGWINSZ

#define TIOCGWINSZ   0x5413

Definition at line 21 of file tty.c.

Referenced by char_ioctl().

Function Documentation

◆ change_active_tty()

void change_active_tty ( int tty)

Definition at line 251 of file tty.c.

References __current_tty_active.

◆ char_ioctl()

static int char_ioctl ( vnode_t * vnode,
uint32_t req,
void * arg )
static

◆ char_read()

static int char_read ( vnode_t * vnode,
void * buf,
size_t len,
size_t offset )
static

◆ char_write()

static long char_write ( vnode_t * vnode,
void * buf,
size_t len,
size_t offset )
static

Definition at line 173 of file tty.c.

References ENOENT, ENOSPC, len, memcopy(), offset, tail, tty_check_and_flush(), UNUSED, used, and vnode::vnode_private.

Referenced by INIT().

◆ configure_tty()

static void configure_tty ( int tty)
static

◆ do_scroll()

static void do_scroll ( struct tty_internal * priv)
static

◆ get_active_tty()

int get_active_tty ( )

Definition at line 253 of file tty.c.

References __current_tty_active.

◆ get_active_tty_dentry()

dentry_ptr get_active_tty_dentry ( )

Definition at line 255 of file tty.c.

References __current_tty_active, and __tty_dentry.

Referenced by tty_check_and_flush(), and tty_input_handler().

◆ get_tty_dentry()

dentry_ptr get_tty_dentry ( int tty)

Definition at line 339 of file tty.c.

References __tty_dentry.

Referenced by create_process().

◆ INIT()

◆ start_tty()

void start_tty ( )

Definition at line 246 of file tty.c.

References clear_screen(), and console_set_pos().

Referenced by __attribute__().

◆ tty_check_and_flush()

void tty_check_and_flush ( )

◆ tty_input_handler()

static void tty_input_handler ( uint32_t event,
void * data,
void * ctx )
static

Definition at line 49 of file tty.c.

References data, get_active_tty_dentry(), memcopy(), serial2_printf(), dentry::vnode, and vnode::vnode_private.

Referenced by INIT().

Variable Documentation

◆ __current_tty_active

int __current_tty_active = 0
static

◆ __tty_dentry

dentry_ptr __tty_dentry[VOXIA_TTY_MAX_COUNT] = {0}
static

Definition at line 31 of file tty.c.

Referenced by configure_tty(), get_active_tty_dentry(), and get_tty_dentry().

◆ __tty_ops

vops_file_t* __tty_ops = 0
static

Definition at line 33 of file tty.c.

Referenced by configure_tty(), and INIT().