cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16473 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -55,17 +55,6 @@ void ps2_flush(void);
|
|||||||
|
|
||||||
extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count);
|
extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count);
|
||||||
|
|
||||||
extern status_t ps2_keyboard_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count);
|
|
||||||
|
|
||||||
extern status_t ps2_get_command_byte(uint8 *byte);
|
|
||||||
extern status_t ps2_set_command_byte(uint8 byte);
|
|
||||||
|
|
||||||
extern void ps2_claim_result(uint8 *buffer, size_t bytes);
|
|
||||||
extern void ps2_unclaim_result(void);
|
|
||||||
extern status_t ps2_wait_for_result(void);
|
|
||||||
extern bool ps2_handle_result(uint8 data);
|
|
||||||
|
|
||||||
|
|
||||||
// prototypes from keyboard.c & mouse.c
|
// prototypes from keyboard.c & mouse.c
|
||||||
extern status_t probe_keyboard(void);
|
extern status_t probe_keyboard(void);
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,8 @@
|
|||||||
#define PS2_BITS_TRANSLATE_SCANCODES 0x40
|
#define PS2_BITS_TRANSLATE_SCANCODES 0x40
|
||||||
|
|
||||||
// data words
|
// data words
|
||||||
|
#define PS2_CMD_KEYBOARD_SET_LEDS 0xed
|
||||||
|
#define PS2_CMD_KEYBOARD_SET_TYPEMATIC 0xf3
|
||||||
#define PS2_CMD_ECHO 0xee
|
#define PS2_CMD_ECHO 0xee
|
||||||
#define PS2_CMD_TEST_PASSED 0xaa
|
#define PS2_CMD_TEST_PASSED 0xaa
|
||||||
#define PS2_CMD_GET_DEVICE_ID 0xf2
|
#define PS2_CMD_GET_DEVICE_ID 0xf2
|
||||||
|
|||||||
@@ -27,10 +27,6 @@ enum {
|
|||||||
} leds_status;
|
} leds_status;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PS2_DATA_SET_LEDS = 0xed,
|
|
||||||
PS2_ENABLE_KEYBOARD = 0xf4,
|
|
||||||
PS2_DISABLE_KEYBOARD = 0xf5,
|
|
||||||
|
|
||||||
EXTENDED_KEY = 0xe0,
|
EXTENDED_KEY = 0xe0,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -57,7 +53,7 @@ set_leds(led_info *ledInfo)
|
|||||||
if (ledInfo->caps_lock)
|
if (ledInfo->caps_lock)
|
||||||
leds |= LED_CAPS;
|
leds |= LED_CAPS;
|
||||||
|
|
||||||
return ps2_dev_command(&ps2_device[PS2_DEVICE_KEYB], PS2_DATA_SET_LEDS, &leds, 1, NULL, 0);
|
return ps2_dev_command(&ps2_device[PS2_DEVICE_KEYB], PS2_CMD_KEYBOARD_SET_LEDS, &leds, 1, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -89,7 +85,7 @@ set_typematic(int32 rate, bigtime_t delay)
|
|||||||
else
|
else
|
||||||
value |= 0 << 5;
|
value |= 0 << 5;
|
||||||
|
|
||||||
return ps2_dev_command(&ps2_device[PS2_DEVICE_KEYB], 0xf3, &value, 1, NULL, 0);
|
return ps2_dev_command(&ps2_device[PS2_DEVICE_KEYB], PS2_CMD_KEYBOARD_SET_TYPEMATIC, &value, 1, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -145,9 +141,8 @@ int32 keyboard_handle_int(uint8 data)
|
|||||||
|
|
||||||
|
|
||||||
static status_t
|
static status_t
|
||||||
read_keyboard_packet(at_kbd_io *userBuffer)
|
read_keyboard_packet(at_kbd_io *packet)
|
||||||
{
|
{
|
||||||
at_kbd_io packet;
|
|
||||||
status_t status;
|
status_t status;
|
||||||
|
|
||||||
TRACE(("read_keyboard_packet()\n"));
|
TRACE(("read_keyboard_packet()\n"));
|
||||||
@@ -156,14 +151,13 @@ read_keyboard_packet(at_kbd_io *userBuffer)
|
|||||||
if (status < B_OK)
|
if (status < B_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
if (packet_buffer_read(sKeyBuffer, (uint8 *)&packet, sizeof(at_kbd_io)) == 0) {
|
if (packet_buffer_read(sKeyBuffer, (uint8 *)packet, sizeof(*packet)) == 0) {
|
||||||
TRACE(("read_keyboard_packet(): error reading packet: %s\n", strerror(status)));
|
TRACE(("read_keyboard_packet(): error reading packet: %s\n", strerror(status)));
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE(("scancode: %x, keydown: %s\n", packet.scancode, packet.is_keydown ? "true" : "false"));
|
TRACE(("scancode: %x, keydown: %s\n", packet->scancode, packet->is_keydown ? "true" : "false"));
|
||||||
|
return B_OK;
|
||||||
return user_memcpy(userBuffer, &packet, sizeof(at_kbd_io));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -305,20 +299,23 @@ keyboard_ioctl(void *cookie, uint32 op, void *buffer, size_t length)
|
|||||||
TRACE(("keyboard ioctl()\n"));
|
TRACE(("keyboard ioctl()\n"));
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case KB_READ:
|
case KB_READ:
|
||||||
|
{
|
||||||
|
at_kbd_io packet;
|
||||||
TRACE(("KB_READ\n"));
|
TRACE(("KB_READ\n"));
|
||||||
return read_keyboard_packet((at_kbd_io *)buffer);
|
if (read_keyboard_packet(&packet) < B_OK)
|
||||||
|
return B_ERROR;
|
||||||
|
return user_memcpy(buffer, &packet, sizeof(packet));
|
||||||
|
}
|
||||||
|
|
||||||
case KB_SET_LEDS:
|
case KB_SET_LEDS:
|
||||||
{
|
{
|
||||||
led_info info;
|
led_info info;
|
||||||
|
TRACE(("KB_SET_LEDS\n"));
|
||||||
if (user_memcpy(&info, buffer, sizeof(led_info)) < B_OK)
|
if (user_memcpy(&info, buffer, sizeof(led_info)) < B_OK)
|
||||||
return B_BAD_ADDRESS;
|
return B_BAD_ADDRESS;
|
||||||
|
|
||||||
TRACE(("KB_SET_LEDS\n"));
|
|
||||||
return set_leds(&info);
|
return set_leds(&info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
case KB_SET_KEY_REPEATING:
|
case KB_SET_KEY_REPEATING:
|
||||||
{
|
{
|
||||||
// 0xFA (Set All Keys Typematic/Make/Break) - Keyboard responds with "ack" (0xFA).
|
// 0xFA (Set All Keys Typematic/Make/Break) - Keyboard responds with "ack" (0xFA).
|
||||||
|
|||||||
Reference in New Issue
Block a user