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 */ |