1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Copyright (C) 1999-2012 Broadcom Corporation
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  you may not use this file except in compliance with the License.
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  You may obtain a copy of the License at:
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  See the License for the specific language governing permissions and
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *  limitations under the License.
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project *
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef DATA_TYPES_H
19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define DATA_TYPES_H
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NULL
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NULL     0
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef FALSE
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define FALSE  0
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned char   UINT8;
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned short  UINT16;
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned long   UINT32;
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned long long int UINT64;
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef signed   long   INT32;
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef signed   char   INT8;
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef signed   short  INT16;
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned char   BOOLEAN;
375c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenentypedef UINT32          UINTPTR;
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT32          TIME_STAMP;
39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef TRUE
41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define TRUE   (!FALSE)
42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef unsigned char   UBYTE;
45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __arm
47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define PACKED  __packed
48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define INLINE  __inline
49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#else
50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define PACKED
51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define INLINE
52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef BIG_ENDIAN
55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BIG_ENDIAN FALSE
56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_LOW_BYTE(x)      ((x) & 0xff)
59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UINT16_HI_BYTE(x)       ((x) >> 8)
60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* MACRO definitions for safe string functions */
62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* Replace standard string functions with safe functions if available */
63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_STRCAT_S(x1,x2,x3)      strcat((x1),(x3))
64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_STRNCAT_S(x1,x2,x3,x4)  strncat((x1),(x3),(x4))
65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_STRCPY_S(x1,x2,x3)      strcpy((x1),(x3))
66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_STRNCPY_S(x1,x2,x3,x4)  strncpy((x1),(x3),(x4))
67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_SPRINTF_S(x1,x2,x3,x4)  sprintf((x1),(x3),(x4))
68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define BCM_VSPRINTF_S(x1,x2,x3,x4) vsprintf((x1),(x3),(x4))
69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
72