vfs: check userland buffers before reading them.
[haiku.git] / src / add-ons / kernel / bus_managers / ps2 / ps2_common.h
blobc32c7349f096c5bbec6afebd9782a1c077a16c10
1 /*
2 * Copyright 2004-2010 Haiku, Inc.
3 * Distributed under the terms of the MIT License.
5 * PS/2 bus manager
7 * Authors (in chronological order):
8 * Elad Lahav (elad@eldarshany.com)
9 * Stefano Ceccherini (burton666@libero.it)
10 * Axel Dörfler, axeld@pinc-software.de
11 * Marcus Overhagen <marcus@overhagen.de>
13 #ifndef __PS2_COMMON_H
14 #define __PS2_COMMON_H
17 #include <ISA.h>
18 #include <Drivers.h>
19 #include <KernelExport.h>
20 #include <OS.h>
22 #include "ps2_defs.h"
23 #include "ps2_dev.h"
26 #if 1
27 # define INFO(x...) dprintf(x)
28 #else
29 # define INFO(x...)
30 #endif
31 #define ERROR(x...) dprintf(x)
33 //#define TRACE_PS2
34 #ifdef TRACE_PS2
35 # define TRACE(x...) dprintf(x)
36 #else
37 # define TRACE(x...)
38 #endif
41 // global variables
42 extern isa_module_info *gIsa;
44 extern device_hooks gKeyboardDeviceHooks;
45 extern device_hooks gPointingDeviceHooks;
47 extern bool gActiveMultiplexingEnabled;
48 extern sem_id gControllerSem;
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
55 // prototypes from common.c
56 status_t ps2_init(void);
57 void ps2_uninit(void);
59 uint8 ps2_read_ctrl(void);
60 uint8 ps2_read_data(void);
61 void ps2_write_ctrl(uint8 ctrl);
62 void ps2_write_data(uint8 data);
63 status_t ps2_wait_read(void);
64 status_t ps2_wait_write(void);
66 void ps2_flush(void);
68 extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count,
69 uint8 *in, int in_count);
71 // prototypes from keyboard.c & mouse.c
72 extern status_t probe_keyboard(void);
74 #ifdef __cplusplus
76 #endif
79 #endif /* __PS2_COMMON_H */