aboutsummaryrefslogtreecommitdiff
path: root/jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2025-12-24 19:49:57 -0500
committerMitchell Riedstra <mitch@riedstra.dev>2025-12-24 19:49:57 -0500
commit939ac4319cb047a37ba46f84eff81948063f6954 (patch)
tree5112cf8aad73125a13f5b52c0290a7f26f948b52 /jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h
parent3a1b5ba15b89c907f9bf66a0761ffdd73b32208b (diff)
downloadunixv4-939ac4319cb047a37ba46f84eff81948063f6954.tar.gz
unixv4-939ac4319cb047a37ba46f84eff81948063f6954.tar.xz
Add working webpage for unix v4
Diffstat (limited to 'jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h')
-rw-r--r--jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h b/jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h
new file mode 100644
index 0000000..47bcfe9
--- /dev/null
+++ b/jslinux-2019-12-21/tinyemu-2019-12-21/ps2.h
@@ -0,0 +1,34 @@
+/* ps2.c */
+typedef struct PS2MouseState PS2MouseState;
+typedef struct PS2KbdState PS2KbdState;
+
+PS2KbdState *ps2_kbd_init(void (*update_irq)(void *, int), void *update_arg);
+PS2MouseState *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg);
+void ps2_write_mouse(void *, int val);
+void ps2_write_keyboard(void *, int val);
+uint32_t ps2_read_data(void *);
+void ps2_queue(void *, int b);
+void ps2_keyboard_set_translation(void *opaque, int mode);
+
+void ps2_put_keycode(PS2KbdState *s, BOOL is_down, int keycode);
+void ps2_mouse_event(PS2MouseState *s,
+ int dx, int dy, int dz, int buttons_state);
+
+/* vmmouse.c */
+typedef struct VMMouseState VMMouseState;
+
+VMMouseState *vmmouse_init(PS2MouseState *ps2_mouse);
+BOOL vmmouse_is_absolute(VMMouseState *s);
+void vmmouse_send_mouse_event(VMMouseState *s, int x, int y, int dz,
+ int buttons);
+void vmmouse_handler(VMMouseState *s, uint32_t *regs);
+
+/* pckbd.c */
+
+typedef struct KBDState KBDState;
+
+KBDState *i8042_init(PS2KbdState **pkbd,
+ PS2MouseState **pmouse,
+ PhysMemoryMap *port_map,
+ IRQSignal *kbd_irq, IRQSignal *mouse_irq,
+ uint32_t io_base);