summaryrefslogtreecommitdiff
path: root/kern/inc
diff options
context:
space:
mode:
Diffstat (limited to 'kern/inc')
-rw-r--r--kern/inc/pts.h8
-rw-r--r--kern/inc/pv.h9
-rw-r--r--kern/inc/toad.h8
3 files changed, 24 insertions, 1 deletions
diff --git a/kern/inc/pts.h b/kern/inc/pts.h
index c300fb9..4c0c9f9 100644
--- a/kern/inc/pts.h
+++ b/kern/inc/pts.h
@@ -65,6 +65,7 @@ typedef struct kbd_request_s {
typedef struct pts_s {
queue_t pts_link;
+ queue_t* pvs;
int refcount;
mutex_t lock;
@@ -85,11 +86,14 @@ typedef struct pts_s {
char chr_ring[CHR_RING_SIZE];
int chr_r_pos;
int chr_w_pos;
+ int forward_tab;
} pts_t;
extern pts_t* active_pts;
extern spl_t pts_lock;
+void setup_pts();
+
void pts_init(pts_t* pts);
int putbyte(char ch);
@@ -175,6 +179,8 @@ int pts_set_cursor(pts_t* pts, int row, int col);
*/
void pts_get_cursor(pts_t* pts, int* row, int* col);
+int pts_print_at(pts_t* pts, int len, va_t buf, int row, int col, int color);
+
/**
* @brief read a line to userspace
* @param len max length to read
@@ -189,4 +195,6 @@ int do_readline(int len, va_t buf);
*/
int do_getchar();
+void switch_pts(pts_t* pts);
+
#endif /* _PTS_H */
diff --git a/kern/inc/pv.h b/kern/inc/pv.h
index 123a127..c0708dc 100644
--- a/kern/inc/pv.h
+++ b/kern/inc/pv.h
@@ -76,6 +76,7 @@ typedef struct pv_s {
queue_t* shadow_pds;
pv_idt_t vidt;
va_t vesp0;
+ queue_t pts_link;
} pv_t;
void pv_init();
@@ -124,13 +125,19 @@ void pv_select_pd(process_t* p, pv_pd_t* pv_pd);
void pv_handle_fault(ureg_t* frame, thread_t* t);
+void pv_pend_irq(pv_t* pv, int index, int arg);
+
struct stack_frame_s;
typedef struct stack_frame_s stack_frame_t;
int pv_inject_irq(stack_frame_t* f, int index, int arg);
void pv_check_pending_irq(stack_frame_t* f);
-void pv_inject_interrupt(thread_t* t, pv_t* pv, stack_frame_t* f, int arg, va_t eip);
+void pv_inject_interrupt(thread_t* t,
+ pv_t* pv,
+ stack_frame_t* f,
+ int arg,
+ va_t eip);
typedef struct pv_frame_s {
reg_t cr2;
diff --git a/kern/inc/toad.h b/kern/inc/toad.h
new file mode 100644
index 0000000..f0dfbf5
--- /dev/null
+++ b/kern/inc/toad.h
@@ -0,0 +1,8 @@
+#ifndef _TOAD_H
+#define _TOAD_H
+
+extern
+
+void print_toad();
+
+#endif