1 /* 2 * Copyright (c) 2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef COM_DTYPES_H 18 #define COM_DTYPES_H 19 20 /** 21 @file com_dtypes.h 22 @brief This header file contains general data types that are of use to all 23 modules. 24 25 */ 26 /*=========================================================================== 27 NOTE: The @brief description and any detailed descriptions above do not appear 28 in the PDF. 29 30 The Utility_Services_API_mainpage.dox file contains all file/group 31 descriptions that are in the output PDF generated using Doxygen and 32 Latex. To edit or update any of the file/group text in the PDF, edit 33 the Utility_Services_API_mainpage.dox file or contact Tech Pubs. 34 35 The above description for this file is part of the "utils_services" 36 group description in the Utility_Services_API_mainpage.dox file. 37 ===========================================================================*/ 38 /*=========================================================================== 39 40 S T A N D A R D D E C L A R A T I O N S 41 42 DESCRIPTION 43 This header file contains general data types that are of use to all modules. 44 The values or definitions are dependent on the specified 45 target. T_WINNT specifies Windows NT based targets, otherwise the 46 default is for ARM targets. 47 48 T_WINNT Software is hosted on an NT platforn, triggers macro and 49 type definitions, unlike definition above which triggers 50 actual OS calls 51 52 ===========================================================================*/ 53 54 55 /*=========================================================================== 56 57 EDIT HISTORY FOR FILE 58 59 This section contains comments describing changes made to this file. 60 Notice that changes are listed in reverse chronological order. 61 62 $Header: /prj/iceng/SCALe/repository/cvs/scale/source/data/com_dtypes.h,v 1.1.1.1 2012/09/19 22:33:30 rjindal Exp $ 63 64 when who what, where, why 65 -------- --- ---------------------------------------------------------- 66 03/21/11 llg (Tech Pubs) Edited/added Doxygen comments and markup. 67 11/09/10 EBR Doxygenated file. 68 09/15/09 pc Created file. 69 ===========================================================================*/ 70 71 72 /*=========================================================================== 73 74 Data Declarations 75 76 ===========================================================================*/ 77 78 #ifdef __cplusplus 79 extern "C" { 80 #endif 81 82 /* For NT apps we want to use the Win32 definitions and/or those 83 supplied by the Win32 compiler for things like NULL, MAX, MIN 84 abs, labs, etc. 85 */ 86 #ifdef T_WINNT 87 #ifndef WIN32 88 #define WIN32 89 #endif 90 #include <stdlib.h> 91 #endif 92 93 /* ------------------------------------------------------------------------ 94 ** Constants 95 ** ------------------------------------------------------------------------ */ 96 97 #ifdef TRUE 98 #undef TRUE 99 #endif 100 101 #ifdef FALSE 102 #undef FALSE 103 #endif 104 105 /** @addtogroup utils_services 106 @{ */ 107 108 /** @name Macros for Common Data Types 109 @{ */ 110 #define TRUE 1 /**< Boolean TRUE value. */ 111 #define FALSE 0 /**< Boolean FALSE value. */ 112 113 #define ON 1 /**< ON value. */ 114 #define OFF 0 /**< OFF value. */ 115 116 #ifndef NULL 117 #define NULL 0 /**< NULL value. */ 118 #endif 119 /** @} */ /* end_name_group Macros for Common Data Types */ 120 121 /* ----------------------------------------------------------------------- 122 ** Standard Types 123 ** ----------------------------------------------------------------------- */ 124 125 /** @} */ /* end_addtogroup utils_services */ 126 127 /* The following definitions are the same across platforms. This first 128 group are the sanctioned types. 129 */ 130 #ifndef _ARM_ASM_ 131 #ifndef _BOOLEAN_DEFINED 132 133 /** @addtogroup utils_services 134 @{ */ 135 /** Boolean value type. 136 */ 137 typedef unsigned char boolean; 138 #define _BOOLEAN_DEFINED 139 #endif 140 141 /** @cond 142 */ 143 #if defined(DALSTDDEF_H) /* guards against a known re-definer */ 144 #define _BOOLEAN_DEFINED 145 #define _UINT32_DEFINED 146 #define _UINT16_DEFINED 147 #define _UINT8_DEFINED 148 #define _INT32_DEFINED 149 #define _INT16_DEFINED 150 #define _INT8_DEFINED 151 #define _UINT64_DEFINED 152 #define _INT64_DEFINED 153 #define _BYTE_DEFINED 154 #endif /* #if !defined(DALSTDDEF_H) */ 155 /** @endcond */ 156 157 #ifndef _UINT32_DEFINED 158 /** Unsigned 32-bit value. 159 */ 160 typedef unsigned long int uint32; 161 #define _UINT32_DEFINED 162 #endif 163 164 #ifndef _UINT16_DEFINED 165 /** Unsigned 16-bit value. 166 */ 167 typedef unsigned short uint16; 168 #define _UINT16_DEFINED 169 #endif 170 171 #ifndef _UINT8_DEFINED 172 /** Unsigned 8-bit value. 173 */ 174 typedef unsigned char uint8; 175 #define _UINT8_DEFINED 176 #endif 177 178 #ifndef _INT32_DEFINED 179 /** Signed 32-bit value. 180 */ 181 typedef signed long int int32; 182 #define _INT32_DEFINED 183 #endif 184 185 #ifndef _INT16_DEFINED 186 /** Signed 16-bit value. 187 */ 188 typedef signed short int16; 189 #define _INT16_DEFINED 190 #endif 191 192 #ifndef _INT8_DEFINED 193 /** Signed 8-bit value. 194 */ 195 typedef signed char int8; 196 #define _INT8_DEFINED 197 #endif 198 199 /** @cond 200 */ 201 /* This group are the deprecated types. Their use should be 202 ** discontinued and new code should use the types above 203 */ 204 #ifndef _BYTE_DEFINED 205 /** DEPRECATED: Unsigned 8 bit value type. 206 */ 207 typedef unsigned char byte; 208 #define _BYTE_DEFINED 209 #endif 210 211 /** DEPRECATED: Unsinged 16 bit value type. 212 */ 213 typedef unsigned short word; 214 /** DEPRECATED: Unsigned 32 bit value type. 215 */ 216 typedef unsigned long dword; 217 218 /** DEPRECATED: Unsigned 8 bit value type. 219 */ 220 typedef unsigned char uint1; 221 /** DEPRECATED: Unsigned 16 bit value type. 222 */ 223 typedef unsigned short uint2; 224 /** DEPRECATED: Unsigned 32 bit value type. 225 */ 226 typedef unsigned long uint4; 227 228 /** DEPRECATED: Signed 8 bit value type. 229 */ 230 typedef signed char int1; 231 /** DEPRECATED: Signed 16 bit value type. 232 */ 233 typedef signed short int2; 234 /** DEPRECATED: Signed 32 bit value type. 235 */ 236 typedef long int int4; 237 238 /** DEPRECATED: Signed 32 bit value. 239 */ 240 typedef signed long sint31; 241 /** DEPRECATED: Signed 16 bit value. 242 */ 243 typedef signed short sint15; 244 /** DEPRECATED: Signed 8 bit value. 245 */ 246 typedef signed char sint7; 247 248 typedef uint16 UWord16 ; 249 typedef uint32 UWord32 ; 250 typedef int32 Word32 ; 251 typedef int16 Word16 ; 252 typedef uint8 UWord8 ; 253 typedef int8 Word8 ; 254 typedef int32 Vect32 ; 255 /** @endcond */ 256 257 #if (! defined T_WINNT) && (! defined __GNUC__) 258 /* Non WinNT Targets */ 259 #ifndef _INT64_DEFINED 260 /** Signed 64-bit value. 261 */ 262 typedef long long int64; 263 #define _INT64_DEFINED 264 #endif 265 #ifndef _UINT64_DEFINED 266 /** Unsigned 64-bit value. 267 */ 268 typedef unsigned long long uint64; 269 #define _UINT64_DEFINED 270 #endif 271 #else /* T_WINNT || TARGET_OS_SOLARIS || __GNUC__ */ 272 /* WINNT or SOLARIS based targets */ 273 #if (defined __GNUC__) 274 #ifndef _INT64_DEFINED 275 typedef long long int64; 276 #define _INT64_DEFINED 277 #endif 278 #ifndef _UINT64_DEFINED 279 typedef unsigned long long uint64; 280 #define _UINT64_DEFINED 281 #endif 282 #else 283 typedef __int64 int64; /* Signed 64-bit value */ 284 #ifndef _UINT64_DEFINED 285 typedef unsigned __int64 uint64; /* Unsigned 64-bit value */ 286 #define _UINT64_DEFINED 287 #endif 288 #endif 289 #endif /* T_WINNT */ 290 291 #endif /* _ARM_ASM_ */ 292 293 #ifdef __cplusplus 294 } 295 #endif 296 297 /** @} */ /* end_addtogroup utils_services */ 298 #endif /* COM_DTYPES_H */ 299