aboutsummaryrefslogtreecommitdiff
path: root/libusb/os/sunos_usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'libusb/os/sunos_usb.c')
-rw-r--r--libusb/os/sunos_usb.c218
1 files changed, 109 insertions, 109 deletions
diff --git a/libusb/os/sunos_usb.c b/libusb/os/sunos_usb.c
index 46866fb..28b167f 100644
--- a/libusb/os/sunos_usb.c
+++ b/libusb/os/sunos_usb.c
@@ -90,7 +90,7 @@ static int sunos_get_link(di_devlink_t devlink, void *arg)
char *content = (char *)di_devlink_content(devlink);
char *start = strstr(content, "/devices/");
start += strlen("/devices");
- usbi_dbg("%s", start);
+ usbi_dbg(NULL, "%s", start);
/* line content must have minor node */
if (start == NULL ||
@@ -101,7 +101,7 @@ static int sunos_get_link(di_devlink_t devlink, void *arg)
p = di_devlink_path(devlink);
q = strrchr(p, '/');
- usbi_dbg("%s", q);
+ usbi_dbg(NULL, "%s", q);
*(larg->linkpp) = strndup(p, strlen(p) - strlen(q));
@@ -118,7 +118,7 @@ static int sunos_physpath_to_devlink(
*link_path = NULL;
larg.linkpp = link_path;
if ((hdl = di_devlink_init(NULL, 0)) == NULL) {
- usbi_dbg("di_devlink_init failure");
+ usbi_dbg(NULL, "di_devlink_init failure");
return (-1);
}
@@ -131,7 +131,7 @@ static int sunos_physpath_to_devlink(
(void) di_devlink_fini(&hdl);
if (*link_path == NULL) {
- usbi_dbg("there is no devlink for this path");
+ usbi_dbg(NULL, "there is no devlink for this path");
return (-1);
}
@@ -167,13 +167,13 @@ sunos_usb_ioctl(struct libusb_device *dev, int cmd)
return (-1);
}
end++;
- usbi_dbg("unitaddr: %s", end);
+ usbi_dbg(DEVICE_CTX(dev), "unitaddr: %s", end);
nvlist_alloc(&nvlist, NV_UNIQUE_NAME_TYPE, KM_NOSLEEP);
nvlist_add_int32(nvlist, "port", dev->port_number);
//find the hub path
snprintf(path_arg, sizeof(path_arg), "/devices%s:hubd", hubpath);
- usbi_dbg("ioctl hub path: %s", path_arg);
+ usbi_dbg(DEVICE_CTX(dev), "ioctl hub path: %s", path_arg);
fd = open(path_arg, O_RDONLY);
if (fd < 0) {
@@ -193,15 +193,15 @@ sunos_usb_ioctl(struct libusb_device *dev, int cmd)
iocdata.c_nodename = (char *)"hub";
iocdata.c_unitaddr = end;
iocdata.cpyout_buf = &devctl_ap_state;
- usbi_dbg("%p, %" PRIuPTR, iocdata.nvl_user, iocdata.nvl_usersz);
+ usbi_dbg(DEVICE_CTX(dev), "%p, %" PRIuPTR, iocdata.nvl_user, iocdata.nvl_usersz);
errno = 0;
if (ioctl(fd, DEVCTL_AP_GETSTATE, &iocdata) == -1) {
usbi_err(DEVICE_CTX(dev), "ioctl failed: fd %d, cmd %x, errno %d (%s)",
fd, DEVCTL_AP_GETSTATE, errno, strerror(errno));
} else {
- usbi_dbg("dev rstate: %d", devctl_ap_state.ap_rstate);
- usbi_dbg("dev ostate: %d", devctl_ap_state.ap_ostate);
+ usbi_dbg(DEVICE_CTX(dev), "dev rstate: %d", devctl_ap_state.ap_rstate);
+ usbi_dbg(DEVICE_CTX(dev), "dev ostate: %d", devctl_ap_state.ap_ostate);
}
errno = 0;
@@ -227,7 +227,7 @@ sunos_kernel_driver_active(struct libusb_device_handle *dev_handle, uint8_t inte
UNUSED(interface);
- usbi_dbg("%s", dpriv->ugenpath);
+ usbi_dbg(HANDLE_CTX(dev_handle), "%s", dpriv->ugenpath);
return (dpriv->ugenpath == NULL);
}
@@ -236,7 +236,7 @@ sunos_kernel_driver_active(struct libusb_device_handle *dev_handle, uint8_t inte
* Private functions
*/
static int _errno_to_libusb(int);
-static int sunos_usb_get_status(int fd);
+static int sunos_usb_get_status(struct libusb_context *ctx, int fd);
static string_list_t *
sunos_new_string_list(void)
@@ -358,7 +358,7 @@ sunos_detach_kernel_driver(struct libusb_device_handle *dev_handle,
dpriv = usbi_get_device_priv(dev_handle->dev);
snprintf(path_arg, sizeof(path_arg), "\'\"%s\"\'", dpriv->phypath);
- usbi_dbg("%s", path_arg);
+ usbi_dbg(HANDLE_CTX(dev_handle), "%s", path_arg);
list = sunos_new_string_list();
if (list == NULL)
@@ -418,7 +418,7 @@ sunos_attach_kernel_driver(struct libusb_device_handle *dev_handle,
dpriv = usbi_get_device_priv(dev_handle->dev);
snprintf(path_arg, sizeof(path_arg), "\'\"%s\"\'", dpriv->phypath);
- usbi_dbg("%s", path_arg);
+ usbi_dbg(HANDLE_CTX(dev_handle), "%s", path_arg);
list = sunos_new_string_list();
if (list == NULL)
@@ -474,7 +474,7 @@ sunos_fill_in_dev_info(di_node_t node, struct libusb_device *dev)
proplen = di_prop_lookup_bytes(DDI_DEV_T_ANY, node,
"usb-raw-cfg-descriptors", &rdata);
if (proplen <= 0) {
- usbi_dbg("can't find raw config descriptors");
+ usbi_dbg(DEVICE_CTX(dev), "can't find raw config descriptors");
return (LIBUSB_ERROR_IO);
}
@@ -501,7 +501,7 @@ sunos_fill_in_dev_info(di_node_t node, struct libusb_device *dev)
snprintf(match_str, sizeof(match_str), "^usb/%x.%x",
dev->device_descriptor.idVendor,
dev->device_descriptor.idProduct);
- usbi_dbg("match is %s", match_str);
+ usbi_dbg(DEVICE_CTX(dev), "match is %s", match_str);
sunos_physpath_to_devlink(dpriv->phypath, match_str, &dpriv->ugenpath);
di_devfs_path_free(phypath);
@@ -514,7 +514,7 @@ sunos_fill_in_dev_info(di_node_t node, struct libusb_device *dev)
/* address */
n = di_prop_lookup_ints(DDI_DEV_T_ANY, node, "assigned-address", &addr);
if (n != 1 || *addr == 0) {
- usbi_dbg("can't get address");
+ usbi_dbg(DEVICE_CTX(dev), "can't get address");
} else {
dev->device_address = *addr;
}
@@ -530,7 +530,7 @@ sunos_fill_in_dev_info(di_node_t node, struct libusb_device *dev)
dev->speed = LIBUSB_SPEED_SUPER;
}
- usbi_dbg("vid=%x pid=%x, path=%s, bus_nmber=0x%x, port_number=%d, speed=%d",
+ usbi_dbg(DEVICE_CTX(dev), "vid=%x pid=%x, path=%s, bus_nmber=0x%x, port_number=%d, speed=%d",
dev->device_descriptor.idVendor, dev->device_descriptor.idProduct,
dpriv->phypath, dev->bus_number, dev->port_number, dev->speed);
@@ -571,7 +571,7 @@ sunos_add_devices(di_devlink_t link, void *arg)
dn = myself;
/* find the root hub */
while (di_prop_lookup_ints(DDI_DEV_T_ANY, dn, "root-hub", &j) != 0) {
- usbi_dbg("find_root_hub:%s", di_devfs_path(dn));
+ usbi_dbg(NULL, "find_root_hub:%s", di_devfs_path(dn));
n = di_prop_lookup_ints(DDI_DEV_T_ANY, dn,
"assigned-address", &addr_prop);
session_id |= ((addr_prop[0] & 0xff) << i++ * 8);
@@ -586,13 +586,13 @@ sunos_add_devices(di_devlink_t link, void *arg)
session_id |= (bdf << i * 8);
bus_number = (PCI_REG_DEV_G(reg) << 3) | PCI_REG_FUNC_G(reg);
- usbi_dbg("device bus address=%s:%x, name:%s",
+ usbi_dbg(NULL, "device bus address=%s:%x, name:%s",
di_bus_addr(myself), bus_number, di_node_name(dn));
- usbi_dbg("session id org:%" PRIx64, session_id);
+ usbi_dbg(NULL, "session id org:%" PRIx64, session_id);
/* dn is the usb device */
for (dn = di_child_node(myself); dn != DI_NODE_NIL; dn = di_sibling_node(dn)) {
- usbi_dbg("device path:%s", di_devfs_path(dn));
+ usbi_dbg(NULL, "device path:%s", di_devfs_path(dn));
/* skip hub devices, because its driver can not been unload */
if (di_prop_lookup_ints(DDI_DEV_T_ANY, dn, "usb-port-count", &addr_prop) != -1)
continue;
@@ -600,18 +600,18 @@ sunos_add_devices(di_devlink_t link, void *arg)
n = di_prop_lookup_ints(DDI_DEV_T_ANY, dn,
"assigned-address", &addr_prop);
if ((n != 1) || (addr_prop[0] == 0)) {
- usbi_dbg("cannot get valid usb_addr");
+ usbi_dbg(NULL, "cannot get valid usb_addr");
continue;
}
sid = (session_id << 8) | (addr_prop[0] & 0xff) ;
- usbi_dbg("session id %" PRIX64, sid);
+ usbi_dbg(NULL, "session id %" PRIX64, sid);
dev = usbi_get_device_by_session_id(nargs->ctx, sid);
if (dev == NULL) {
dev = usbi_alloc_device(nargs->ctx, sid);
if (dev == NULL) {
- usbi_dbg("can't alloc device");
+ usbi_dbg(NULL, "can't alloc device");
continue;
}
devpriv = usbi_get_device_priv(dev);
@@ -619,21 +619,21 @@ sunos_add_devices(di_devlink_t link, void *arg)
if (sunos_fill_in_dev_info(dn, dev) != LIBUSB_SUCCESS) {
libusb_unref_device(dev);
- usbi_dbg("get information fail");
+ usbi_dbg(NULL, "get information fail");
continue;
}
if (usbi_sanitize_device(dev) < 0) {
libusb_unref_device(dev);
- usbi_dbg("sanatize failed: ");
+ usbi_dbg(NULL, "sanatize failed: ");
return (DI_WALK_TERMINATE);
}
} else {
devpriv = usbi_get_device_priv(dev);
- usbi_dbg("Dev %s exists", devpriv->ugenpath);
+ usbi_dbg(NULL, "Dev %s exists", devpriv->ugenpath);
}
if (discovered_devs_append(*(nargs->discdevs), dev) == NULL) {
- usbi_dbg("cannot append device");
+ usbi_dbg(NULL, "cannot append device");
}
/*
@@ -642,7 +642,7 @@ sunos_add_devices(di_devlink_t link, void *arg)
*/
libusb_unref_device(dev);
- usbi_dbg("Device %s %s id=0x%" PRIx64 ", devcount:%" PRIuPTR
+ usbi_dbg(NULL, "Device %s %s id=0x%" PRIx64 ", devcount:%" PRIuPTR
", bdf=%" PRIx64,
devpriv->ugenpath, di_devfs_path(dn), (uint64_t)sid,
(*nargs->discdevs)->len, bdf);
@@ -690,13 +690,13 @@ sunos_get_device_list(struct libusb_context * ctx,
args.discdevs = discdevs;
args.last_ugenpath = NULL;
if ((root_node = di_init("/", DINFOCPYALL)) == DI_NODE_NIL) {
- usbi_dbg("di_int() failed: errno %d (%s)", errno, strerror(errno));
+ usbi_dbg(ctx, "di_int() failed: errno %d (%s)", errno, strerror(errno));
return (LIBUSB_ERROR_IO);
}
if ((devlink_hdl = di_devlink_init(NULL, 0)) == NULL) {
di_fini(root_node);
- usbi_dbg("di_devlink_init() failed: errno %d (%s)", errno, strerror(errno));
+ usbi_dbg(ctx, "di_devlink_init() failed: errno %d (%s)", errno, strerror(errno));
return (LIBUSB_ERROR_IO);
}
@@ -705,7 +705,7 @@ sunos_get_device_list(struct libusb_context * ctx,
/* walk each node to find USB devices */
if (di_walk_node(root_node, DI_WALK_SIBFIRST, &args,
sunos_walk_minor_node_link) == -1) {
- usbi_dbg("di_walk_node() failed: errno %d (%s)", errno, strerror(errno));
+ usbi_dbg(ctx, "di_walk_node() failed: errno %d (%s)", errno, strerror(errno));
di_fini(root_node);
return (LIBUSB_ERROR_IO);
@@ -714,7 +714,7 @@ sunos_get_device_list(struct libusb_context * ctx,
di_fini(root_node);
di_devlink_fini(&devlink_hdl);
- usbi_dbg("%zu devices", (*discdevs)->len);
+ usbi_dbg(ctx, "%zu devices", (*discdevs)->len);
return ((*discdevs)->len);
}
@@ -729,7 +729,7 @@ sunos_usb_open_ep0(sunos_dev_handle_priv_t *hpriv, sunos_dev_priv_t *dpriv)
}
snprintf(filename, PATH_MAX, "%s/cntrl0", dpriv->ugenpath);
- usbi_dbg("opening %s", filename);
+ usbi_dbg(NULL, "opening %s", filename);
hpriv->eps[0].datafd = open(filename, O_RDWR);
if (hpriv->eps[0].datafd < 0) {
return(_errno_to_libusb(errno));
@@ -836,20 +836,20 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
uint8_t ep_index;
sunos_dev_handle_priv_t *hpriv;
- usbi_dbg("open ep 0x%02x", ep_addr);
+ usbi_dbg(HANDLE_CTX(hdl), "open ep 0x%02x", ep_addr);
hpriv = usbi_get_device_handle_priv(hdl);
ep_index = sunos_usb_ep_index(ep_addr);
/* ep already opened */
if ((hpriv->eps[ep_index].datafd > 0) &&
(hpriv->eps[ep_index].statfd > 0)) {
- usbi_dbg("ep 0x%02x already opened, return success",
+ usbi_dbg(HANDLE_CTX(hdl), "ep 0x%02x already opened, return success",
ep_addr);
return (0);
}
if (sunos_find_interface(hdl, ep_addr, &ifc) < 0) {
- usbi_dbg("can't find interface for endpoint 0x%02x",
+ usbi_dbg(HANDLE_CTX(hdl), "can't find interface for endpoint 0x%02x",
ep_addr);
return (EACCES);
@@ -896,7 +896,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
}
/* Open the xfer endpoint first */
if ((fd = open(filename, mode)) == -1) {
- usbi_dbg("can't open %s: errno %d (%s)", filename, errno,
+ usbi_dbg(HANDLE_CTX(hdl), "can't open %s: errno %d (%s)", filename, errno,
strerror(errno));
return (errno);
@@ -917,7 +917,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
/* Open the status endpoint with RDWR */
if ((fdstat = open(statfilename, O_RDWR)) == -1) {
- usbi_dbg("can't open %s RDWR: errno %d (%s)",
+ usbi_dbg(HANDLE_CTX(hdl), "can't open %s RDWR: errno %d (%s)",
statfilename, errno, strerror(errno));
return (errno);
@@ -925,7 +925,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
count = write(fdstat, &control, sizeof(control));
if (count != 1) {
/* this should have worked */
- usbi_dbg("can't write to %s: errno %d (%s)",
+ usbi_dbg(HANDLE_CTX(hdl), "can't write to %s: errno %d (%s)",
statfilename, errno, strerror(errno));
(void) close(fdstat);
@@ -934,7 +934,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
}
} else {
if ((fdstat = open(statfilename, O_RDONLY)) == -1) {
- usbi_dbg("can't open %s: errno %d (%s)", statfilename, errno,
+ usbi_dbg(HANDLE_CTX(hdl), "can't open %s: errno %d (%s)", statfilename, errno,
strerror(errno));
return (errno);
@@ -943,7 +943,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
/* Re-open the xfer endpoint */
if ((fd = open(filename, mode)) == -1) {
- usbi_dbg("can't open %s: errno %d (%s)", filename, errno,
+ usbi_dbg(HANDLE_CTX(hdl), "can't open %s: errno %d (%s)", filename, errno,
strerror(errno));
(void) close(fdstat);
@@ -952,7 +952,7 @@ sunos_check_device_and_status_open(struct libusb_device_handle *hdl,
hpriv->eps[ep_index].datafd = fd;
hpriv->eps[ep_index].statfd = fdstat;
- usbi_dbg("ep=0x%02x datafd=%d, statfd=%d", ep_addr, fd, fdstat);
+ usbi_dbg(HANDLE_CTX(hdl), "ep=0x%02x datafd=%d, statfd=%d", ep_addr, fd, fdstat);
return (0);
}
@@ -981,7 +981,7 @@ sunos_open(struct libusb_device_handle *handle)
}
if ((ret = sunos_usb_open_ep0(hpriv, dpriv)) != LIBUSB_SUCCESS) {
- usbi_dbg("fail: %d", ret);
+ usbi_dbg(HANDLE_CTX(handle), "fail: %d", ret);
return (ret);
}
@@ -993,7 +993,7 @@ sunos_close(struct libusb_device_handle *handle)
{
sunos_dev_handle_priv_t *hpriv;
- usbi_dbg(" ");
+ usbi_dbg(HANDLE_CTX(handle), " ");
hpriv = usbi_get_device_handle_priv(handle);
@@ -1016,14 +1016,14 @@ sunos_get_active_config_descriptor(struct libusb_device *dev,
* has ever been changed through setCfg.
*/
if ((node = di_init(dpriv->phypath, DINFOCPYALL)) == DI_NODE_NIL) {
- usbi_dbg("di_int() failed: errno %d (%s)", errno,
+ usbi_dbg(DEVICE_CTX(dev), "di_int() failed: errno %d (%s)", errno,
strerror(errno));
return (LIBUSB_ERROR_IO);
}
proplen = di_prop_lookup_bytes(DDI_DEV_T_ANY, node,
"usb-raw-cfg-descriptors", &rdata);
if (proplen <= 0) {
- usbi_dbg("can't find raw config descriptors");
+ usbi_dbg(DEVICE_CTX(dev), "can't find raw config descriptors");
return (LIBUSB_ERROR_IO);
}
@@ -1040,7 +1040,7 @@ sunos_get_active_config_descriptor(struct libusb_device *dev,
cfg = (struct libusb_config_descriptor *)dpriv->raw_cfgdescr;
len = MIN(len, libusb_le16_to_cpu(cfg->wTotalLength));
memcpy(buf, dpriv->raw_cfgdescr, len);
- usbi_dbg("path:%s len %zu", dpriv->phypath, len);
+ usbi_dbg(DEVICE_CTX(dev), "path:%s len %zu", dpriv->phypath, len);
return (len);
}
@@ -1061,7 +1061,7 @@ sunos_get_configuration(struct libusb_device_handle *handle, uint8_t *config)
*config = dpriv->cfgvalue;
- usbi_dbg("bConfigurationValue %u", *config);
+ usbi_dbg(HANDLE_CTX(handle), "bConfigurationValue %u", *config);
return (LIBUSB_SUCCESS);
}
@@ -1072,7 +1072,7 @@ sunos_set_configuration(struct libusb_device_handle *handle, int config)
sunos_dev_priv_t *dpriv = usbi_get_device_priv(handle->dev);
sunos_dev_handle_priv_t *hpriv;
- usbi_dbg("bConfigurationValue %d", config);
+ usbi_dbg(HANDLE_CTX(handle), "bConfigurationValue %d", config);
hpriv = usbi_get_device_handle_priv(handle);
if (dpriv->ugenpath == NULL)
@@ -1092,7 +1092,7 @@ sunos_claim_interface(struct libusb_device_handle *handle, uint8_t iface)
{
UNUSED(handle);
- usbi_dbg("iface %u", iface);
+ usbi_dbg(HANDLE_CTX(handle), "iface %u", iface);
return (LIBUSB_SUCCESS);
}
@@ -1102,7 +1102,7 @@ sunos_release_interface(struct libusb_device_handle *handle, uint8_t iface)
{
sunos_dev_handle_priv_t *hpriv = usbi_get_device_handle_priv(handle);
- usbi_dbg("iface %u", iface);
+ usbi_dbg(HANDLE_CTX(handle), "iface %u", iface);
/* XXX: can we release it? */
hpriv->altsetting[iface] = 0;
@@ -1117,7 +1117,7 @@ sunos_set_interface_altsetting(struct libusb_device_handle *handle, uint8_t ifac
sunos_dev_priv_t *dpriv = usbi_get_device_priv(handle->dev);
sunos_dev_handle_priv_t *hpriv = usbi_get_device_handle_priv(handle);
- usbi_dbg("iface %u, setting %u", iface, altsetting);
+ usbi_dbg(HANDLE_CTX(handle), "iface %u, setting %u", iface, altsetting);
if (dpriv->ugenpath == NULL)
return (LIBUSB_ERROR_NOT_FOUND);
@@ -1169,7 +1169,7 @@ sunos_async_callback(union sigval arg)
ret = aio_error(aiocb);
if (ret != 0) {
- xfer->status = sunos_usb_get_status(hpriv->eps[ep].statfd);
+ xfer->status = sunos_usb_get_status(TRANSFER_CTX(xfer), hpriv->eps[ep].statfd);
} else {
xfer->actual_length =
LIBUSB_TRANSFER_TO_USBI_TRANSFER(xfer)->transferred =
@@ -1178,7 +1178,7 @@ sunos_async_callback(union sigval arg)
usb_dump_data(xfer->buffer, xfer->actual_length);
- usbi_dbg("ret=%d, len=%d, actual_len=%d", ret, xfer->length,
+ usbi_dbg(TRANSFER_CTX(xfer), "ret=%d, len=%d, actual_len=%d", ret, xfer->length,
xfer->actual_length);
/* async notification */
@@ -1195,7 +1195,7 @@ sunos_do_async_io(struct libusb_transfer *transfer)
uint8_t ep;
struct sunos_transfer_priv *tpriv;
- usbi_dbg(" ");
+ usbi_dbg(TRANSFER_CTX(transfer), " ");
tpriv = usbi_get_transfer_priv(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer));
hpriv = usbi_get_device_handle_priv(transfer->dev_handle);
@@ -1225,12 +1225,12 @@ sunos_do_async_io(struct libusb_transfer *transfer)
/* return the number of bytes read/written */
static ssize_t
-usb_do_io(int fd, int stat_fd, void *data, size_t size, int flag, int *status)
+usb_do_io(struct libusb_context *ctx, int fd, int stat_fd, void *data, size_t size, int flag, int *status)
{
int error;
ssize_t ret = -1;
- usbi_dbg("usb_do_io(): datafd=%d statfd=%d size=0x%zx flag=%s",
+ usbi_dbg(ctx, "usb_do_io(): datafd=%d statfd=%d size=0x%zx flag=%s",
fd, stat_fd, size, flag? "WRITE":"READ");
switch (flag) {
@@ -1246,17 +1246,17 @@ usb_do_io(int fd, int stat_fd, void *data, size_t size, int flag, int *status)
break;
}
- usbi_dbg("usb_do_io(): amount=%zd", ret);
+ usbi_dbg(ctx, "usb_do_io(): amount=%zd", ret);
if (ret < 0) {
int save_errno = errno;
- usbi_dbg("TID=%x io %s errno %d (%s)", pthread_self(),
+ usbi_dbg(ctx, "TID=%x io %s errno %d (%s)", pthread_self(),
flag?"WRITE":"READ", errno, strerror(errno));
/* sunos_usb_get_status will do a read and overwrite errno */
- error = sunos_usb_get_status(stat_fd);
- usbi_dbg("io status=%d errno %d (%s)", error,
+ error = sunos_usb_get_status(ctx, stat_fd);
+ usbi_dbg(ctx, "io status=%d errno %d (%s)", error,
save_errno, strerror(save_errno));
if (status) {
@@ -1286,26 +1286,26 @@ solaris_submit_ctrl_on_default(struct libusb_transfer *transfer)
wLength = transfer->length - LIBUSB_CONTROL_SETUP_SIZE;
if (hpriv->eps[0].datafd == -1) {
- usbi_dbg("ep0 not opened");
+ usbi_dbg(TRANSFER_CTX(transfer), "ep0 not opened");
return (LIBUSB_ERROR_NOT_FOUND);
}
if ((data[0] & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN) {
- usbi_dbg("IN request");
- ret = usb_do_io(hpriv->eps[0].datafd,
+ usbi_dbg(TRANSFER_CTX(transfer), "IN request");
+ ret = usb_do_io(TRANSFER_CTX(transfer), hpriv->eps[0].datafd,
hpriv->eps[0].statfd, data, LIBUSB_CONTROL_SETUP_SIZE,
WRITE, &status);
} else {
- usbi_dbg("OUT request");
- ret = usb_do_io(hpriv->eps[0].datafd, hpriv->eps[0].statfd,
+ usbi_dbg(TRANSFER_CTX(transfer), "OUT request");
+ ret = usb_do_io(TRANSFER_CTX(transfer), hpriv->eps[0].datafd, hpriv->eps[0].statfd,
transfer->buffer, transfer->length, WRITE,
(int *)&transfer->status);
}
setup_ret = ret;
if (ret < (ssize_t)LIBUSB_CONTROL_SETUP_SIZE) {
- usbi_dbg("error sending control msg: %zd", ret);
+ usbi_dbg(TRANSFER_CTX(transfer), "error sending control msg: %zd", ret);
return (LIBUSB_ERROR_IO);
}
@@ -1315,8 +1315,8 @@ solaris_submit_ctrl_on_default(struct libusb_transfer *transfer)
/* Read the remaining bytes for IN request */
if ((wLength) && ((data[0] & LIBUSB_ENDPOINT_DIR_MASK) ==
LIBUSB_ENDPOINT_IN)) {
- usbi_dbg("DATA: %d", transfer->length - (int)setup_ret);
- ret = usb_do_io(hpriv->eps[0].datafd,
+ usbi_dbg(TRANSFER_CTX(transfer), "DATA: %d", transfer->length - (int)setup_ret);
+ ret = usb_do_io(TRANSFER_CTX(transfer), hpriv->eps[0].datafd,
hpriv->eps[0].statfd,
transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE,
wLength, READ, (int *)&transfer->status);
@@ -1325,7 +1325,7 @@ solaris_submit_ctrl_on_default(struct libusb_transfer *transfer)
if (ret >= 0) {
LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)->transferred = ret;
}
- usbi_dbg("Done: ctrl data bytes %zd", ret);
+ usbi_dbg(TRANSFER_CTX(transfer), "Done: ctrl data bytes %zd", ret);
/**
* Sync transfer handling.
@@ -1345,13 +1345,13 @@ sunos_clear_halt(struct libusb_device_handle *handle, unsigned char endpoint)
{
int ret;
- usbi_dbg("endpoint=0x%02x", endpoint);
+ usbi_dbg(HANDLE_CTX(handle), "endpoint=0x%02x", endpoint);
ret = libusb_control_transfer(handle, LIBUSB_ENDPOINT_OUT |
LIBUSB_RECIPIENT_ENDPOINT | LIBUSB_REQUEST_TYPE_STANDARD,
LIBUSB_REQUEST_CLEAR_FEATURE, 0, endpoint, NULL, 0, 1000);
- usbi_dbg("ret=%d", ret);
+ usbi_dbg(HANDLE_CTX(handle), "ret=%d", ret);
return (ret);
}
@@ -1361,7 +1361,7 @@ sunos_destroy_device(struct libusb_device *dev)
{
sunos_dev_priv_t *dpriv = usbi_get_device_priv(dev);
- usbi_dbg("destroy everything");
+ usbi_dbg(DEVICE_CTX(dev), "destroy everything");
free(dpriv->raw_cfgdescr);
free(dpriv->ugenpath);
free(dpriv->phypath);
@@ -1387,7 +1387,7 @@ sunos_submit_transfer(struct usbi_transfer *itransfer)
switch (transfer->type) {
case LIBUSB_TRANSFER_TYPE_CONTROL:
/* sync transfer */
- usbi_dbg("CTRL transfer: %d", transfer->length);
+ usbi_dbg(ITRANSFER_CTX(itransfer), "CTRL transfer: %d", transfer->length);
err = solaris_submit_ctrl_on_default(transfer);
break;
@@ -1395,9 +1395,9 @@ sunos_submit_transfer(struct usbi_transfer *itransfer)
/* fallthru */
case LIBUSB_TRANSFER_TYPE_INTERRUPT:
if (transfer->type == LIBUSB_TRANSFER_TYPE_BULK)
- usbi_dbg("BULK transfer: %d", transfer->length);
+ usbi_dbg(ITRANSFER_CTX(itransfer), "BULK transfer: %d", transfer->length);
else
- usbi_dbg("INTR transfer: %d", transfer->length);
+ usbi_dbg(ITRANSFER_CTX(itransfer), "INTR transfer: %d", transfer->length);
err = sunos_do_async_io(transfer);
break;
@@ -1407,9 +1407,9 @@ sunos_submit_transfer(struct usbi_transfer *itransfer)
/* fallthru */
case LIBUSB_TRANSFER_TYPE_BULK_STREAM:
if (transfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS)
- usbi_dbg("ISOC transfer: %d", transfer->length);
+ usbi_dbg(ITRANSFER_CTX(itransfer), "ISOC transfer: %d", transfer->length);
else
- usbi_dbg("BULK STREAM transfer: %d", transfer->length);
+ usbi_dbg(ITRANSFER_CTX(itransfer), "BULK STREAM transfer: %d", transfer->length);
err = LIBUSB_ERROR_NOT_SUPPORTED;
break;
}
@@ -1435,7 +1435,7 @@ sunos_cancel_transfer(struct usbi_transfer *itransfer)
ret = aio_cancel(hpriv->eps[ep].datafd, aiocb);
- usbi_dbg("aio->fd=%d fd=%d ret = %d, %s", aiocb->aio_fildes,
+ usbi_dbg(ITRANSFER_CTX(itransfer), "aio->fd=%d fd=%d ret = %d, %s", aiocb->aio_fildes,
hpriv->eps[ep].datafd, ret, (ret == AIO_CANCELED)?
strerror(0):strerror(errno));
@@ -1461,7 +1461,7 @@ sunos_handle_transfer_completion(struct usbi_transfer *itransfer)
int
_errno_to_libusb(int err)
{
- usbi_dbg("error: %s (%d)", strerror(err), err);
+ usbi_dbg(NULL, "error: %s (%d)", strerror(err), err);
switch (err) {
case EIO:
@@ -1486,96 +1486,96 @@ _errno_to_libusb(int err)
* Returns: ugen's last cmd status
*/
static int
-sunos_usb_get_status(int fd)
+sunos_usb_get_status(struct libusb_context *ctx, int fd)
{
int status;
ssize_t ret;
- usbi_dbg("sunos_usb_get_status(): fd=%d", fd);
+ usbi_dbg(ctx, "sunos_usb_get_status(): fd=%d", fd);
ret = read(fd, &status, sizeof(status));
if (ret == sizeof(status)) {
switch (status) {
case USB_LC_STAT_NOERROR:
- usbi_dbg("No Error");
+ usbi_dbg(ctx, "No Error");
break;
case USB_LC_STAT_CRC:
- usbi_dbg("CRC Timeout Detected\n");
+ usbi_dbg(ctx, "CRC Timeout Detected\n");
break;
case USB_LC_STAT_BITSTUFFING:
- usbi_dbg("Bit Stuffing Violation\n");
+ usbi_dbg(ctx, "Bit Stuffing Violation\n");
break;
case USB_LC_STAT_DATA_TOGGLE_MM:
- usbi_dbg("Data Toggle Mismatch\n");
+ usbi_dbg(ctx, "Data Toggle Mismatch\n");
break;
case USB_LC_STAT_STALL:
- usbi_dbg("End Point Stalled\n");
+ usbi_dbg(ctx, "End Point Stalled\n");
break;
case USB_LC_STAT_DEV_NOT_RESP:
- usbi_dbg("Device is Not Responding\n");
+ usbi_dbg(ctx, "Device is Not Responding\n");
break;
case USB_LC_STAT_PID_CHECKFAILURE:
- usbi_dbg("PID Check Failure\n");
+ usbi_dbg(ctx, "PID Check Failure\n");
break;
case USB_LC_STAT_UNEXP_PID:
- usbi_dbg("Unexpected PID\n");
+ usbi_dbg(ctx, "Unexpected PID\n");
break;
case USB_LC_STAT_DATA_OVERRUN:
- usbi_dbg("Data Exceeded Size\n");
+ usbi_dbg(ctx, "Data Exceeded Size\n");
break;
case USB_LC_STAT_DATA_UNDERRUN:
- usbi_dbg("Less data received\n");
+ usbi_dbg(ctx, "Less data received\n");
break;
case USB_LC_STAT_BUFFER_OVERRUN:
- usbi_dbg("Buffer Size Exceeded\n");
+ usbi_dbg(ctx, "Buffer Size Exceeded\n");
break;
case USB_LC_STAT_BUFFER_UNDERRUN:
- usbi_dbg("Buffer Underrun\n");
+ usbi_dbg(ctx, "Buffer Underrun\n");
break;
case USB_LC_STAT_TIMEOUT:
- usbi_dbg("Command Timed Out\n");
+ usbi_dbg(ctx, "Command Timed Out\n");
break;
case USB_LC_STAT_NOT_ACCESSED:
- usbi_dbg("Not Accessed by h/w\n");
+ usbi_dbg(ctx, "Not Accessed by h/w\n");
break;
case USB_LC_STAT_UNSPECIFIED_ERR:
- usbi_dbg("Unspecified Error\n");
+ usbi_dbg(ctx, "Unspecified Error\n");
break;
case USB_LC_STAT_NO_BANDWIDTH:
- usbi_dbg("No Bandwidth\n");
+ usbi_dbg(ctx, "No Bandwidth\n");
break;
case USB_LC_STAT_HW_ERR:
- usbi_dbg("Host Controller h/w Error\n");
+ usbi_dbg(ctx, "Host Controller h/w Error\n");
break;
case USB_LC_STAT_SUSPENDED:
- usbi_dbg("Device was Suspended\n");
+ usbi_dbg(ctx, "Device was Suspended\n");
break;
case USB_LC_STAT_DISCONNECTED:
- usbi_dbg("Device was Disconnected\n");
+ usbi_dbg(ctx, "Device was Disconnected\n");
break;
case USB_LC_STAT_INTR_BUF_FULL:
- usbi_dbg("Interrupt buffer was full\n");
+ usbi_dbg(ctx, "Interrupt buffer was full\n");
break;
case USB_LC_STAT_INVALID_REQ:
- usbi_dbg("Request was Invalid\n");
+ usbi_dbg(ctx, "Request was Invalid\n");
break;
case USB_LC_STAT_INTERRUPTED:
- usbi_dbg("Request was Interrupted\n");
+ usbi_dbg(ctx, "Request was Interrupted\n");
break;
case USB_LC_STAT_NO_RESOURCES:
- usbi_dbg("No resources available for "
+ usbi_dbg(ctx, "No resources available for "
"request\n");
break;
case USB_LC_STAT_INTR_POLLING_FAILED:
- usbi_dbg("Failed to Restart Poll");
+ usbi_dbg(ctx, "Failed to Restart Poll");
break;
default:
- usbi_dbg("Error Not Determined %d\n",
+ usbi_dbg(ctx, "Error Not Determined %d\n",
status);
break;
}
} else {
- usbi_dbg("read stat error: %s",strerror(errno));
+ usbi_dbg(ctx, "read stat error: %s",strerror(errno));
status = -1;
}