git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: standard vga support (mode switching, framebuffer remapping)
[lunaix-os.git]
/
lunaix-os
/
kernel
/
device
/
input.c
diff --git
a/lunaix-os/kernel/device/input.c
b/lunaix-os/kernel/device/input.c
index 5ddf6a4ce3cc0067b58e2a31aa1630b3e33c9d94..3d974a7987d84f12cea8251d778163b303a473ce 100644
(file)
--- a/
lunaix-os/kernel/device/input.c
+++ b/
lunaix-os/kernel/device/input.c
@@
-1,5
+1,6
@@
#include <lunaix/clock.h>
#include <lunaix/input.h>
#include <lunaix/clock.h>
#include <lunaix/input.h>
+#include <lunaix/mm/page.h>
#include <lunaix/mm/valloc.h>
#include <lunaix/spike.h>
#include <lunaix/status.h>
#include <lunaix/mm/valloc.h>
#include <lunaix/spike.h>
#include <lunaix/status.h>
@@
-62,8
+63,14
@@
__input_dev_read(struct device* dev, void* buf, size_t offset, size_t len)
return sizeof(struct input_evt_pkt);
}
return sizeof(struct input_evt_pkt);
}
+int
+__input_dev_read_pg(struct device* dev, void* buf, size_t offset)
+{
+ return __input_dev_read(dev, buf, offset, PG_SIZE);
+}
+
struct input_device*
struct input_device*
-input_add_device(char* name_fmt, ...)
+input_add_device(
struct devclass* class,
char* name_fmt, ...)
{
assert(input_devcat);
{
assert(input_devcat);
@@
-73,11
+80,14
@@
input_add_device(char* name_fmt, ...)
va_list args;
va_start(args, name_fmt);
va_list args;
va_start(args, name_fmt);
- struct device* dev =
- device_add(input_devcat, idev, name_fmt, DEV_IFSEQ, args);
+ struct device* dev = device_allocseq(input_devcat, idev);
+
+ device_setname_vargs(dev, name_fmt, args);
+ device_register(dev, class, NULL);
idev->dev_if = dev;
idev->dev_if = dev;
- dev->read = __input_dev_read;
+ dev->ops.read = __input_dev_read;
+ dev->ops.read_page = __input_dev_read_pg;
va_end(args);
va_end(args);