1 /*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 2000-2010, LSI Logic Corporation and its contributors. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are 9 * met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 13 * substantially similar to the "NO WARRANTY" disclaimer below 14 * ("Disclaimer") and any redistribution must be conditioned upon including 15 * a substantially similar Disclaimer requirement for further binary 16 * redistribution. 17 * 3. Neither the name of the LSI Logic Corporation nor the names of its 18 * contributors may be used to endorse or promote products derived from 19 * this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF THE COPYRIGHT 31 * OWNER OR CONTRIBUTOR IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 * 33 * 34 * Name: mpi_type.h 35 * Title: MPI Basic type definitions 36 * Creation Date: June 6, 2000 37 * 38 * mpi_type.h Version: 01.05.02 39 * 40 * Version History 41 * --------------- 42 * 43 * Date Version Description 44 * -------- -------- ------------------------------------------------------ 45 * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. 46 * 06-06-00 01.00.01 Update version number for 1.0 release. 47 * 11-02-00 01.01.01 Original release for post 1.0 work 48 * 02-20-01 01.01.02 Added define and ifdef for MPI_POINTER. 49 * 08-08-01 01.02.01 Original release for v1.2 work. 50 * 05-11-04 01.03.01 Original release for MPI v1.3. 51 * 08-19-04 01.05.01 Original release for MPI v1.5. 52 * 08-30-05 01.05.02 Added PowerPC option to #ifdef's. 53 * -------------------------------------------------------------------------- 54 */ 55 56 #ifndef MPI_TYPE_H 57 #define MPI_TYPE_H 58 59 /******************************************************************************* 60 * Define MPI_POINTER if it hasn't already been defined. By default MPI_POINTER 61 * is defined to be a near pointer. MPI_POINTER can be defined as a far pointer 62 * by defining MPI_POINTER as "far *" before this header file is included. 63 */ 64 #ifndef MPI_POINTER 65 #define MPI_POINTER * 66 #endif 67 68 /***************************************************************************** 69 * 70 * B a s i c T y p e s 71 * 72 *****************************************************************************/ 73 74 typedef signed char S8; 75 typedef unsigned char U8; 76 typedef signed short S16; 77 typedef unsigned short U16; 78 79 #ifdef __FreeBSD__ 80 81 typedef int32_t S32; 82 typedef uint32_t U32; 83 84 #else 85 86 #if defined(__unix__) || defined(__arm) || defined(ALPHA) || defined(__PPC__) || defined(__ppc) 87 88 typedef signed int S32; 89 typedef unsigned int U32; 90 91 #else 92 93 typedef signed long S32; 94 typedef unsigned long U32; 95 96 #endif 97 #endif 98 99 typedef struct _S64 100 { 101 U32 Low; 102 S32 High; 103 } S64; 104 105 typedef struct _U64 106 { 107 U32 Low; 108 U32 High; 109 } U64; 110 111 /****************************************************************************/ 112 /* Pointers */ 113 /****************************************************************************/ 114 115 typedef S8 *PS8; 116 typedef U8 *PU8; 117 typedef S16 *PS16; 118 typedef U16 *PU16; 119 typedef S32 *PS32; 120 typedef U32 *PU32; 121 typedef S64 *PS64; 122 typedef U64 *PU64; 123 124 #endif 125