PatchworkOS  3984a1d
A non-POSIX operating system.
Loading...
Searching...
No Matches
ps2_mouse.h
Go to the documentation of this file.
1#pragma once
2
3#include "ps2.h"
4
6
7/**
8 * @brief PS/2 Mouse Driver.
9 * @defgroup module_drivers_ps2_mouse PS/2 Mouse Driver
10 * @ingroup modules_drivers_ps2
11 *
12 * @todo Implement scrolling and buttons 4 and 5.
13 *
14 * @{
15 */
16
17/**
18 * @brief PS/2 mouse packet flags.
19 */
31
32/**
33 * @brief PS/2 mouse packet structure.
34 *
35 * The packet is received one member at a time from top to bottom.
36 */
37typedef struct ps2_mouse_packet
38{
40 int16_t deltaX; ///< X-axis movement
41 int16_t deltaY; ///< Y-axis movement
43
44/**
45 * @brief PS/2 mouse packet index.
46 *
47 * Since the packet is received one byte at a time, this enum specifies which member is the next byte to be received.
48 */
55
56/**
57 * @brief PS/2 mouse private data.
58 * @struct ps2_mouse_t
59 *
60 */
68
69/**
70 * @brief Initialize a PS/2 mouse device.
71 *
72 * @param info Device information structure
73 * @return On success, `0`. On failure, `ERR`.
74 */
76
77/**
78 * @brief Register the IRQ handler for a PS/2 mouse device.
79 *
80 * @param info Device information structure.
81 * @return On success, `0`. On failure, `ERR` and `errno` is set.
82 */
84
85/**
86 * @brief Deinitialize a PS/2 mouse device.
87 *
88 * @param info Device information structure.
89 */
91
92/** @} */
int64_t y
Definition main.c:153
void ps2_mouse_deinit(ps2_device_info_t *info)
Deinitialize a PS/2 mouse device.
Definition ps2_mouse.c:160
ps2_mouse_packet_index_t
PS/2 mouse packet index.
Definition ps2_mouse.h:50
uint64_t ps2_mouse_irq_register(ps2_device_info_t *info)
Register the IRQ handler for a PS/2 mouse device.
Definition ps2_mouse.c:141
ps2_mouse_packet_flags_t
PS/2 mouse packet flags.
Definition ps2_mouse.h:21
uint64_t ps2_mouse_init(ps2_device_info_t *info)
Initialize a PS/2 mouse device.
Definition ps2_mouse.c:110
@ PS2_PACKET_DELTA_Y
Definition ps2_mouse.h:53
@ PS2_PACKET_DELTA_X
Definition ps2_mouse.h:52
@ PS2_PACKET_FLAGS
Definition ps2_mouse.h:51
@ PS2_PACKET_X_SIGN
Definition ps2_mouse.h:26
@ PS2_PACKET_X_OVERFLOW
Definition ps2_mouse.h:28
@ PS2_PACKET_Y_OVERFLOW
Definition ps2_mouse.h:29
@ PS2_PACKET_ALWAYS_ONE
Definition ps2_mouse.h:25
@ PS2_PACKET_BUTTON_RIGHT
Definition ps2_mouse.h:23
@ PS2_PACKET_BUTTON_MIDDLE
Definition ps2_mouse.h:24
@ PS2_PACKET_BUTTON_LEFT
Definition ps2_mouse.h:22
@ PS2_PACKET_Y_SIGN
Definition ps2_mouse.h:27
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__INT16_TYPE__ int16_t
Definition stdint.h:12
Mouse structure.
Definition mouse.h:71
PS/2 device information structure.
Definition ps2.h:202
PS/2 mouse packet structure.
Definition ps2_mouse.h:38
ps2_mouse_packet_flags_t flags
Packet flags.
Definition ps2_mouse.h:39
int16_t deltaY
Y-axis movement.
Definition ps2_mouse.h:41
int16_t deltaX
X-axis movement.
Definition ps2_mouse.h:40
PS/2 mouse private data.
Definition ps2_mouse.h:62
ps2_mouse_packet_t current
Definition ps2_mouse.h:65
mouse_t * mouse
Definition ps2_mouse.h:66
ps2_mouse_packet_index_t index
Definition ps2_mouse.h:63
ps2_mouse_packet_t prev
Definition ps2_mouse.h:64