summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/comus/drivers/ps2.h22
-rw-r--r--kernel/include/comus/input.h36
-rw-r--r--kernel/include/comus/keycodes.h5
-rw-r--r--kernel/include/comus/limits.h4
4 files changed, 40 insertions, 27 deletions
diff --git a/kernel/include/comus/drivers/ps2.h b/kernel/include/comus/drivers/ps2.h
index 6e594e9..7634e5f 100644
--- a/kernel/include/comus/drivers/ps2.h
+++ b/kernel/include/comus/drivers/ps2.h
@@ -9,18 +9,6 @@
#ifndef PS2_H_
#define PS2_H_
-#include <comus/keycodes.h>
-#include <stdbool.h>
-
-struct mouse_event {
- bool updated;
- bool lmb;
- bool rmb;
- bool mmb;
- int relx;
- int rely;
-};
-
/**
* Initalize the ps2 controller
*/
@@ -32,18 +20,8 @@ int ps2_init(void);
void ps2kb_recv(void);
/**
- * Return last read keycode
- */
-struct keycode ps2kb_get(void);
-
-/**
* Recieve input from ps2 mouse during interrupt
*/
void ps2mouse_recv(void);
-/**
- * Return last read mouse event
- */
-struct mouse_event ps2mouse_get(void);
-
#endif /* ps2.h */
diff --git a/kernel/include/comus/input.h b/kernel/include/comus/input.h
new file mode 100644
index 0000000..b2b3053
--- /dev/null
+++ b/kernel/include/comus/input.h
@@ -0,0 +1,36 @@
+/**
+ * @file input.h
+ */
+
+#ifndef INPUT_H_
+#define INPUT_H_
+
+#include <comus/keycodes.h>
+#include <comus/limits.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+struct keycode {
+ char key;
+ char flags;
+};
+
+struct mouse_event {
+ bool updated;
+ bool lmb;
+ bool rmb;
+ bool mmb;
+ int relx;
+ int rely;
+};
+
+void keycode_push(struct keycode *ev);
+int keycode_pop(struct keycode *ev);
+size_t keycode_len(void);
+char keycode_to_char(struct keycode *ev);
+
+void mouse_event_push(struct mouse_event *ev);
+int mouse_event_pop(struct mouse_event *ev);
+size_t mouse_event_len(void);
+
+#endif /* input.h */
diff --git a/kernel/include/comus/keycodes.h b/kernel/include/comus/keycodes.h
index 8930937..ebf296a 100644
--- a/kernel/include/comus/keycodes.h
+++ b/kernel/include/comus/keycodes.h
@@ -9,11 +9,6 @@
#ifndef KEYCODES_H_
#define KEYCODES_H_
-struct keycode {
- char key;
- char flags;
-};
-
#define KC_FLAG_KEY_DOWN 0x01
#define KC_FLAG_KEY_UP 0x02
#define KC_FLAG_ERROR 0x04
diff --git a/kernel/include/comus/limits.h b/kernel/include/comus/limits.h
index cadfc93..732873e 100644
--- a/kernel/include/comus/limits.h
+++ b/kernel/include/comus/limits.h
@@ -25,6 +25,10 @@
/// elf limits
#define N_ELF_SEGMENTS 16
+/// input buffer
+#define N_KEYCODE 64
+#define N_MOUSEEV 64
+
/// length of terminal buffer
#define TERM_MAX_WIDTH 1920
#define TERM_MAX_HEIGHT 1080