diff options
Diffstat (limited to 'include/AEEStdDef.h')
-rw-r--r-- | include/AEEStdDef.h | 1149 |
1 files changed, 1149 insertions, 0 deletions
diff --git a/include/AEEStdDef.h b/include/AEEStdDef.h new file mode 100644 index 0000000..1baefd2 --- /dev/null +++ b/include/AEEStdDef.h @@ -0,0 +1,1149 @@ +/* +* Copyright (c) 2017, The Linux Foundation. All rights reserved. +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder nor the names of its contributors +* may be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +*/ +#ifndef AEESTDDEF_H +#define AEESTDDEF_H +/* +======================================================================= + +FILE: AEEStdDef.h + +DESCRIPTION: definition of basic types, constants, + preprocessor macros + +======================================================================= +*/ + +#include <stdint.h> + +#if defined(COMDEF_H) /* guards against a known re-definer */ +#define _BOOLEAN_DEFINED +#define _UINT32_DEFINED +#define _UINT16_DEFINED +#define _UINT8_DEFINED +#define _INT32_DEFINED +#define _INT16_DEFINED +#define _INT8_DEFINED +#define _UINT64_DEFINED +#define _INT64_DEFINED +#define _BYTE_DEFINED +#endif /* #if !defined(COMDEF_H) */ + +/* ----------------------------------------------------------------------- +** Standard Types +** ----------------------------------------------------------------------- */ + +/* The following definitions are the same accross platforms. This first +** group are the sanctioned types. +*/ +#ifndef _BOOLEAN_DEFINED +typedef unsigned char boolean; /* Boolean value type. */ +#define _BOOLEAN_DEFINED +#endif + +#ifndef _UINT32_DEFINED +typedef uint32_t uint32; /* Unsigned 32 bit value */ +#define _UINT32_DEFINED +#endif + +#ifndef _UINT16_DEFINED +typedef unsigned short uint16; /* Unsigned 16 bit value */ +#define _UINT16_DEFINED +#endif + +#ifndef _UINT8_DEFINED +typedef unsigned char uint8; /* Unsigned 8 bit value */ +#define _UINT8_DEFINED +#endif + +#ifndef _INT32_DEFINED +typedef int32_t int32; /* Signed 32 bit value */ +#define _INT32_DEFINED +#endif + +#ifndef _INT16_DEFINED +typedef signed short int16; /* Signed 16 bit value */ +#define _INT16_DEFINED +#endif + +#ifndef _INT8_DEFINED +typedef signed char int8; /* Signed 8 bit value */ +#define _INT8_DEFINED +#endif + +#if defined(__GNUC__) +#define __int64 long long +#endif + +#ifndef _UINT64_DEFINED +typedef unsigned __int64 uint64; /* Unsigned 64 bit value */ +#define _UINT64_DEFINED +#endif + +#ifndef _INT64_DEFINED +typedef __int64 int64; /* Signed 64 bit value */ +#define _INT64_DEFINED +#endif + +#ifndef _BYTE_DEFINED +typedef unsigned char byte; /* byte type */ +#define _BYTE_DEFINED +#endif + + +#ifndef _AEEUID_DEFINED +typedef uint32 AEEUID; +#define _AEEUID_DEFINED +#endif + +#ifndef _AEEIID_DEFINED +typedef uint32 AEEIID; +#define _AEEIID_DEFINED +#endif + +#ifndef _AEECLSID_DEFINED +typedef uint32 AEECLSID; +#define _AEECLSID_DEFINED +#endif + +#ifndef _AEEPRIVID_DEFINED +typedef uint32 AEEPRIVID; +#define _AEEPRIVID_DEFINED +#endif + +#ifndef _AECHAR_DEFINED +typedef uint16 AECHAR; +#define _AECHAR_DEFINED +#endif + +#ifndef _AEERESULT_DEFINED +typedef int AEEResult; +#define _AEERESULT_DEFINED +#endif + +/* ----------------------------------------------------------------------- +** Function Calling Conventions +** ----------------------------------------------------------------------- */ + +#ifndef CDECL +#ifdef _MSC_VER +#define CDECL __cdecl +#else +#define CDECL +#endif /* _MSC_VER */ +#endif /* CDECL */ + +/* ----------------------------------------------------------------------- +** Constants +** ----------------------------------------------------------------------- */ + +#ifndef TRUE +#define TRUE 1 /* Boolean true value. */ +#endif + +#ifndef FALSE +#define FALSE 0 /* Boolean false value. */ +#endif + +#ifndef NULL +#define NULL 0 +#endif + +#ifndef MIN_INT8 +#define MIN_INT8 -128 +#endif +#ifndef MIN_INT16 +#define MIN_INT16 -32768 +#endif +#ifndef MIN_INT32 +#define MIN_INT32 (~0x7fffffff) /* -2147483648 is unsigned */ +#endif +#ifndef MIN_INT64 +#define MIN_INT64 (~0x7fffffffffffffffLL) /* -9223372036854775808 is unsigned */ +#endif + +#ifndef MAX_INT8 +#define MAX_INT8 127 +#endif +#ifndef MAX_INT16 +#define MAX_INT16 32767 +#endif +#ifndef MAX_INT32 +#define MAX_INT32 2147483647 +#endif +#ifndef MAX_INT64 +#define MAX_INT64 9223372036854775807LL +#endif + +#ifndef MAX_UINT8 +#define MAX_UINT8 255 +#endif +#ifndef MAX_UINT16 +#define MAX_UINT16 65535 +#endif +#ifndef MAX_UINT32 +#define MAX_UINT32 4294967295u +#endif +#ifndef MAX_UINT64 +#define MAX_UINT64 18446744073709551615uLL +#endif + +#ifndef MIN_AECHAR +#define MIN_AECHAR 0 +#endif +#ifndef MAX_AECHAR +#define MAX_AECHAR 65535 +#endif + + +/* ----------------------------------------------------------------------- +** Preprocessor helpers +** ----------------------------------------------------------------------- */ +#define __STR__(x) #x +#define __TOSTR__(x) __STR__(x) +#define __FILE_LINE__ __FILE__ ":" __TOSTR__(__LINE__) + +/* ----------------------------------------------------------------------- +** Types for code generated from IDL +** ----------------------------------------------------------------------- */ + +#ifndef __QIDL_WCHAR_T_DEFINED__ +#define __QIDL_WCHAR_T_DEFINED__ +typedef uint16 _wchar_t; +#endif + +/* __STRING_OBJECT__ will be deprecated in the future */ +#if !defined(__QIDL_STRING_OBJECT_DEFINED__) && !defined(__STRING_OBJECT__) +#define __QIDL_STRING_OBJECT_DEFINED__ +#define __STRING_OBJECT__ +typedef struct _cstring_s +{ + char *data; + int dataLen; + int dataLenReq; +} _cstring_t; + +typedef struct _wstring_s +{ + _wchar_t *data; + int dataLen; + int dataLenReq; +} _wstring_t; +#endif /* __QIDL_STRING_OBJECT_DEFINED__ */ + +/* +======================================================================= + DATA STRUCTURES DOCUMENTATION +======================================================================= + +boolean + +Description: + This type is used to express boolean values (TRUE or FALSE). + +Definition: + typedef unsigned char boolean + +See Also: + byte + int8 + int16 + int32 + int64 + uint32 + uint16 + uint8 + uint64 + +======================================================================= + +uint32 + +Description: + This is a 32-bit unsigned integer. + +Definition: + typedef uint32_t uint32 + +See Also: + boolean + byte + int8 + int16 + int32 + int64 + uint8 + uint16 + uint64 + +======================================================================= + +uint16 + +Description: + This is a 16-bit unsigned integer. + +Definition: + typedef unsigned short uint16 + +See Also: + boolean + byte + int8 + int16 + int32 + int64 + uint8 + uint32 + uint64 + +======================================================================= + +uint8 + +Description: + This is an 8-bit unsigned integer. + +Definition: + typedef unsigned char uint8 + +See Also: + boolean + byte + int8 + int16 + int32 + int64 + uint16 + uint32 + uint64 + +======================================================================= + +int32 + +Description: + This is a 32-bit signed integer. + +Definition: + typedef int32_t int32 + +See Also: + boolean + byte + int8 + int16 + int64 + uint8 + uint16 + uint32 + uint64 + +======================================================================= + +int16 + +Description: + This is a 16-bit signed integer. + +Definition: + typedef signed short int16 + +See Also: + boolean + byte + int8 + int32 + int64 + uint8 + uint16 + uint32 + uint64 + +======================================================================= + +int8 + +Description: + This is an 8-bit signed integer. + +Definition: + typedef signed char int8 + +See Also: + boolean + byte + int16 + int32 + int64 + uint8 + uint16 + uint32 + uint64 + +======================================================================= + +uint64 + +Description: + This is a 64-bit unsigned integer. + +Definition: + typedef unsigned __int64 uint64 + +See Also: + boolean + byte + int8 + int16 + int32 + int64 + uint8 + uint16 + uint32 + +======================================================================= + +int64 + +Description: + This is a 64-bit signed integer. + +Definition: + typedef __int64 int64 + +See Also: + boolean + byte + int8 + int16 + int32 + uint8 + uint16 + uint32 + uint64 + +======================================================================= + +byte + +Description: + This is a byte. + +Definition: + typedef unsigned char byte + +See Also: + boolean + int8 + int16 + int32 + int64 + uint8 + uint16 + uint32 + uint64 + +======================================================================= + +AEEUID + +Description: + This is a BREW unique ID. Used to express unique types, interfaces, classes + groups and privileges. The BREW ClassID Generator generates + unique IDs that can be used anywhere you need a new AEEIID, AEECLSID, + or AEEPRIVID. + +Definition: + typedef uint32 AEEUID + +See Also: + AECHAR + AEECLSID + AEEIID + AEEPRIVID + AEEResult + +======================================================================= + +AEEIID + +Description: + This is an interface ID type, used to denote a BREW interface. It is a special case + of AEEUID. + +Definition: + typedef uint32 AEEIID + +See Also: + AECHAR + AEECLSID + AEEPRIVID + AEEResult + AEEUID + +======================================================================= + +AEECLSID + +Description: + This is a classe ID type, used to denote a BREW class. It is a special case + of AEEUID. + +Definition: + typedef uint32 AEECLSID + +See Also: + AECHAR + AEECLSIDs + AEEIID + AEEPRIVID + AEEResult + AEEUID + +======================================================================= + +AEEPRIVID + +Description: + This is a privilege ID type, used to express a privilege. It is a special case + of AEEUID. + +Definition: + typedef uint32 AEEPRIVID + +See Also: + AECHAR + AEECLSID + AEEIID + AEEResult + AEEUID + +======================================================================= + +AECHAR + +Description: + This is a 16-bit character type. + +Definition: + typedef uint16 AECHAR + +See Also: + AEEPRIVID + AEECLSID + AEEIID + AEEResult + AEEUID + +======================================================================= + +AEEResult + +Description: + This is the standard result type. + +Definition: + typedef int AEEResult + +See Also: + AECHAR + AEEPRIVID + AEECLSID + AEEIID + AEEUID + +======================================================================= + +_wchar_t + +Description: + This is a 16-bit character type corresponding to the IDL 'wchar' + type. + +Definition: + typedef uint16 _wchar_t + +See Also: + _cstring_t + _wstring_t + +======================================================================= + +_cstring_t + +Description: + This structure is used to represent an IDL string when used inside a + sequence or union. + +Definition: + typedef struct _cstring_s { + char* data; + int dataLen; + int dataLenReq; + } _cstring_t; + +Members: + data : A pointer to the NULL-terminated string. + dataLen : The size, in chars, of the buffer pointed to by 'data', + including the NULL terminator. This member is only used + when the structure is part of an rout or inrout + parameter, but must be supplied by the caller as an + input in these cases. + dataLenReq : The size that would have been required to store the + entire result string. This member is only used when the + structure is part of an rout or inrout parameter, when + it is an output value set by the callee. The length of + the returned string (including the NULL terminator) + after a call is the minimum of dataLen and dataLenReq. + +See Also: + _wchar_t + _wstring_t + +======================================================================= + +_wstring_t + +Description: + This structure is used to represent an IDL wstring when used inside a + sequence or union. + +Definition: + typedef struct _wstring_s { + _wchar_t* data; + int dataLen; + int dataLenReq; + } _wstring_t; + +Members: + data : A pointer to the NULL-terminated wide string. + dataLen : The size, in 16-bit characters, of the buffer pointed to + by 'data', including the NULL terminator. This member + is only used when the structure is part of an rout or + inrout parameter, but must be supplied by the caller as + an input in these cases. + dataLenReq : The number of 16-bit characters that would have been + required to store the entire result string. This member + is only used when the structure is part of an rout or + inrout parameter, when it is an output value set by the + callee. The length of the returned wstring (including + the NULL terminator) after a call is the minimum of + dataLen and dataLenReq. + +See Also: + _cstring_t + _wchar_t + +======================================================================= +CONSTANTS DOCUMENTATION +======================================================================= + +TRUE + +Description: + TRUE is the boolean "true." + +Definition: + + #define TRUE 1 + +See Also: + FALSE + NULL + +======================================================================= + +FALSE + +Description: + FALSE is the boolean "false." + +Definition: + + #define FALSE 0 + +See Also: + NULL + TRUE + +======================================================================= + +NULL + +Description: + NULL is the null value, usually used to test a pointer. + +Definition: + + #define NULL 0 + +See Also: + FALSE + TRUE + +======================================================================= + +MIN_INT8 + +Description: + MIN_INT8 is the minimum signed 8-bit integer value. + +Definition: + + #define MIN_INT8 -128 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MIN_INT16 + +Description: + MIN_INT16 is the minimum signed 16-bit integer value + +Definition: + + #define MIN_INT16 -32768 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MIN_INT32 + +Description: + MIN_INT32 is the minimum signed 32-bit integer value. + +Definition: + + #define MIN_INT32 (~0x7fffffff) + +Comments: + Brew MP uses (~0x7fffffff), because -2147483648 is treated as unsigned by compilers. + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT64 + +======================================================================= + +MIN_INT64 + +Description: + MIN_INT64 is the minimum signed 64-bit integer value. + +Definition: + + #define MIN_INT64 (~0x7fffffffffffffffll) + +Comments: + Brew MP uses (~0x7fffffffffffffffll), because -9223372036854775808 is + treated as unsigned by compilers. + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + +======================================================================= + +MAX_INT8 + +Description: + MAX_INT8 is the maximum signed 8-bit integer value + +Definition: + + #define MAX_INT8 127 + +See Also: + MAX_AECHAR + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_INT16 + +Description: + MAX_INT16 is the maximum signed 16-bit integer value. + +Definition: + + #define MAX_INT16 32767 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_INT32 + +Description: + MAX_INT32 is the maximum signed 32-bit integer value. + +Definition: + + #define MAX_INT32 2147483647 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_INT64 + +Description: + MAX_INT64 is the maximum signed 64-bit integer value. + +Definition: + + #define MAX_INT64 9223372036854775807ll + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_UINT8 + +Description: + MAX_UINT8 is the maximum unsigned 8-bit integer value. + +Definition: + + #define MAX_UINT8 255 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_UINT16 + +Description: + MAX_UINT16 is the maximum unsigned 16-bit integer value. + +Definition: + + #define MAX_UINT16 65535 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT32 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_UINT32 + +Description: + MAX_UINT32 is the maximum unsigned 32-bit integer value. + +Definition: + + #define MAX_UINT32 4294967295u + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT64 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_UINT64 + +Description: + MAX_UINT64 is the maximum unsigned 64-bit integer value. + +Definition: + + #define MAX_UINT64 18446744073709551615ull + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MIN_AECHAR + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MIN_AECHAR + +Description: + MIN_AECHAR is the minimum AECHAR value. + +Definition: + + #define MIN_AECHAR 0 + +See Also: + MAX_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= + +MAX_AECHAR + +Description: + MAX_AECHAR is the maximum AECHAR value. + +Definition: + + #define MAX_AECHAR 65535 + +See Also: + MIN_AECHAR + MAX_INT8 + MAX_INT16 + MAX_INT32 + MAX_INT64 + MAX_UINT8 + MAX_UINT16 + MAX_UINT32 + MAX_UINT64 + MIN_INT8 + MIN_INT16 + MIN_INT32 + MIN_INT64 + +======================================================================= +MACROS DOCUMENTATION +======================================================================= + +__STR__() + +Description: + The __STR__() makes a token into a string, used to string-ize things already + defined. + +Definition: + + #define __STR__(x) #x + +Parameters: + x: token to make into a string + +See Also: + __TOSTR__() + __FILE_LINE__ + +======================================================================= + +__TOSTR__() + +Description: + The __TOSTR__() makes a token's value into a string, used to string-ize things + already defined, used with __STR__. + +Definition: + + #define __TOSTR__(x) __STR__(x) + +Parameters: + x: token to evaluate and string-ize + +Evaluation Value: + the token's replacement as a string + +See Also: + __FILE_LINE__ + __STR__() + +======================================================================= + +__FILE_LINE__ + +Description: + The compiler's __FILE__ (a string) and __LINE__ (an integer) are pasted + together as a single string with a ":" between. + +Definition: + + #define __FILE_LINE__ __FILE__ ":" __TOSTR__(__LINE__) + +Evaluation Value: + __FILE__":""__LINE__" + +See Also: + __STR__() + __TOSTR__() + +======================================================================= +*/ + +#endif /* #ifndef AEESTDDEF_H */ + |