Deleted Added
full compact
usb.h (188942) usb.h (190181)
1/* $FreeBSD: head/sys/dev/usb/usb_compat_linux.h 188942 2009-02-23 18:31:00Z thompsa $ */
1/* $FreeBSD: head/sys/dev/usb/usb_compat_linux.h 190181 2009-03-20 21:50:54Z thompsa $ */
2/*-
3 * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved.
4 * Copyright (c) 2007 Hans Petter Selasky. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright

--- 306 unchanged lines hidden (view full) ---

316 struct usb_endpoint_descriptor desc;
317
318 TAILQ_HEAD(, urb) bsd_urb_list;
319
320 struct usb2_xfer *bsd_xfer[2];
321
322 uint8_t *extra; /* Extra descriptors */
323
2/*-
3 * Copyright (c) 2007 Luigi Rizzo - Universita` di Pisa. All rights reserved.
4 * Copyright (c) 2007 Hans Petter Selasky. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright

--- 306 unchanged lines hidden (view full) ---

316 struct usb_endpoint_descriptor desc;
317
318 TAILQ_HEAD(, urb) bsd_urb_list;
319
320 struct usb2_xfer *bsd_xfer[2];
321
322 uint8_t *extra; /* Extra descriptors */
323
324 uint32_t fbsd_buf_size;
324 usb2_frlength_t fbsd_buf_size;
325
326 uint16_t extralen;
327
328 uint8_t bsd_iface_index;
329} __aligned(USB_HOST_ALIGN);
330
331struct usb_host_interface {
332 struct usb_interface_descriptor desc;

--- 68 unchanged lines hidden (view full) ---

401 struct usb_device *dev; /* (in) pointer to associated device */
402 struct usb_host_endpoint *pipe; /* (in) pipe pointer */
403 uint8_t *setup_packet; /* (in) setup packet (control only) */
404 uint8_t *bsd_data_ptr;
405 void *transfer_buffer; /* (in) associated data buffer */
406 void *context; /* (in) context for completion */
407 usb_complete_t *complete; /* (in) completion routine */
408
325
326 uint16_t extralen;
327
328 uint8_t bsd_iface_index;
329} __aligned(USB_HOST_ALIGN);
330
331struct usb_host_interface {
332 struct usb_interface_descriptor desc;

--- 68 unchanged lines hidden (view full) ---

401 struct usb_device *dev; /* (in) pointer to associated device */
402 struct usb_host_endpoint *pipe; /* (in) pipe pointer */
403 uint8_t *setup_packet; /* (in) setup packet (control only) */
404 uint8_t *bsd_data_ptr;
405 void *transfer_buffer; /* (in) associated data buffer */
406 void *context; /* (in) context for completion */
407 usb_complete_t *complete; /* (in) completion routine */
408
409 uint32_t transfer_buffer_length;/* (in) data buffer length */
410 uint32_t actual_length; /* (return) actual transfer length */
411 uint32_t bsd_length_rem;
412 uint32_t timeout; /* FreeBSD specific */
409 usb2_size_t transfer_buffer_length;/* (in) data buffer length */
410 usb2_size_t bsd_length_rem;
411 usb2_size_t actual_length; /* (return) actual transfer length */
412 usb2_timeout_t timeout; /* FreeBSD specific */
413
414 uint16_t transfer_flags; /* (in) */
415#define URB_SHORT_NOT_OK 0x0001 /* report short transfers like errors */
416#define URB_ISO_ASAP 0x0002 /* ignore "start_frame" field */
417#define URB_ZERO_PACKET 0x0004 /* the USB transfer ends with a short
418 * packet */
419#define URB_NO_TRANSFER_DMA_MAP 0x0008 /* "transfer_dma" is valid on submit */
420#define URB_WAIT_WAKEUP 0x0010 /* custom flags */
421#define URB_IS_SLEEPING 0x0020 /* custom flags */
422
413
414 uint16_t transfer_flags; /* (in) */
415#define URB_SHORT_NOT_OK 0x0001 /* report short transfers like errors */
416#define URB_ISO_ASAP 0x0002 /* ignore "start_frame" field */
417#define URB_ZERO_PACKET 0x0004 /* the USB transfer ends with a short
418 * packet */
419#define URB_NO_TRANSFER_DMA_MAP 0x0008 /* "transfer_dma" is valid on submit */
420#define URB_WAIT_WAKEUP 0x0010 /* custom flags */
421#define URB_IS_SLEEPING 0x0020 /* custom flags */
422
423 uint16_t start_frame; /* (modify) start frame (ISO) */
424 uint16_t number_of_packets; /* (in) number of ISO packets */
423 usb2_frcount_t start_frame; /* (modify) start frame (ISO) */
424 usb2_frcount_t number_of_packets; /* (in) number of ISO packets */
425 uint16_t interval; /* (modify) transfer interval
426 * (INT/ISO) */
427 uint16_t error_count; /* (return) number of ISO errors */
428 int16_t status; /* (return) status */
429
430 uint8_t setup_dma; /* (in) not used on FreeBSD */
431 uint8_t transfer_dma; /* (in) not used on FreeBSD */
432 uint8_t bsd_isread;
433
434 struct usb_iso_packet_descriptor iso_frame_desc[]; /* (in) ISO ONLY */
435};
436
437/* various prototypes */
438
439int usb_submit_urb(struct urb *urb, uint16_t mem_flags);
440int usb_unlink_urb(struct urb *urb);
441int usb_clear_halt(struct usb_device *dev, struct usb_host_endpoint *uhe);
442int usb_control_msg(struct usb_device *dev, struct usb_host_endpoint *pipe,
443 uint8_t request, uint8_t requesttype, uint16_t value,
425 uint16_t interval; /* (modify) transfer interval
426 * (INT/ISO) */
427 uint16_t error_count; /* (return) number of ISO errors */
428 int16_t status; /* (return) status */
429
430 uint8_t setup_dma; /* (in) not used on FreeBSD */
431 uint8_t transfer_dma; /* (in) not used on FreeBSD */
432 uint8_t bsd_isread;
433
434 struct usb_iso_packet_descriptor iso_frame_desc[]; /* (in) ISO ONLY */
435};
436
437/* various prototypes */
438
439int usb_submit_urb(struct urb *urb, uint16_t mem_flags);
440int usb_unlink_urb(struct urb *urb);
441int usb_clear_halt(struct usb_device *dev, struct usb_host_endpoint *uhe);
442int usb_control_msg(struct usb_device *dev, struct usb_host_endpoint *pipe,
443 uint8_t request, uint8_t requesttype, uint16_t value,
444 uint16_t index, void *data, uint16_t size, uint32_t timeout);
444 uint16_t index, void *data, uint16_t size, usb2_timeout_t timeout);
445int usb_set_interface(struct usb_device *dev, uint8_t ifnum,
446 uint8_t alternate);
447int usb_setup_endpoint(struct usb_device *dev,
445int usb_set_interface(struct usb_device *dev, uint8_t ifnum,
446 uint8_t alternate);
447int usb_setup_endpoint(struct usb_device *dev,
448 struct usb_host_endpoint *uhe, uint32_t bufsize);
448 struct usb_host_endpoint *uhe, usb2_frlength_t bufsize);
449
450struct usb_host_endpoint *usb_find_host_endpoint(struct usb_device *dev,
451 uint8_t type, uint8_t ep);
452struct urb *usb_alloc_urb(uint16_t iso_packets, uint16_t mem_flags);
453struct usb_host_interface *usb_altnum_to_altsetting(
454 const struct usb_interface *intf, uint8_t alt_index);
455struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, uint8_t iface_no);
456
449
450struct usb_host_endpoint *usb_find_host_endpoint(struct usb_device *dev,
451 uint8_t type, uint8_t ep);
452struct urb *usb_alloc_urb(uint16_t iso_packets, uint16_t mem_flags);
453struct usb_host_interface *usb_altnum_to_altsetting(
454 const struct usb_interface *intf, uint8_t alt_index);
455struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, uint8_t iface_no);
456
457void *usb_buffer_alloc(struct usb_device *dev, uint32_t size,
457void *usb_buffer_alloc(struct usb_device *dev, usb2_size_t size,
458 uint16_t mem_flags, uint8_t *dma_addr);
459void *usb_get_intfdata(struct usb_interface *intf);
460
458 uint16_t mem_flags, uint8_t *dma_addr);
459void *usb_get_intfdata(struct usb_interface *intf);
460
461void usb_buffer_free(struct usb_device *dev, uint32_t size, void *addr, uint8_t dma_addr);
461void usb_buffer_free(struct usb_device *dev, usb2_size_t size, void *addr, uint8_t dma_addr);
462void usb_free_urb(struct urb *urb);
463void usb_init_urb(struct urb *urb);
464void usb_kill_urb(struct urb *urb);
465void usb_set_intfdata(struct usb_interface *intf, void *data);
466void usb_linux_register(void *arg);
467void usb_linux_deregister(void *arg);
468
469#define interface_to_usbdev(intf) (intf)->linux_udev
470#define interface_to_bsddev(intf) (intf)->linux_udev->bsd_udev
471
472#endif /* _USB_COMPAT_LINUX_H */
462void usb_free_urb(struct urb *urb);
463void usb_init_urb(struct urb *urb);
464void usb_kill_urb(struct urb *urb);
465void usb_set_intfdata(struct usb_interface *intf, void *data);
466void usb_linux_register(void *arg);
467void usb_linux_deregister(void *arg);
468
469#define interface_to_usbdev(intf) (intf)->linux_udev
470#define interface_to_bsddev(intf) (intf)->linux_udev->bsd_udev
471
472#endif /* _USB_COMPAT_LINUX_H */