diff --git a/src/add-ons/kernel/drivers/input/usb_hid/DeviceList.cpp b/src/add-ons/kernel/drivers/input/usb_hid/DeviceList.cpp index 1e6058473a..5444fd92c6 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/DeviceList.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/DeviceList.cpp @@ -4,7 +4,7 @@ Distributed under the terms of the MIT license. */ #include "DeviceList.h" -#include +#include #include #include #include diff --git a/src/add-ons/kernel/drivers/input/usb_hid/Driver.h b/src/add-ons/kernel/drivers/input/usb_hid/Driver.h index a362e699db..3b7528e1de 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/Driver.h +++ b/src/add-ons/kernel/drivers/input/usb_hid/Driver.h @@ -10,9 +10,9 @@ #include #include #include +#include #include "DeviceList.h" -#include "kernel_cpp.h" #define DRIVER_NAME "usb_hid" diff --git a/src/add-ons/kernel/drivers/input/usb_hid/HIDDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/HIDDevice.cpp index 092c886b0a..32ad323471 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/HIDDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/HIDDevice.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include diff --git a/src/add-ons/kernel/drivers/input/usb_hid/HIDReport.cpp b/src/add-ons/kernel/drivers/input/usb_hid/HIDReport.cpp index 950a70377d..cf8791f4f0 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/HIDReport.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/HIDReport.cpp @@ -11,6 +11,7 @@ #include #include +#include HIDReport::HIDReport(HIDParser *parser, uint8 type, uint8 id) @@ -217,6 +218,7 @@ HIDReport::WaitForReport(bigtime_t timeout) fConditionVariable.Add(&conditionVariableEntry); status_t result = fParser->Device()->MaybeScheduleTransfer(); if (result != B_OK) { + TRACE_ALWAYS("scheduling transfer failed\n"); conditionVariableEntry.Wait(B_RELATIVE_TIMEOUT, 0); return result; } diff --git a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp index f7971e637f..69dc3a227c 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp @@ -3,6 +3,8 @@ * Distributed under the terms of the MIT license. */ +#include +#include #include #include diff --git a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp index 0efbff3f35..2f12407309 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp @@ -11,6 +11,7 @@ #include "HIDReport.h" #include "HIDReportItem.h" +#include #include #include @@ -91,7 +92,12 @@ MouseDevice::Control(uint32 op, void *buffer, size_t length) return RingBufferRead(buffer, sizeof(mouse_movement)); case MS_NUM_EVENTS: - return RingBufferReadable() / sizeof(mouse_movement); + { + int32 count = RingBufferReadable() / sizeof(mouse_movement); + if (count == 0 && fReport->Device()->IsRemoved()) + return B_DEV_NOT_READY; + return count; + } case MS_SET_CLICKSPEED: #ifdef __HAIKU__ @@ -113,7 +119,7 @@ MouseDevice::_ReadReport() if (result != B_OK) { if (fReport->Device()->IsRemoved()) { TRACE("device has been removed\n"); - return B_ERROR; + return B_DEV_NOT_READY; } if (result != B_INTERRUPTED) { diff --git a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.h b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.h index 740b0458a0..f66c10025d 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.h +++ b/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.h @@ -7,6 +7,10 @@ #include +#ifndef B_MAX_MOUSE_BUTTONS +#define B_MAX_MOUSE_BUTTONS 8 +#endif + #include "ProtocolHandler.h" class HIDReportItem; diff --git a/src/add-ons/kernel/drivers/input/usb_hid/ProtocolHandler.cpp b/src/add-ons/kernel/drivers/input/usb_hid/ProtocolHandler.cpp index 96303f2aa5..ce7382b6f4 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/ProtocolHandler.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/ProtocolHandler.cpp @@ -3,6 +3,7 @@ * Distributed under the terms of the MIT License. */ +#include #include #include "Driver.h" diff --git a/src/add-ons/kernel/drivers/input/usb_hid/kernel_cpp.h b/src/add-ons/kernel/drivers/input/usb_hid/kernel_cpp.h deleted file mode 100644 index e69de29bb2..0000000000