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