Lines Matching refs:dev_handle

53 static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface);
54 static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface);
55 static int darwin_reset_device(struct libusb_device_handle *dev_handle);
116 static int ep_to_pipeRef(struct libusb_device_handle *dev_handle, uint8_t ep, uint8_t *pipep, uint8_t *ifcp) {
117 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
124 usbi_info (HANDLE_CTX(dev_handle), "converting ep address 0x%02x to pipeRef and interface", ep);
129 if (dev_handle->claimed_interfaces & (1 << iface)) {
134 usbi_info (HANDLE_CTX(dev_handle), "pipe %d on interface %d matches", *pipep, *ifcp);
142 usbi_warn (HANDLE_CTX(dev_handle), "no pipeRef found with endpoint address 0x%02x.", ep);
577 static int darwin_open (struct libusb_device_handle *dev_handle) {
578 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
579 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
586 usbi_err (HANDLE_CTX (dev_handle), "could not find device: %s", darwin_error_str (kresult));
596 usbi_err (HANDLE_CTX (dev_handle), "USBDeviceOpen: %s", darwin_error_str(kresult));
631 usbi_add_pollfd(HANDLE_CTX(dev_handle), priv->fds[0], POLLIN);
633 usbi_info (HANDLE_CTX (dev_handle), "device open for access");
638 static void darwin_close (struct libusb_device_handle *dev_handle) {
639 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
640 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
646 usbi_err (HANDLE_CTX (dev_handle), "Close called on a device that was not open!\n");
654 if (dev_handle->claimed_interfaces & (1 << i))
655 libusb_release_interface (dev_handle, i);
670 usbi_err (HANDLE_CTX (dev_handle), "USBDeviceClose: %s", darwin_error_str(kresult));
678 usbi_err (HANDLE_CTX (dev_handle), "Release: %s", darwin_error_str(kresult));
685 usbi_remove_pollfd (HANDLE_CTX (dev_handle), priv->fds[0]);
692 static int darwin_get_configuration(struct libusb_device_handle *dev_handle, int *config) {
693 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
706 static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int config) {
707 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
714 if (dev_handle->claimed_interfaces & (1 << i))
715 darwin_release_interface (dev_handle, i);
723 if (dev_handle->claimed_interfaces & (1 << i))
724 darwin_claim_interface (dev_handle, i);
756 static int get_endpoints (struct libusb_device_handle *dev_handle, int iface) {
757 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
769 usbi_info (HANDLE_CTX (dev_handle), "building table of endpoints.");
774 usbi_err (HANDLE_CTX (dev_handle), "can't get number of endpoints for interface: %s", darwin_error_str(kresult));
784 usbi_err (HANDLE_CTX (dev_handle), "error getting pipe information for pipe %d: %s", i, darwin_error_str(kresult));
789 usbi_info (HANDLE_CTX (dev_handle), "interface: %i pipe %i: dir: %i number: %i", iface, i, direction, number);
799 static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface) {
800 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
801 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
823 usbi_info (HANDLE_CTX (dev_handle), "no interface found; selecting configuration" );
827 usbi_err (HANDLE_CTX (dev_handle), "GetNumberOfConfigurations: %s", darwin_error_str(kresult));
832 usbi_err (HANDLE_CTX (dev_handle), "GetNumberOfConfigurations: no configurations");
836 usbi_info (HANDLE_CTX (dev_handle), "device has %d configuration%s. using the first",
842 usbi_err (HANDLE_CTX (dev_handle), "GetConfigurationDescriptorPtr: %s",
849 usbi_info (HANDLE_CTX (dev_handle), "new configuration value is %d", new_config);
852 kresult = darwin_set_configuration (dev_handle, new_config);
854 usbi_err (HANDLE_CTX (dev_handle), "could not set configuration");
860 usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult));
866 usbi_err (HANDLE_CTX (dev_handle), "interface not found");
874 usbi_err (HANDLE_CTX (dev_handle), "IOCreatePlugInInterfaceForService: %s", darwin_error_str(kresult));
879 usbi_err (HANDLE_CTX (dev_handle), "plugin interface not found");
891 usbi_err (HANDLE_CTX (dev_handle), "QueryInterface: %s", darwin_error_str(kresult));
901 usbi_err (HANDLE_CTX (dev_handle), "USBInterfaceOpen: %s", darwin_error_str(kresult));
906 kresult = get_endpoints (dev_handle, iface);
909 darwin_release_interface (dev_handle, iface);
910 usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table");
919 usbi_err (HANDLE_CTX (dev_handle), "could not create async event source");
922 (void)darwin_release_interface (dev_handle, iface);
930 usbi_info (HANDLE_CTX (dev_handle), "interface opened");
935 static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface) {
936 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
957 usbi_err (HANDLE_CTX (dev_handle), "USBInterfaceClose: %s", darwin_error_str(kresult));
961 usbi_err (HANDLE_CTX (dev_handle), "Release: %s", darwin_error_str(kresult));
968 static int darwin_set_interface_altsetting(struct libusb_device_handle *dev_handle, int iface, int altsetting) {
969 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
980 darwin_reset_device (dev_handle);
983 kresult = get_endpoints (dev_handle, iface);
986 darwin_release_interface (dev_handle, iface);
987 usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table");
994 static int darwin_clear_halt(struct libusb_device_handle *dev_handle, unsigned char endpoint) {
995 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)dev_handle->os_priv;
1003 if (ep_to_pipeRef (dev_handle, endpoint, &pipeRef, &iface) != 0) {
1004 usbi_err (HANDLE_CTX (dev_handle), "endpoint not found on any open interface");
1018 usbi_err (HANDLE_CTX (dev_handle), "ClearPipeStall: %s", darwin_error_str (kresult));
1023 static int darwin_reset_device(struct libusb_device_handle *dev_handle) {
1024 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
1029 usbi_err (HANDLE_CTX (dev_handle), "ResetDevice: %s", darwin_error_str (kresult));
1034 static int darwin_kernel_driver_active(struct libusb_device_handle *dev_handle, int interface) {
1035 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)dev_handle->dev->os_priv;
1042 usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult));
1061 static int darwin_attach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) {
1065 static int darwin_detach_kernel_driver (struct libusb_device_handle *dev_handle, int interface) {
1074 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)transfer->dev_handle->os_priv;
1088 if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
1129 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)transfer->dev_handle->os_priv;
1153 if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
1197 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)transfer->dev_handle->dev->os_priv;
1244 struct darwin_device_priv *dpriv = (struct darwin_device_priv *)transfer->dev_handle->dev->os_priv;
1256 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)transfer->dev_handle->os_priv;
1261 if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
1316 struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)transfer->dev_handle->os_priv;