]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/dev/pms/freebsd/driver/common/osenv.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / dev / pms / freebsd / driver / common / osenv.h
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 enviornment 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 enviornment:
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 enviornment - The following is used for compiling the iSCSI
91                      protocol.
92 **************************************************************************/
93
94 /*
95 ** Define the existance 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 enviornment - 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__ */