xref: /illumos-gate/usr/src/uts/sun4/sys/dvma.h (revision d0662dbf)
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 2006 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 
26 #ifndef _SYS_DVMA_H
27 #define	_SYS_DVMA_H
28 
29 #pragma ident	"%Z%%M%	%I%	%E% SMI"
30 
31 #ifdef	__cplusplus
32 extern "C" {
33 #endif
34 
35 #define	DVMAO_REV	1
36 
37 struct dvma_ops  {
38 #ifdef __STDC__
39 	int dvmaops_rev;		/* rev of this structure */
40 	void (*dvma_kaddr_load)(ddi_dma_handle_t h, caddr_t a,
41 			    uint_t len, uint_t index, ddi_dma_cookie_t *cp);
42 	void (*dvma_unload)(ddi_dma_handle_t h, uint_t objindex,
43 			    uint_t view);
44 	void (*dvma_sync)(ddi_dma_handle_t h, uint_t objindex,
45 			    uint_t view);
46 #else /* __STDC__ */
47 	int dvmaops_rev;
48 	void (*dvma_kaddr_load)();
49 	void (*dvma_unload)();
50 	void (*dvma_sync)();
51 #endif /* __STDC__ */
52 };
53 
54 struct	fast_dvma	{
55 	caddr_t softsp;
56 	uint_t *pagecnt;
57 	unsigned long long  *phys_sync_flag;
58 	int *sync_flag;
59 	struct dvma_ops *ops;
60 	caddr_t *kvbase;
61 	void **cbcookie;
62 };
63 
64 #ifdef	__cplusplus
65 }
66 #endif
67 
68 #endif	/* _SYS_DVMA_H */
69