* renamed remove_device() to delete_device()

* handle one more allocation failure in device_added
* improved style consistency in a few places


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23409 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2008-01-11 18:14:51 +00:00
parent a7ec9c1d59
commit fc404a9f7e
2 changed files with 51 additions and 42 deletions
+16 -7
View File
@@ -281,6 +281,9 @@ static const char *sKeyboardBaseName = "input/keyboard/usb/";
static const char *sMouseBaseName = "input/mouse/usb/"; static const char *sMouseBaseName = "input/mouse/usb/";
// #pragma mark - support functions
hid_device_info * hid_device_info *
create_device(const usb_device *dev, const usb_interface_info *ii, create_device(const usb_device *dev, const usb_interface_info *ii,
uint16 ifno, bool isKeyboard) uint16 ifno, bool isKeyboard)
@@ -364,7 +367,7 @@ create_device(const usb_device *dev, const usb_interface_info *ii,
void void
remove_device(hid_device_info *device) delete_device(hid_device_info *device)
{ {
assert(device != NULL); assert(device != NULL);
@@ -575,7 +578,7 @@ interpret_mouse_buffer(hid_device_info *device)
/*! /*!
callback: got a report, issue next request callback: got a report, unblock input server thread in hid_device_control()
*/ */
static void static void
usb_callback(void *cookie, status_t busStatus, usb_callback(void *cookie, status_t busStatus,
@@ -592,6 +595,7 @@ usb_callback(void *cookie, status_t busStatus,
release_sem_etc(device->sem_cb, 1, B_DO_NOT_RESCHEDULE); release_sem_etc(device->sem_cb, 1, B_DO_NOT_RESCHEDULE);
} }
static status_t static status_t
schedule_interrupt_transfer(hid_device_info* device) schedule_interrupt_transfer(hid_device_info* device)
{ {
@@ -604,6 +608,7 @@ schedule_interrupt_transfer(hid_device_info* device)
return status; return status;
} }
static status_t static status_t
handle_interrupt_transfer(hid_device_info* device) handle_interrupt_transfer(hid_device_info* device)
{ {
@@ -614,6 +619,7 @@ handle_interrupt_transfer(hid_device_info* device)
DPRINTF_ERR((MY_ID "bus status %d\n", (int)device->bus_status)); DPRINTF_ERR((MY_ID "bus status %d\n", (int)device->bus_status));
if (status == B_CANCELED) { if (status == B_CANCELED) {
/* cancelled: device is unplugged */ /* cancelled: device is unplugged */
device->active = false;
return status; return status;
} }
@@ -713,6 +719,9 @@ hid_device_added(const usb_device *dev, void **cookie)
desc_len = sizeof(usb_hid_descriptor); desc_len = sizeof(usb_hid_descriptor);
hid_desc = malloc(desc_len); hid_desc = malloc(desc_len);
if (hid_desc == NULL)
return B_NO_MEMORY;
status = usb->send_request(dev, status = usb->send_request(dev,
USB_REQTYPE_INTERFACE_IN | USB_REQTYPE_STANDARD, USB_REQTYPE_INTERFACE_IN | USB_REQTYPE_STANDARD,
USB_REQUEST_GET_DESCRIPTOR, USB_REQUEST_GET_DESCRIPTOR,
@@ -781,7 +790,7 @@ hid_device_added(const usb_device *dev, void **cookie)
num_items = desc_len; /* XXX */ num_items = desc_len; /* XXX */
items = malloc(sizeof(decomp_item) * num_items); items = malloc(sizeof(decomp_item) * num_items);
if (items == NULL) { if (items == NULL) {
remove_device(device); delete_device(device);
free(rep_desc); free(rep_desc);
return B_NO_MEMORY; return B_NO_MEMORY;
} }
@@ -794,7 +803,7 @@ hid_device_added(const usb_device *dev, void **cookie)
device->num_insns = num_items; /* XXX */ device->num_insns = num_items; /* XXX */
device->insns = malloc(sizeof (report_insn) * device->num_insns); device->insns = malloc(sizeof (report_insn) * device->num_insns);
if (device->insns == NULL) { if (device->insns == NULL) {
remove_device(device); delete_device(device);
free(items); free(items);
return B_NO_MEMORY; return B_NO_MEMORY;
} }
@@ -806,7 +815,7 @@ hid_device_added(const usb_device *dev, void **cookie)
device->insns = realloc(device->insns, sizeof (report_insn) device->insns = realloc(device->insns, sizeof (report_insn)
* device->num_insns); * device->num_insns);
if (device->insns == NULL) { if (device->insns == NULL) {
remove_device(device); delete_device(device);
return B_NO_MEMORY; return B_NO_MEMORY;
} }
@@ -863,7 +872,7 @@ hid_device_removed(void *cookie)
if (device->open == 0) { if (device->open == 0) {
if (device->insns != NULL) if (device->insns != NULL)
free(device->insns); free(device->insns);
remove_device(device); delete_device(device);
} else { } else {
DPRINTF_INFO((MY_ID "%s still open\n", device->name)); DPRINTF_INFO((MY_ID "%s still open\n", device->name));
device->active = false; device->active = false;
@@ -1069,7 +1078,7 @@ hid_device_free(driver_cookie *cookie)
DPRINTF_INFO((MY_ID "removed %s\n", device->name)); DPRINTF_INFO((MY_ID "removed %s\n", device->name));
if (device->insns != NULL) if (device->insns != NULL)
free(device->insns); free(device->insns);
remove_device (device); delete_device(device);
} }
return B_OK; return B_OK;
@@ -103,9 +103,9 @@ extern const char *my_driver_name;
extern const char* keyboard_base_name; extern const char* keyboard_base_name;
extern const char* mouse_base_name; extern const char* mouse_base_name;
hid_device_info *create_device(const usb_device *dev, const usb_interface_info *ii, hid_device_info* create_device(const usb_device *dev,
uint16 ifno, bool is_keyboard); const usb_interface_info *ii, uint16 ifno, bool is_keyboard);
void remove_device(hid_device_info *device); void delete_device(hid_device_info *device);
/* devlist.c */ /* devlist.c */