summaryrefslogtreecommitdiff
path: root/usrp/host/lib/darwin_libusb.h
diff options
context:
space:
mode:
Diffstat (limited to 'usrp/host/lib/darwin_libusb.h')
-rw-r--r--usrp/host/lib/darwin_libusb.h227
1 files changed, 0 insertions, 227 deletions
diff --git a/usrp/host/lib/darwin_libusb.h b/usrp/host/lib/darwin_libusb.h
deleted file mode 100644
index 8446f044ec..0000000000
--- a/usrp/host/lib/darwin_libusb.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2006,2009 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio.
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-/*
- * The following code was taken from LIBUSB verion 0.1.10a,
- * and makes the fusb_darwin codes do-able in the current GR
- * programming framework. Parts and pieces were taken from
- * usbi.h, darwin.c, and error.h .
- *
- * LIBUSB version 0.1.10a is covered by the LGPL, version 2;
- * These codes are used with permission from:
- * (c) 2000-2003 Johannes Erdfelt <johannes@erdfelt.com>
- * (c) 2002-2005 Nathan Hjelm <hjelmn@users.sourceforge.net>
- * All rights reserved.
- */
-
-#ifndef __DARWIN_LIBUSB_H__
-#define __DARWIN_LIBUSB_H__
-
-#include <IOKit/IOCFBundle.h>
-#include <IOKit/IOCFPlugIn.h>
-#include <IOKit/usb/IOUSBLib.h>
-#include <IOKit/IOKitLib.h>
-
-extern "C" {
-
-static const char* darwin_error_strings[] = {
- "no error",
- "device not opened for exclusive access",
- "no connection to an IOService",
- "no asyc port has been opened for interface",
- "another process has device opened for exclusive access",
- "pipe is stalled",
- "could not establish a connection to Darin kernel",
- "invalid argument",
- "unknown error"
-};
-
-static const char *
-darwin_error_str (int result)
-{
- switch (result) {
- case kIOReturnSuccess:
- return (darwin_error_strings[0]);
- case kIOReturnNotOpen:
- return (darwin_error_strings[1]);
- case kIOReturnNoDevice:
- return (darwin_error_strings[2]);
- case kIOUSBNoAsyncPortErr:
- return (darwin_error_strings[3]);
- case kIOReturnExclusiveAccess:
- return (darwin_error_strings[4]);
- case kIOUSBPipeStalled:
- return (darwin_error_strings[5]);
- case kIOReturnError:
- return (darwin_error_strings[6]);
- case kIOReturnBadArgument:
- return (darwin_error_strings[7]);
- default:
- return (darwin_error_strings[8]);
- }
-}
-
-/* not a valid errorno outside darwin.c */
-#define LUSBDARWINSTALL (ELAST+1)
-
-static int
-darwin_to_errno (int result)
-{
- switch (result) {
- case kIOReturnSuccess:
- return 0;
- case kIOReturnNotOpen:
- return EBADF;
- case kIOReturnNoDevice:
- case kIOUSBNoAsyncPortErr:
- return ENXIO;
- case kIOReturnExclusiveAccess:
- return EBUSY;
- case kIOUSBPipeStalled:
- return LUSBDARWINSTALL;
- case kIOReturnBadArgument:
- return EINVAL;
- case kIOReturnError:
- default:
- return 1;
- }
-}
-
-typedef enum {
- USB_ERROR_TYPE_NONE = 0,
- USB_ERROR_TYPE_STRING,
- USB_ERROR_TYPE_ERRNO,
-} usb_error_type_t;
-
-extern char usb_error_str[1024];
-extern int usb_error_errno;
-extern usb_error_type_t usb_error_type;
-
-#define USB_ERROR(r, x) \
- do { \
- usb_error_type = USB_ERROR_TYPE_ERRNO; \
- usb_error_errno = x; \
- return (r); \
- } while (0)
-
-#define USB_ERROR_STR(r, x, format, args...) \
- do { \
- usb_error_type = USB_ERROR_TYPE_STRING; \
- snprintf (usb_error_str, sizeof (usb_error_str) - 1, \
- format, ## args); \
- if (usb_debug) { \
- std::cerr << "USB error: " << usb_error_str << std::cerr; \
- } \
- return (r); \
- } while (0)
-
-#define USB_ERROR_STR_ORIG(x, format, args...) \
- do { \
- usb_error_type = USB_ERROR_TYPE_STRING; \
- snprintf (usb_error_str, sizeof (usb_error_str) - 1, \
- format, ## args); \
- if (usb_debug) { \
- std::cerr << "USB error: " << usb_error_str << std::endl; \
- } \
- return (x); \
- } while (0)
-
-#define USB_ERROR_STR_NO_RET(x, format, args...) \
- do { \
- usb_error_type = USB_ERROR_TYPE_STRING; \
- snprintf (usb_error_str, sizeof (usb_error_str) - 1, \
- format, ## args); \
- if (usb_debug) { \
- std::cerr << "USB error: " << usb_error_str << std::endl; \
- } \
- } while (0)
-
-/*
- * simple function that figures out what pipeRef
- * is associated with an endpoint
- */
-static int ep_to_pipeRef (darwin_dev_handle *device, int ep)
-{
- io_return_t ret;
- UInt8 numep, direction, number;
- UInt8 dont_care1, dont_care3;
- UInt16 dont_care2;
- int i;
-
- if (usb_debug > 3) {
- std::cerr << "Converting ep address to pipeRef." << std::endl;
- }
-
- /* retrieve the total number of endpoints on this interface */
- ret = (*(device->interface))->GetNumEndpoints(device->interface, &numep);
- if ( ret ) {
- if ( usb_debug > 3 ) {
- std::cerr << "ep_to_pipeRef: interface is "
- << device->interface << std::endl;
- }
- USB_ERROR_STR_ORIG ( -ret, "ep_to_pipeRef: can't get number of "
- "endpoints for interface" );
- }
-
- /* iterate through the pipeRefs until we find the correct one */
- for (i = 1 ; i <= numep ; i++) {
- ret = (*(device->interface))->GetPipeProperties
- (device->interface, i, &direction, &number,
- &dont_care1, &dont_care2, &dont_care3);
-
- if (ret != kIOReturnSuccess) {
- std::cerr << "ep_to_pipeRef: an error occurred getting "
- << "pipe information on pipe " << i << std::endl;
-
- USB_ERROR_STR_ORIG (-darwin_to_errno(ret),
- "ep_to_pipeRef(GetPipeProperties): %s",
- darwin_error_str(ret));
- }
-
- if (usb_debug > 3) {
- std::cerr << "ep_to_pipeRef: Pipe " << i << ": DIR: "
- << direction << " number: " << number << std::endl;
- }
-
- /* calculate the endpoint of the pipe and check it versus
- the requested endpoint */
- if ( ((direction << 7 & USB_ENDPOINT_DIR_MASK) |
- (number & USB_ENDPOINT_ADDRESS_MASK)) == ep ) {
- if (usb_debug > 3) {
- std::cerr << "ep_to_pipeRef: pipeRef for ep address "
- << ep << " found: " << i << std::endl;
- }
- return (i);
- }
- }
-
- if (usb_debug > 3) {
- std::cerr << "ep_to_pipeRef: No pipeRef found with endpoint address "
- << ep << std::endl;
- }
-
- /* none of the found pipes match the requested endpoint */
- return (-1);
-}
-
-}
-#endif /* __DARWIN_LIBUSB_H__ */