PatchworkOS  19e446b
A non-POSIX operating system.
Loading...
Searching...
No Matches
mouse.c File Reference
#include <kernel/drivers/abstract/mouse.h>
#include <kernel/fs/devfs.h>
#include <kernel/fs/file.h>
#include <kernel/fs/vfs.h>
#include <kernel/log/log.h>
#include <kernel/sched/clock.h>
#include <kernel/sched/timer.h>
#include <kernel/sync/lock.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/math.h>
Include dependency graph for mouse.c:

Go to the source code of this file.

Functions

static size_t mouse_name_read (file_t *file, void *buffer, size_t count, size_t *offset)
 
static uint64_t mouse_events_open (file_t *file)
 
static void mouse_events_close (file_t *file)
 
static size_t mouse_events_read (file_t *file, void *buffer, size_t count, size_t *offset)
 
static wait_queue_tmouse_events_poll (file_t *file, poll_events_t *revents)
 
static void mouse_dir_cleanup (vnode_t *vnode)
 
mouse_tmouse_new (const char *name)
 Allocate and initialize a mouse structure.
 
void mouse_free (mouse_t *mouse)
 Free and deinitialize a mouse structure.
 
static void mouse_broadcast (mouse_t *mouse, const char *string, size_t length)
 
void mouse_press (mouse_t *mouse, uint32_t button)
 Push a mouse button press event to the mouse event queue.
 
void mouse_release (mouse_t *mouse, uint32_t button)
 Push a mouse button release event to the mouse event queue.
 
void mouse_move_x (mouse_t *mouse, int64_t delta)
 Push a mouse movement in the X direction to the mouse event queue.
 
void mouse_move_y (mouse_t *mouse, int64_t delta)
 Push a mouse movement in the Y direction to the mouse event queue.
 
void mouse_scroll (mouse_t *mouse, int64_t delta)
 Push a mouse scroll event to the mouse event queue.
 

Variables

static dentry_tdir = NULL
 
static atomic_uint64_t newId = ATOMIC_VAR_INIT(0)
 
static file_ops_t nameOps
 
static file_ops_t eventsOps
 
static vnode_ops_t dirVnodeOps
 

Function Documentation

◆ mouse_name_read()

static size_t mouse_name_read ( file_t file,
void *  buffer,
size_t  count,
size_t offset 
)
static

Definition at line 19 of file mouse.c.

Here is the call graph for this function:

◆ mouse_events_open()

static uint64_t mouse_events_open ( file_t file)
static

Definition at line 32 of file mouse.c.

Here is the call graph for this function:

◆ mouse_events_close()

static void mouse_events_close ( file_t file)
static

Definition at line 54 of file mouse.c.

Here is the call graph for this function:

◆ mouse_events_read()

static size_t mouse_events_read ( file_t file,
void *  buffer,
size_t  count,
size_t offset 
)
static

Definition at line 72 of file mouse.c.

Here is the call graph for this function:

◆ mouse_events_poll()

static wait_queue_t * mouse_events_poll ( file_t file,
poll_events_t revents 
)
static

Definition at line 105 of file mouse.c.

Here is the call graph for this function:

◆ mouse_dir_cleanup()

static void mouse_dir_cleanup ( vnode_t vnode)
static

Definition at line 128 of file mouse.c.

Here is the call graph for this function:

◆ mouse_broadcast()

static void mouse_broadcast ( mouse_t mouse,
const char *  string,
size_t  length 
)
static

Definition at line 230 of file mouse.c.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ dir

dentry_t* dir = NULL
static

Definition at line 15 of file mouse.c.

◆ newId

atomic_uint64_t newId = ATOMIC_VAR_INIT(0)
static

Definition at line 17 of file mouse.c.

◆ nameOps

file_ops_t nameOps
static
Initial value:
= {
.read = mouse_name_read,
}
static size_t mouse_name_read(file_t *file, void *buffer, size_t count, size_t *offset)
Definition mouse.c:19

Definition at line 28 of file mouse.c.

◆ eventsOps

file_ops_t eventsOps
static
Initial value:
= {
}
static uint64_t mouse_events_open(file_t *file)
Definition mouse.c:32
static void mouse_events_close(file_t *file)
Definition mouse.c:54
static wait_queue_t * mouse_events_poll(file_t *file, poll_events_t *revents)
Definition mouse.c:105
static size_t mouse_events_read(file_t *file, void *buffer, size_t count, size_t *offset)
Definition mouse.c:72

Definition at line 121 of file mouse.c.

◆ dirVnodeOps

vnode_ops_t dirVnodeOps
static
Initial value:
= {
.cleanup = mouse_dir_cleanup,
}
static void mouse_dir_cleanup(vnode_t *vnode)
Definition mouse.c:128

Definition at line 140 of file mouse.c.