ehci_intr.h revision 7492:2387323b838f
133965Sjdp/*
278828Sobrien * CDDL HEADER START
389857Sobrien *
459343Sobrien * The contents of this file are subject to the terms of the
533965Sjdp * Common Development and Distribution License (the "License").
633965Sjdp * You may not use this file except in compliance with the License.
733965Sjdp *
833965Sjdp * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
933965Sjdp * or http://www.opensolaris.org/os/licensing.
1033965Sjdp * See the License for the specific language governing permissions
1133965Sjdp * and limitations under the License.
1233965Sjdp *
1333965Sjdp * When distributing Covered Code, include this CDDL HEADER in each
1433965Sjdp * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1533965Sjdp * If applicable, add the following below this CDDL HEADER, with the
1633965Sjdp * fields enclosed by brackets "[]" replaced with your own identifying
1733965Sjdp * information: Portions Copyright [yyyy] [name of copyright owner]
1833965Sjdp *
1933965Sjdp * CDDL HEADER END
2033965Sjdp */
2133965Sjdp/*
2233965Sjdp * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
2333965Sjdp * Use is subject to license terms.
2433965Sjdp */
2533965Sjdp
2633965Sjdp#ifndef _SYS_USB_EHCI_INTR_H
2733965Sjdp#define	_SYS_USB_EHCI_INTR_H
2833965Sjdp
2933965Sjdp
3033965Sjdp#ifdef	__cplusplus
3133965Sjdpextern "C" {
3233965Sjdp#endif
3359343Sobrien
3433965Sjdp/*
3533965Sjdp * Enchanced Host Controller Driver (EHCI)
3633965Sjdp *
3759343Sobrien * The EHCI driver is a software driver which interfaces to the Universal
3859343Sobrien * Serial Bus layer (USBA) and the Host Controller (HC). The interface to
3933965Sjdp * the Host Controller is defined by the EHCI Host Controller Interface.
4059343Sobrien *
4159343Sobrien * This header file describes the data structures and function prototypes
4233965Sjdp * related EHCI driver interrupt handling.
4359343Sobrien */
4459343Sobrien
4533965Sjdp/*
4659343Sobrien * EHCI driver external interrupt function prototypes.
4759343Sobrien */
4833965Sjdpextern void	ehci_handle_ue(ehci_state_t		*ehcip);
4959343Sobrienextern void	ehci_handle_frame_list_rollover(
5059343Sobrien				ehci_state_t		*ehcip);
5159343Sobrienextern void	ehci_handle_endpoint_reclaimation(
5259343Sobrien				ehci_state_t		*ehcip);
5333965Sjdpextern void	ehci_traverse_active_qtd_list(
5459343Sobrien				ehci_state_t		*ehcip);
5559343Sobrienextern usb_cr_t	ehci_check_for_error(
5659343Sobrien				ehci_state_t		*ehcip,
5759343Sobrien				ehci_pipe_private_t	*pp,
5833965Sjdp				ehci_trans_wrapper_t	*tw,
5959343Sobrien				ehci_qtd_t		*qtd,
6033965Sjdp				uint_t			ctrl);
6159343Sobrienextern void	ehci_handle_error(
6261843Sobrien				ehci_state_t		*ehcip,
6359343Sobrien				ehci_qtd_t		*qtd,
6460529Sobrien				usb_cr_t		error);
6559343Sobrienextern void	ehci_handle_ctrl_qtd(
6660529Sobrien				ehci_state_t		*ehcip,
6760529Sobrien				ehci_pipe_private_t	*pp,
6877298Sobrien				ehci_trans_wrapper_t	*tw,
6960529Sobrien				ehci_qtd_t		*qtd,
7060529Sobrien				void			*);
7160529Sobrienextern void	ehci_handle_bulk_qtd(
7260529Sobrien				ehci_state_t		*ehcip,
7360529Sobrien				ehci_pipe_private_t	*pp,
7459343Sobrien				ehci_trans_wrapper_t	*tw,
7577298Sobrien				ehci_qtd_t		*qtd,
7633965Sjdp				void			*);
7759343Sobrienextern void	ehci_handle_intr_qtd(
7833965Sjdp				ehci_state_t		*ehcip,
7959343Sobrien				ehci_pipe_private_t	*pp,
8059343Sobrien				ehci_trans_wrapper_t	*tw,
8159343Sobrien				ehci_qtd_t		*qtd,
8277298Sobrien				void			*);
8333965Sjdp
8459343Sobrien#ifdef __cplusplus
8559343Sobrien}
8659343Sobrien#endif
8759343Sobrien
8859343Sobrien#endif /* _SYS_USB_EHCI_INTR_H */
8959343Sobrien