GitOS
Loading...
Searching...
No Matches
PS2Mouse.hpp
Go to the documentation of this file.
1//
2// Created by Pawel Reich on 1/26/25.
3//
4#pragma once
5#include <stdint-gcc.h>
6#include <fs/pipe/PipeFS.hpp>
7
8class PS2Mouse
9{
10 public:
11 void handle_cycle();
12 void wait(uint8_t type) const;
13 void write(uint8_t byte) const;
14 uint8_t read() const;
15
16 static PS2Mouse* instance();
17
19 { // TODO: Make this smaller
20 int32_t x;
21 int32_t y;
22 unsigned char buttons;
23 };
24 uint32_t pipe_size = 128;
25
26 private:
27 PS2Mouse();
28 int mouse_cycle = 0;
29 char mouse_byte[3] = { 0 };
30 PipeFS* pipe;
31
32 const int MOUSE_IRQ = 12;
33 const int MOUSE_PORT = 0x60;
34 const int MOUSE_STATUS = 0x64;
35 const int MOUSE_ABIT = 0x02; // Input buffer status
36 const int MOUSE_BBIT = 0x01; // Output buffer status
37 const int MOUSE_WRITE = 0xD4;
38 const int MOUSE_F_BIT = 0x20; // Check mouse data validity
39 const int MOUSE_V_BIT = 0x08; // Packet validity
40
41 const int TIMEOUT = 100000;
42};
uint32_t type
Definition GitBoot.hpp:2
void write(uint8_t byte) const
Definition PS2Mouse.cpp:157
static PS2Mouse * instance()
Definition PS2Mouse.cpp:173
uint8_t read() const
Definition PS2Mouse.cpp:167
void handle_cycle()
Definition PS2Mouse.cpp:24
uint32_t pipe_size
Definition PS2Mouse.hpp:24
void wait(uint8_t type) const
Definition PS2Mouse.cpp:130
Definition PipeFS.hpp:15
Definition PS2Mouse.hpp:19
unsigned char buttons
Definition PS2Mouse.hpp:22
int32_t y
Definition PS2Mouse.hpp:21
int32_t x
Definition PS2Mouse.hpp:20