1230592Sken/*-
2279253Sslm * Copyright (c) 2006-2015 LSI Corp.
3279253Sslm * Copyright (c) 2013-2015 Avago Technologies
4230592Sken * All rights reserved.
5230592Sken *
6230592Sken * Redistribution and use in source and binary forms, with or without
7230592Sken * modification, are permitted provided that the following conditions
8230592Sken * are met:
9230592Sken * 1. Redistributions of source code must retain the above copyright
10230592Sken *    notice, this list of conditions and the following disclaimer.
11230592Sken * 2. Redistributions in binary form must reproduce the above copyright
12230592Sken *    notice, this list of conditions and the following disclaimer in the
13230592Sken *    documentation and/or other materials provided with the distribution.
14230592Sken *
15230592Sken * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16230592Sken * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17230592Sken * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18230592Sken * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19230592Sken * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20230592Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21230592Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22230592Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23230592Sken * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24230592Sken * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25230592Sken * SUCH DAMAGE.
26230592Sken *
27279253Sslm * Avago Technologies (LSI) MPT-Fusion Host Adapter FreeBSD
28230592Sken *
29230592Sken * $FreeBSD: releng/11.0/sys/dev/mps/mpi/mpi2_type.h 279253 2015-02-24 22:07:42Z slm $
30230592Sken */
31230592Sken
32212420Sken/*
33279253Sslm *  Copyright (c) 2006-2015 LSI Corporation.
34279253Sslm *  Copyright (c) 2013-2015 Avago Technologies
35212420Sken *
36212420Sken *
37212420Sken *           Name:  mpi2_type.h
38212420Sken *          Title:  MPI basic type definitions
39212420Sken *  Creation Date:  August 16, 2006
40212420Sken *
41212420Sken *    mpi2_type.h Version:  02.00.00
42212420Sken *
43212420Sken *  Version History
44212420Sken *  ---------------
45212420Sken *
46212420Sken *  Date      Version   Description
47212420Sken *  --------  --------  ------------------------------------------------------
48212420Sken *  04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
49212420Sken *  --------------------------------------------------------------------------
50212420Sken */
51212420Sken
52212420Sken#ifndef MPI2_TYPE_H
53212420Sken#define MPI2_TYPE_H
54212420Sken
55212420Sken
56212420Sken/*******************************************************************************
57212420Sken * Define MPI2_POINTER if it hasn't already been defined. By default
58212420Sken * MPI2_POINTER is defined to be a near pointer. MPI2_POINTER can be defined as
59212420Sken * a far pointer by defining MPI2_POINTER as "far *" before this header file is
60212420Sken * included.
61212420Sken */
62212420Sken#ifndef MPI2_POINTER
63212420Sken#define MPI2_POINTER     *
64212420Sken#endif
65212420Sken
66212420Sken/* the basic types may have already been included by mpi_type.h */
67212420Sken#ifndef MPI_TYPE_H
68212420Sken/*****************************************************************************
69212420Sken*
70212420Sken*               Basic Types
71212420Sken*
72212420Sken*****************************************************************************/
73212420Sken
74212420Skentypedef signed   char   S8;
75212420Skentypedef unsigned char   U8;
76212420Skentypedef signed   short  S16;
77212420Skentypedef unsigned short  U16;
78212420Sken
79212420Sken#ifdef	__FreeBSD__
80212420Sken
81212420Skentypedef int32_t  S32;
82212420Skentypedef uint32_t U32;
83212420Sken
84212420Sken#else
85212420Sken
86212420Sken#if defined(unix) || defined(__arm) || defined(ALPHA) || defined(__PPC__) || defined(__ppc)
87212420Sken
88212420Sken    typedef signed   int   S32;
89212420Sken    typedef unsigned int   U32;
90212420Sken
91212420Sken#else
92212420Sken
93212420Sken    typedef signed   long  S32;
94212420Sken    typedef unsigned long  U32;
95212420Sken
96212420Sken#endif
97212420Sken#endif
98212420Sken
99212420Skentypedef struct _S64
100212420Sken{
101212420Sken    U32          Low;
102212420Sken    S32          High;
103212420Sken} S64;
104212420Sken
105212420Skentypedef struct _U64
106212420Sken{
107212420Sken    U32          Low;
108212420Sken    U32          High;
109212420Sken} U64;
110212420Sken
111212420Sken
112212420Sken/*****************************************************************************
113212420Sken*
114212420Sken*               Pointer Types
115212420Sken*
116212420Sken*****************************************************************************/
117212420Sken
118212420Skentypedef S8      *PS8;
119212420Skentypedef U8      *PU8;
120212420Skentypedef S16     *PS16;
121212420Skentypedef U16     *PU16;
122212420Skentypedef S32     *PS32;
123212420Skentypedef U32     *PU32;
124212420Skentypedef S64     *PS64;
125212420Skentypedef U64     *PU64;
126212420Sken
127212420Sken#endif
128212420Sken
129212420Sken#endif
130212420Sken
131