1b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/******************************************************************************
2b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
3b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Copyright (C) 1999-2012 Broadcom Corporation
4b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
5b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Licensed under the Apache License, Version 2.0 (the "License");
6b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  you may not use this file except in compliance with the License.
7b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  You may obtain a copy of the License at:
8b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
9b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  http://www.apache.org/licenses/LICENSE-2.0
10b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
11b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  Unless required by applicable law or agreed to in writing, software
12b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  distributed under the License is distributed on an "AS IS" BASIS,
13b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  See the License for the specific language governing permissions and
15b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *  limitations under the License.
16b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu *
17b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/
1845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef DATA_TYPES_H
1945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define DATA_TYPES_H
2045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
2145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef NULL
2245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define NULL     0
2345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
2445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
2545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef FALSE
2645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define FALSE  0
2745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
2845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
2945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned char   UINT8;
3045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned short  UINT16;
3145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned long   UINT32;
3245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned long long int UINT64;
3345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef signed   long   INT32;
3445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef signed   char   INT8;
3545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef signed   short  INT16;
3645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned char   BOOLEAN;
3745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
3845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT32          TIME_STAMP;
3945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
4045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef TRUE
4145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define TRUE   (!FALSE)
4245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
4345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
4445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef unsigned char   UBYTE;
4545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
4645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifdef __arm
4745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define PACKED  __packed
4845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define INLINE  __inline
4945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#else
5045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define PACKED
5145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define INLINE
5245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
5345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
5445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef BIG_ENDIAN
5545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BIG_ENDIAN FALSE
5645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
5745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
5845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define UINT16_LOW_BYTE(x)      ((x) & 0xff)
5945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define UINT16_HI_BYTE(x)       ((x) >> 8)
6045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
6145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* MACRO definitions for safe string functions */
6245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Replace standard string functions with safe functions if available */
6345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_STRCAT_S(x1,x2,x3)      strcat((x1),(x3))
6445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_STRNCAT_S(x1,x2,x3,x4)  strncat((x1),(x3),(x4))
6545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_STRCPY_S(x1,x2,x3)      strcpy((x1),(x3))
6645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_STRNCPY_S(x1,x2,x3,x4)  strncpy((x1),(x3),(x4))
6745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_SPRINTF_S(x1,x2,x3,x4)  sprintf((x1),(x3),(x4))
6845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define BCM_VSPRINTF_S(x1,x2,x3,x4) vsprintf((x1),(x3),(x4))
6945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
7045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif
7145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu
72