xref: /freebsd/sys/dev/pms/freebsd/driver/common/osenv.h (revision d6b92ffa)
1 /*******************************************************************************
2 *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
3 *
4 *Redistribution and use in source and binary forms, with or without modification, are permitted provided
5 *that the following conditions are met:
6 *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
7 *following disclaimer.
8 *2. Redistributions in binary form must reproduce the above copyright notice,
9 *this list of conditions and the following disclaimer in the documentation and/or other materials provided
10 *with the distribution.
11 *
12 *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
13 *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
17 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
19 *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
20 *
21 * $FreeBSD$
22 *
23 *******************************************************************************/
24 /***************************************************************************
25 
26 Version Control Information:
27 
28 $RCSfile: osenv.h,v $
29 $Revision: 114125 $
30 
31 Note:  This file defines the working environment of the system.  All
32        defines listed in this file could also be compiler flags.
33        I am listing all the defines (even if used as a compiler flag)
34        so that they can be seen and documented.
35 ***************************************************************************/
36 
37 #ifndef __OSENV_H__
38 #define __OSENV_H__
39 #include <dev/pms/freebsd/driver/common/osstring.h>
40 
41 /*
42 ** Define the protocols to compile with.  Currently, these defines are
43 ** only for this header file and are used further down to define the protocol
44 ** specific environment:
45 **
46 **      #define AG_PROTOCOL_ISCSI
47 **      #define AG_PROTOCOL_FC
48 */
49 
50 /*
51 ** Define the application types:
52 **
53 **      #define INITIATOR_DRIVER
54 **      #define TARGET_DRIVER
55 */
56 
57 /*
58 ** Define the endian-ness of the host CPU using one of the following:
59 **
60 **      #define AG_CPU_LITTLE_ENDIAN
61 **      #define AG_CPU_BIG_ENDIAN
62 */
63 
64 /*
65 ** Define the host CPU word size
66 **
67 **      #define AG_CPU_32_BIT
68 **      #define AG_CPU_64_BIT
69 **
70 */
71 #ifdef CONFIG_IA64
72 #define AG_CPU_64_BIT
73 #else
74 #define AG_CPU_32_BIT
75 #endif
76 
77 /*
78 ** The following allow the code to use defines for word alignment and adding
79 ** to allow for 32bit and 64bit system differences.
80 */
81 #ifdef AG_CPU_32_BIT
82 #define AG_WORD_ALIGN_ADD      3
83 #define AG_WORD_ALIGN_MASK     0xfffffffc
84 #else
85 #define AG_WORD_ALIGN_ADD      7
86 #define AG_WORD_ALIGN_MASK     0xfffffff8
87 #endif
88 
89 /***************************************************************************
90 iSCSI environment - The following is used for compiling the iSCSI
91                      protocol.
92 **************************************************************************/
93 
94 /*
95 ** Define the existence of an external bus swapper using on of the
96 ** following:
97 **
98 **      #define AG_SWAPPING_BUS
99 **      #define AG_NON_SWAPPING_BUS
100 **
101 */
102 
103 /*
104 ** Define the use of cache memory for message system:
105 **
106 **      #define AG_CACHED_MSG_SYSTEM
107 **
108 */
109 /* #define AG_CACHED_MSG_SYSTEM */
110 
111 /***************************************************************************
112 FC environment - The following is used for compiling the FC protocol.
113 **************************************************************************/
114 
115 /*
116 ** Define if an PMC-Sierra card is being used:
117 **
118 **      #define CCFLAGS_PMC_SIERRA_BOARD
119 **
120 */
121 
122 /*
123 ** Define if the TSDK is being used:
124 **
125 **      #define FCLayer_Tsdk
126 **
127 */
128 
129 /*
130 ** The following defines are not changed directly, but use either previous
131 ** defines, or compiler directives.
132 **
133 */
134 #ifdef AG_CPU_LITTLE_ENDIAN
135 #define FC_DMA_LITTLE_ENDIAN
136 #define FC_CPU_LITTLE_ENDIAN
137 #define SA_DMA_LITTLE_ENDIAN
138 #define SA_CPU_LITTLE_ENDIAN
139 #endif
140 
141 #ifdef AG_CPU_BIG_ENDIAN
142 #define FC_DMA_BIG_ENDIAN
143 #define FC_CPU_BIG_ENDIAN
144 #define SA_DMA_BIG_ENDIAN
145 #define SA_CPU_BIG_ENDIAN
146 #endif
147 
148 /* warning: leave this next line as-is.  it is used for FC-Layer testing      */
149 #undef   FC_CHECKMACRO
150 
151 #endif /* __OSENV_H__ */
152