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: releng/11.0/sys/dev/pms/freebsd/driver/common/osenv.h 299081 2016-05-04 17:52:53Z pfg $
22*
23*******************************************************************************/
24/***************************************************************************
25
26Version Control Information:
27
28$RCSfile: osenv.h,v $
29$Revision: 114125 $
30
31Note:  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/***************************************************************************
90iSCSI 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/***************************************************************************
112FC 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