xref: /onnv-gate/usr/src/uts/common/sys/scsi/adapters/mpt_sas/mpi/mpi2_type.h (revision 9907:98086c85a8f7)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2000 to 2009, LSI Corporation.
24  * All rights reserved.
25  *
26  * Redistribution and use in source and binary forms of all code within
27  * this file that is exclusively owned by LSI, with or without
28  * modification, is permitted provided that, in addition to the CDDL 1.0
29  * License requirements, the following conditions are met:
30  *
31  *    Neither the name of the author nor the names of its contributors may be
32  *    used to endorse or promote products derived from this software without
33  *    specific prior written permission.
34  *
35  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
36  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
37  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
38  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
39  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
40  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
41  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
42  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
43  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
46  * DAMAGE.
47  */
48 
49 /*
50  *           Name:  mpi2_type.h
51  *          Title:  MPI basic type definitions
52  *  Creation Date:  August 16, 2006
53  *
54  *    mpi2_type.h Version:  02.00.00
55  *
56  *  Version History
57  *  ---------------
58  *
59  *  Date      Version   Description
60  *  --------  --------  ------------------------------------------------------
61  *  04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
62  *  --------------------------------------------------------------------------
63  */
64 
65 #ifndef MPI2_TYPE_H
66 #define MPI2_TYPE_H
67 
68 
69 /*******************************************************************************
70  * Define MPI2_POINTER if it hasn't already been defined. By default
71  * MPI2_POINTER is defined to be a near pointer. MPI2_POINTER can be defined as
72  * a far pointer by defining MPI2_POINTER as "far *" before this header file is
73  * included.
74  */
75 #ifndef MPI2_POINTER
76 #define MPI2_POINTER     *
77 #endif
78 
79 /* the basic types may have already been included by mpi_type.h */
80 #ifndef MPI_TYPE_H
81 /*****************************************************************************
82 *
83 *               Basic Types
84 *
85 *****************************************************************************/
86 
87 typedef signed   char   S8;
88 typedef unsigned char   U8;
89 typedef signed   short  S16;
90 typedef unsigned short  U16;
91 
92 
93 #if defined(unix) || defined(__arm) || defined(ALPHA) || defined(__PPC__) || defined(__ppc)
94 
95     typedef signed   int   S32;
96     typedef unsigned int   U32;
97 
98 #else
99 
100     typedef signed   long  S32;
101     typedef unsigned long  U32;
102 
103 #endif
104 
105 
106 typedef struct _S64
107 {
108     U32          Low;
109     S32          High;
110 } S64;
111 
112 typedef struct _U64
113 {
114     U32          Low;
115     U32          High;
116 } U64;
117 
118 
119 /*****************************************************************************
120 *
121 *               Pointer Types
122 *
123 *****************************************************************************/
124 
125 typedef S8      *PS8;
126 typedef U8      *PU8;
127 typedef S16     *PS16;
128 typedef U16     *PU16;
129 typedef S32     *PS32;
130 typedef U32     *PU32;
131 typedef S64     *PS64;
132 typedef U64     *PU64;
133 
134 #endif
135 
136 #endif
137 
138