1265236Sken/*-
2265236Sken * Copyright (c) 2013 LSI Corp.
3265236Sken * All rights reserved.
4265236Sken *
5265236Sken * Redistribution and use in source and binary forms, with or without
6265236Sken * modification, are permitted provided that the following conditions
7265236Sken * are met:
8265236Sken * 1. Redistributions of source code must retain the above copyright
9265236Sken *    notice, this list of conditions and the following disclaimer.
10265236Sken * 2. Redistributions in binary form must reproduce the above copyright
11265236Sken *    notice, this list of conditions and the following disclaimer in the
12265236Sken *    documentation and/or other materials provided with the distribution.
13265236Sken * 3. Neither the name of the author nor the names of any co-contributors
14265236Sken *    may be used to endorse or promote products derived from this software
15265236Sken *    without specific prior written permission.
16265236Sken *
17265236Sken * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18265236Sken * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19265236Sken * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20265236Sken * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21265236Sken * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22265236Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23265236Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24265236Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25265236Sken * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26265236Sken * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27265236Sken * SUCH DAMAGE.
28265236Sken *
29265236Sken * LSI MPT-Fusion Host Adapter FreeBSD
30265236Sken *
31265236Sken * $FreeBSD$
32265236Sken */
33265236Sken
34265236Sken/*
35265236Sken *  Copyright (c) 2000-2007 LSI Corporation.
36265236Sken *
37265236Sken *
38265236Sken *           Name:  mpi2_type.h
39265236Sken *          Title:  MPI basic type definitions
40265236Sken *  Creation Date:  August 16, 2006
41265236Sken *
42265236Sken *    mpi2_type.h Version:  02.00.00
43265236Sken *
44265236Sken *  Version History
45265236Sken *  ---------------
46265236Sken *
47265236Sken *  Date      Version   Description
48265236Sken *  --------  --------  ------------------------------------------------------
49265236Sken *  04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
50265236Sken *  --------------------------------------------------------------------------
51265236Sken */
52265236Sken
53265236Sken#ifndef MPI2_TYPE_H
54265236Sken#define MPI2_TYPE_H
55265236Sken
56265236Sken
57265236Sken/*******************************************************************************
58265236Sken * Define MPI2_POINTER if it hasn't already been defined. By default
59265236Sken * MPI2_POINTER is defined to be a near pointer. MPI2_POINTER can be defined as
60265236Sken * a far pointer by defining MPI2_POINTER as "far *" before this header file is
61265236Sken * included.
62265236Sken */
63265236Sken#ifndef MPI2_POINTER
64265236Sken#define MPI2_POINTER     *
65265236Sken#endif
66265236Sken
67265236Sken/* the basic types may have already been included by mpi_type.h */
68265236Sken#ifndef MPI_TYPE_H
69265236Sken/*****************************************************************************
70265236Sken*
71265236Sken*               Basic Types
72265236Sken*
73265236Sken*****************************************************************************/
74265236Sken
75265236Skentypedef signed   char   S8;
76265236Skentypedef unsigned char   U8;
77265236Skentypedef signed   short  S16;
78265236Skentypedef unsigned short  U16;
79265236Sken
80265236Sken#ifdef	__FreeBSD__
81265236Sken
82265236Skentypedef int32_t  S32;
83265236Skentypedef uint32_t U32;
84265236Sken
85265236Sken#else
86265236Sken
87265236Sken#if defined(unix) || defined(__arm) || defined(ALPHA) || defined(__PPC__) || defined(__ppc)
88265236Sken
89265236Sken    typedef signed   int   S32;
90265236Sken    typedef unsigned int   U32;
91265236Sken
92265236Sken#else
93265236Sken
94265236Sken    typedef signed   long  S32;
95265236Sken    typedef unsigned long  U32;
96265236Sken
97265236Sken#endif
98265236Sken#endif
99265236Sken
100265236Skentypedef struct _S64
101265236Sken{
102265236Sken    U32          Low;
103265236Sken    S32          High;
104265236Sken} S64;
105265236Sken
106265236Skentypedef struct _U64
107265236Sken{
108265236Sken    U32          Low;
109265236Sken    U32          High;
110265236Sken} U64;
111265236Sken
112265236Sken
113265236Sken/*****************************************************************************
114265236Sken*
115265236Sken*               Pointer Types
116265236Sken*
117265236Sken*****************************************************************************/
118265236Sken
119265236Skentypedef S8      *PS8;
120265236Skentypedef U8      *PU8;
121265236Skentypedef S16     *PS16;
122265236Skentypedef U16     *PU16;
123265236Skentypedef S32     *PS32;
124265236Skentypedef U32     *PU32;
125265236Skentypedef S64     *PS64;
126265236Skentypedef U64     *PU64;
127265236Sken
128265236Sken#endif
129265236Sken
130265236Sken#endif
131265236Sken
132