diff options
author | 2016-05-23 11:31:12 +0000 | |
---|---|---|
committer | 2016-05-23 11:31:12 +0000 | |
commit | d47d3d239a9cc1d70bcb7573daa5180152906c8e (patch) | |
tree | 540fc9c088e59a896e3f9f085a9afeee644e4fb3 /sys | |
parent | Fix shutdown sequence. (diff) | |
download | wireguard-openbsd-d47d3d239a9cc1d70bcb7573daa5180152906c8e.tar.xz wireguard-openbsd-d47d3d239a9cc1d70bcb7573daa5180152906c8e.zip |
Get rid of usbd_get_device_strings() because we use it only once.
Return a char * rather using a void function for usbd_get_device_string()
ok patrick@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/usb/usb_subr.c | 44 | ||||
-rw-r--r-- | sys/dev/usb/usbdivar.h | 3 |
2 files changed, 21 insertions, 26 deletions
diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c index 9eb460993f2..4495a49483b 100644 --- a/sys/dev/usb/usb_subr.c +++ b/sys/dev/usb/usb_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usb_subr.c,v 1.122 2016/05/21 10:40:45 patrick Exp $ */ +/* $OpenBSD: usb_subr.c,v 1.123 2016/05/23 11:31:12 mpi Exp $ */ /* $NetBSD: usb_subr.c,v 1.103 2003/01/10 11:19:13 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */ @@ -63,7 +63,7 @@ usbd_status usbd_set_config(struct usbd_device *, int); void usbd_devinfo(struct usbd_device *, int, char *, size_t); void usbd_devinfo_vp(struct usbd_device *, char *, size_t, char *, size_t, int); -void usbd_get_device_string(struct usbd_device *, uByte, char **); +char *usbd_get_device_string(struct usbd_device *, uByte); char *usbd_get_string(struct usbd_device *, int, char *, size_t); int usbd_getnewaddr(struct usbd_bus *); int usbd_print(void *, const char *); @@ -212,30 +212,23 @@ usbd_trim_spaces(char *p) *e = 0; /* kill trailing spaces */ } -void -usbd_get_device_string(struct usbd_device *dev, uByte index, char **buf) +char * +usbd_get_device_string(struct usbd_device *dev, uByte index) { - char *b = malloc(USB_MAX_STRING_LEN, M_USB, M_NOWAIT); - if (b != NULL) { - if (usbd_get_string(dev, index, b, USB_MAX_STRING_LEN) != NULL) - usbd_trim_spaces(b); - else { - free(b, M_USB, USB_MAX_STRING_LEN); - b = NULL; - } + char *buf; + + buf = malloc(USB_MAX_STRING_LEN, M_USB, M_NOWAIT); + if (buf == NULL) + return (NULL); + + if (usbd_get_string(dev, index, buf, USB_MAX_STRING_LEN) != NULL) { + usbd_trim_spaces(buf); + } else { + free(buf, M_USB, USB_MAX_STRING_LEN); + buf = NULL; } - *buf = b; -} -void -usbd_get_device_strings(struct usbd_device *dev) -{ - usbd_get_device_string(dev, dev->ddesc.iManufacturer, - &dev->vendor); - usbd_get_device_string(dev, dev->ddesc.iProduct, - &dev->product); - usbd_get_device_string(dev, dev->ddesc.iSerialNumber, - &dev->serial); + return (buf); } void @@ -1220,7 +1213,10 @@ usbd_new_device(struct device *parent, struct usbd_bus *bus, int depth, DPRINTF(("usbd_new_device: new dev (addr %d), dev=%p, parent=%p\n", addr, dev, parent)); - usbd_get_device_strings(dev); + /* Cache some strings if possible. */ + dev->vendor = usbd_get_device_string(dev, dev->ddesc.iManufacturer); + dev->product = usbd_get_device_string(dev, dev->ddesc.iProduct); + dev->serial = usbd_get_device_string(dev, dev->ddesc.iSerialNumber); err = usbd_probe_and_attach(parent, dev, port, addr); if (err) { diff --git a/sys/dev/usb/usbdivar.h b/sys/dev/usb/usbdivar.h index 59c42f0dcda..683f2f4c52e 100644 --- a/sys/dev/usb/usbdivar.h +++ b/sys/dev/usb/usbdivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdivar.h,v 1.70 2016/05/18 18:28:58 patrick Exp $ */ +/* $OpenBSD: usbdivar.h,v 1.71 2016/05/23 11:31:12 mpi Exp $ */ /* $NetBSD: usbdivar.h,v 1.70 2002/07/11 21:14:36 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ @@ -233,7 +233,6 @@ void usbd_dump_pipe(struct usbd_pipe *); /* Routines from usb_subr.c */ int usbctlprint(void *, const char *); -void usbd_get_device_strings(struct usbd_device *); void usb_delay_ms(struct usbd_bus *, u_int); usbd_status usbd_port_disown_to_1_1(struct usbd_device *, int); int usbd_reset_port(struct usbd_device *, int); |