diff options
author | Nikias Bassen | 2009-08-25 03:26:22 +0200 |
---|---|---|
committer | Nikias Bassen | 2009-08-25 03:26:22 +0200 |
commit | 4711a2b493f76561e9803bf7e8be77186f3e7798 (patch) | |
tree | 339684fe1b996e01047c3eb220a8e22e4491c5e2 /daemon/usb.h | |
parent | de30ca5d5c98a8cbee3d8748601519e2263b3e1d (diff) | |
download | usbmuxd-4711a2b493f76561e9803bf7e8be77186f3e7798.tar.gz usbmuxd-4711a2b493f76561e9803bf7e8be77186f3e7798.tar.bz2 |
Renamed directory 'usbmuxd' to more suitable 'daemon'.
Diffstat (limited to 'daemon/usb.h')
-rw-r--r-- | daemon/usb.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/daemon/usb.h b/daemon/usb.h new file mode 100644 index 0000000..621ccb2 --- /dev/null +++ b/daemon/usb.h @@ -0,0 +1,66 @@ +/* + usbmuxd - iPhone/iPod Touch USB multiplex server daemon + +Copyright (C) 2009 Hector Martin "marcan" <hector@marcansoft.com> + +This program 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 2 or version 3. + +This program 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 this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +#ifndef __USB_H__ +#define __USB_H__ + +#include <stdint.h> +#include "utils.h" + +#define BULK_IN 0x85 +#define BULK_OUT 0x04 + +// libusb fragments packets larger than this (usbfs limitation) +// on input, this creates race conditions and other issues +#define USB_MRU 16384 + +// max transmission packet size +// libusb fragments these too, but doesn't send ZLPs so we're safe +// but we need to send a ZLP ourselves at the end (see usb-linux.c) +// we're using 3 * 16384 to optimize for the fragmentation +// this results in three URBs per full transfer, 32 USB packets each +// if there are ZLP issues this should make them show up easily too +#define USB_MTU (3 * 16384) + +#define USB_PACKET_SIZE 512 + +#define VID_APPLE 0x5ac +#define PID_IPHONE2G 0x1290 +#define PID_ITOUCH1G 0x1291 +#define PID_IPHONE3G 0x1292 +#define PID_ITOUCH2G 0x1293 +#define PID_IPHONE3GS 0x1294 + +#define USB_INTERFACE 1 + +struct usb_device; + +int usb_init(void); +void usb_shutdown(void); +const char *usb_get_serial(struct usb_device *dev); +uint32_t usb_get_location(struct usb_device *dev); +uint16_t usb_get_pid(struct usb_device *dev); +void usb_get_fds(struct fdlist *list); +int usb_get_timeout(void); +int usb_send(struct usb_device *dev, const unsigned char *buf, int length); +int usb_process(void); +int usb_process_timeout(int msec); + +#endif |