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