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