osenv.h revision 285830
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 26Version Control Information: 27 28$RCSfile: osenv.h,v $ 29$Revision: 114125 $ 30 31Note: 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/*************************************************************************** 90iSCSI 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/*************************************************************************** 112FC 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__ */ 152