xref: /freebsd-13-stable/sys/dev/twa/tw_osl_share.h (revision f8167e0404dab9ffeaca95853dd237ab7c587f82)
1 /*-
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2004-07 Applied Micro Circuits Corporation.
5  * Copyright (c) 2004-05 Vinod Kashyap.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27  * SUCH DAMAGE.
28  */
29 
30 /*
31  * AMCC'S 3ware driver for 9000 series storage controllers.
32  *
33  * Author: Vinod Kashyap
34  * Modifications by: Adam Radford
35  */
36 
37 #ifndef TW_OSL_SHARE_H
38 
39 #define TW_OSL_SHARE_H
40 
41 /*
42  * Macros, structures and functions shared between OSL and CL,
43  * and defined by OSL.
44  */
45 
46 #include <sys/param.h>
47 #include <sys/systm.h>
48 #include <sys/kernel.h>
49 #include <sys/clock.h>
50 #include <sys/lock.h>
51 #include <sys/mutex.h>
52 #include <sys/sysctl.h>
53 #include <sys/bus.h>
54 #include <sys/taskqueue.h>
55 
56 #include <machine/bus.h>
57 #include <machine/endian.h>
58 #include <machine/stdarg.h>
59 
60 #include <dev/pci/pcivar.h>
61 
62 #include <dev/twa/tw_osl_types.h>
63 #include "opt_twa.h"
64 
65 #ifdef TWA_DEBUG
66 #define TW_OSL_DEBUG	TWA_DEBUG
67 #endif
68 
69 #ifdef TWA_ENCLOSURE_SUPPORT
70 #define TW_OSL_ENCLOSURE_SUPPORT
71 #endif
72 
73 #define TW_OSL_DRIVER_VERSION_STRING	"3.80.06.003"
74 
75 #define	TW_OSL_CAN_SLEEP
76 
77 #ifdef TW_OSL_CAN_SLEEP
78 typedef TW_VOID			*TW_SLEEP_HANDLE;
79 #endif /* TW_OSL_CAN_SLEEP */
80 
81 #define TW_OSL_PCI_CONFIG_ACCESSIBLE
82 
83 #if _BYTE_ORDER == _BIG_ENDIAN
84 #define TW_OSL_BIG_ENDIAN
85 #else
86 #define TW_OSL_LITTLE_ENDIAN
87 #endif
88 
89 #ifdef TW_OSL_DEBUG
90 extern TW_INT32		TW_OSL_DEBUG_LEVEL_FOR_CL;
91 #endif /* TW_OSL_DEBUG */
92 
93 /* Possible return codes from/to Common Layer functions. */
94 #define TW_OSL_ESUCCESS		0		/* success */
95 #define TW_OSL_EGENFAILURE	1		/* general failure */
96 #define TW_OSL_ENOMEM		ENOMEM		/* insufficient memory */
97 #define TW_OSL_EIO		EIO		/* I/O error */
98 #define TW_OSL_ETIMEDOUT	ETIMEDOUT	/* time out */
99 #define TW_OSL_ENOTTY		ENOTTY		/* invalid command */
100 #define TW_OSL_EBUSY		EBUSY		/* busy -- try later */
101 #define TW_OSL_EBIG		EFBIG		/* request too big */
102 #define TW_OSL_EWOULDBLOCK	EWOULDBLOCK	/* sleep timed out */
103 #define TW_OSL_ERESTART		ERESTART /* sleep terminated by a signal */
104 
105 #endif /* TW_OSL_SHARE_H */
106