cleanup of user memory handling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16924 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -316,9 +316,10 @@ keyboard_ioctl(void *cookie, uint32 op, void *buffer, size_t length)
|
|||||||
case KB_READ:
|
case KB_READ:
|
||||||
{
|
{
|
||||||
at_kbd_io packet;
|
at_kbd_io packet;
|
||||||
|
status_t status;
|
||||||
TRACE(("KB_READ\n"));
|
TRACE(("KB_READ\n"));
|
||||||
if (read_keyboard_packet(&packet) < B_OK)
|
if ((status = read_keyboard_packet(&packet)) < B_OK)
|
||||||
return B_ERROR;
|
return status;
|
||||||
return user_memcpy(buffer, &packet, sizeof(packet));
|
return user_memcpy(buffer, &packet, sizeof(packet));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -174,10 +174,9 @@ ps2_packet_to_movement(mouse_cookie *cookie, uint8 packet[], mouse_movement *pos
|
|||||||
/** Read a mouse event from the mouse events chain buffer.
|
/** Read a mouse event from the mouse events chain buffer.
|
||||||
*/
|
*/
|
||||||
static status_t
|
static status_t
|
||||||
mouse_read_event(mouse_cookie *cookie, mouse_movement *userMovement)
|
mouse_read_event(mouse_cookie *cookie, mouse_movement *movement)
|
||||||
{
|
{
|
||||||
uint8 packet[PS2_MAX_PACKET_SIZE];
|
uint8 packet[PS2_MAX_PACKET_SIZE];
|
||||||
mouse_movement movement;
|
|
||||||
status_t status;
|
status_t status;
|
||||||
|
|
||||||
TRACE(("mouse_read_event()\n"));
|
TRACE(("mouse_read_event()\n"));
|
||||||
@@ -198,9 +197,8 @@ mouse_read_event(mouse_cookie *cookie, mouse_movement *userMovement)
|
|||||||
if (!(packet[0] & 8))
|
if (!(packet[0] & 8))
|
||||||
panic("ps2_hid: got broken data from packet_buffer_read\n");
|
panic("ps2_hid: got broken data from packet_buffer_read\n");
|
||||||
|
|
||||||
ps2_packet_to_movement(cookie, packet, &movement);
|
ps2_packet_to_movement(cookie, packet, movement);
|
||||||
|
return B_OK;
|
||||||
return user_memcpy(userMovement, &movement, sizeof(mouse_movement));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -447,8 +445,14 @@ mouse_ioctl(void *_cookie, uint32 op, void *buffer, size_t length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
case MS_READ:
|
case MS_READ:
|
||||||
|
{
|
||||||
|
mouse_movement movement;
|
||||||
|
status_t status;
|
||||||
TRACE(("MS_READ\n"));
|
TRACE(("MS_READ\n"));
|
||||||
return mouse_read_event(cookie, (mouse_movement *)buffer);
|
if ((status = mouse_read_event(cookie, &movement)) < B_OK)
|
||||||
|
return status;
|
||||||
|
return user_memcpy(buffer, &movement, sizeof(movement));
|
||||||
|
}
|
||||||
|
|
||||||
case MS_SET_TYPE:
|
case MS_SET_TYPE:
|
||||||
TRACE(("MS_SET_TYPE not implemented\n"));
|
TRACE(("MS_SET_TYPE not implemented\n"));
|
||||||
|
|||||||
Reference in New Issue
Block a user