usb: Simplify usb_get_port_path() and fix writing into a const char *.
This commit is contained in:
parent
d099d88021
commit
76bc5f6376
|
@ -677,7 +677,7 @@ SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb);
|
|||
SR_PRIV int usb_source_add(struct sr_session *session, struct sr_context *ctx,
|
||||
int timeout, sr_receive_data_callback cb, void *cb_data);
|
||||
SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx);
|
||||
SR_PRIV int usb_get_port_path(libusb_device *dev, const char *path, int path_len);
|
||||
SR_PRIV int usb_get_port_path(libusb_device *dev, char *path, int path_len);
|
||||
#endif
|
||||
|
||||
/*--- hardware/common/scpi.c ------------------------------------------------*/
|
||||
|
|
25
src/usb.c
25
src/usb.c
|
@ -271,27 +271,18 @@ SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx
|
|||
return SR_OK;
|
||||
}
|
||||
|
||||
SR_PRIV int usb_get_port_path(libusb_device *dev, const char *path, int path_len)
|
||||
SR_PRIV int usb_get_port_path(libusb_device *dev, char *path, int path_len)
|
||||
{
|
||||
gchar s[64];
|
||||
gchar tmp_s[8];
|
||||
uint8_t port_numbers[32];
|
||||
int i;
|
||||
uint8_t port_numbers[8];
|
||||
int i, n, len;
|
||||
|
||||
memset(port_numbers, 0, sizeof(port_numbers));
|
||||
libusb_get_port_numbers(dev, port_numbers, sizeof(port_numbers));
|
||||
n = libusb_get_port_numbers(dev, port_numbers, sizeof(port_numbers));
|
||||
|
||||
g_snprintf((gchar*)&s, sizeof(s), "usb/%d-%d",
|
||||
libusb_get_bus_number(dev), port_numbers[0]);
|
||||
len = snprintf(path, path_len, "usb/%d-%d",
|
||||
libusb_get_bus_number(dev), port_numbers[0]);
|
||||
|
||||
i = 1;
|
||||
while (port_numbers[i]) {
|
||||
g_snprintf(tmp_s, sizeof(tmp_s), ".%d", port_numbers[i]);
|
||||
g_strlcat((gchar*)&s, tmp_s, sizeof(s));
|
||||
i++;
|
||||
}
|
||||
|
||||
g_strlcpy((gchar*)path, s, path_len);
|
||||
for (i = 1; i < n; i++)
|
||||
len += snprintf(path+len, path_len-len, ".%d", port_numbers[i]);
|
||||
|
||||
return SR_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue