1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#ifndef _SYS_USB_UHCITGT_H 27#define _SYS_USB_UHCITGT_H 28 29 30#ifdef __cplusplus 31extern "C" { 32#endif 33 34/* 35 * Shared function declarations 36 */ 37queue_head_t *uhci_alloc_queue_head(uhci_state_t *uhcip); 38uhci_state_t *uhci_obtain_state(dev_info_t *dip); 39 40int uhci_insert_ctrl_td(uhci_state_t *uhcip, 41 usba_pipe_handle_data_t *pipe_handle, 42 usb_ctrl_req_t *req, 43 usb_flags_t flags); 44int uhci_insert_bulk_td(uhci_state_t *uhcip, 45 usba_pipe_handle_data_t *pipe_handle, 46 usb_bulk_req_t *req, 47 usb_flags_t flags); 48int uhci_insert_intr_td(uhci_state_t *uhcip, 49 usba_pipe_handle_data_t *pipe_handle, 50 usb_intr_req_t *req, 51 usb_flags_t flags); 52int uhci_insert_isoc_td( 53 uhci_state_t *uhcip, 54 usba_pipe_handle_data_t *ph, 55 usb_isoc_req_t *isoc_req, 56 size_t length, 57 usb_flags_t usb_flags); 58 59void uhci_remove_qh(uhci_state_t *uhcip, uhci_pipe_private_t *pp); 60void uhci_insert_qh(uhci_state_t *uhcip, 61 usba_pipe_handle_data_t *pipe_handle); 62void uhci_modify_td_active_bits( 63 uhci_state_t *uhcip, 64 uhci_pipe_private_t *pp); 65 66int uhci_allocate_bandwidth(uhci_state_t *uhcip, 67 usba_pipe_handle_data_t *pipe_handle, uint_t *node); 68void uhci_deallocate_bandwidth(uhci_state_t *uhcip, 69 usba_pipe_handle_data_t *pipe_handle); 70void uhci_remove_tds_tws(uhci_state_t *uhcip, 71 usba_pipe_handle_data_t *ph); 72void uhci_remove_isoc_tds_tws(uhci_state_t *uhcip, 73 uhci_pipe_private_t *ph); 74int uhci_start_isoc_receive_polling( 75 uhci_state_t *uhcip, 76 usba_pipe_handle_data_t *ph, 77 usb_isoc_req_t *req, 78 usb_flags_t usb_flags); 79 80 81void uhci_save_data_toggle(uhci_pipe_private_t *pp); 82int uhci_handle_root_hub_request( 83 uhci_state_t *uhcip, 84 usba_pipe_handle_data_t *pipe_handle, 85 usb_ctrl_req_t *req); 86 87void uhci_remove_bulk_tds_tws(uhci_state_t *uhcip, 88 uhci_pipe_private_t *pp, 89 int what); 90void uhci_root_hub_reset_occurred(uhci_state_t *uhcip, 91 usb_port_t port); 92int uhci_root_hub_allocate_intr_pipe_resource( 93 uhci_state_t *uhcip, 94 usb_flags_t flags); 95void uhci_root_hub_intr_pipe_cleanup(uhci_state_t *uhcip, 96 usb_cr_t cr); 97void uhci_hcdi_callback(uhci_state_t *uhcip, 98 uhci_pipe_private_t *pp, 99 usba_pipe_handle_data_t *ph, 100 uhci_trans_wrapper_t *tw, 101 usb_cr_t cr); 102int uhci_allocate_periodic_in_resource(uhci_state_t *uhcip, 103 uhci_pipe_private_t *pp, 104 uhci_trans_wrapper_t *tw, usb_flags_t flags); 105 106#ifdef __cplusplus 107} 108#endif 109 110#endif /* _SYS_USB_UHCITGT_H */ 111