diff options
author | hongteng <hongteng@google.com> | 2011-04-22 15:23:37 -0700 |
---|---|---|
committer | Thomas Le Guevel <thomaslg@google.com> | 2011-05-05 16:35:11 -0700 |
commit | aa382f3637a68361989d5b70e3184bddcc472d3d (patch) | |
tree | 7e0ec57bc2ae8527b95f63d13e6243c6e1db1967 /libvideoeditor/osal/inc | |
parent | 74d808e9a6ab4dee6f30790eda5bf67e493a8ea5 (diff) | |
download | frameworks_av-aa382f3637a68361989d5b70e3184bddcc472d3d.zip frameworks_av-aa382f3637a68361989d5b70e3184bddcc472d3d.tar.gz frameworks_av-aa382f3637a68361989d5b70e3184bddcc472d3d.tar.bz2 |
Fix for issue 4035003 Support for 64 bit datatype
a. M4OSA_64BITS_SUPPORTED removed
b. M4OSA_64BITS_NOT_SUPPORTED removed
c. M4OSA_UInt64 removed
d. M4OSA_Int64 removed
e. M4OSA_INT32_FROM_INT32 removed
f. M4OSA_TIME_FROM_INT32_UINT32 removed
g. clean-up all macro in M4OSA_Time.h, M4OSA_Types.h and osal/inc/M4OSA_FileCommon.h
Change-Id: I2b1751962945dcc668e995d05a57b66cd268642f
Diffstat (limited to 'libvideoeditor/osal/inc')
-rwxr-xr-x | libvideoeditor/osal/inc/M4OSA_FileCommon.h | 118 | ||||
-rwxr-xr-x | libvideoeditor/osal/inc/M4OSA_FileCommon_priv.h | 5 | ||||
-rwxr-xr-x | libvideoeditor/osal/inc/M4OSA_Time.h | 119 | ||||
-rwxr-xr-x | libvideoeditor/osal/inc/M4OSA_Types.h | 275 |
4 files changed, 2 insertions, 515 deletions
diff --git a/libvideoeditor/osal/inc/M4OSA_FileCommon.h b/libvideoeditor/osal/inc/M4OSA_FileCommon.h index 663be66..eda6921 100755 --- a/libvideoeditor/osal/inc/M4OSA_FileCommon.h +++ b/libvideoeditor/osal/inc/M4OSA_FileCommon.h @@ -34,21 +34,7 @@ #include "M4OSA_OptionID.h" - -/*#define M4OSA_FILE_POS_64_BITS_SUPPORTED*/ /*Means M4OSA_Int64 is used*/ - -#ifndef M4OSA_FILE_POS_64_BITS_SUPPORTED -#define M4OSA_FILE_POS_32_BITS_SUPPORTED /*Means M4OSA_Int32 is used*/ -#endif /*M4OSA_FILE_POS_64_BITS_SUPPORTED*/ - - - -#ifdef M4OSA_FILE_POS_64_BITS_SUPPORTED -typedef M4OSA_Int64 M4OSA_FilePosition; -#endif -#ifdef M4OSA_FILE_POS_32_BITS_SUPPORTED typedef M4OSA_Int32 M4OSA_FilePosition; -#endif /** This enum defines the application mode access. * ie, the application uses a file descriptor to read or to write or @@ -129,109 +115,5 @@ typedef enum M4OSA_FileSeekAccessMode #define M4ERR_FILE_INVALID_POSITION M4OSA_ERR_CREATE(M4_ERR, M4OSA_FILE_COMMON, 0x000004) -#ifdef M4OSA_FILE_POS_64_BITS_SUPPORTED - -#define M4OSA_FPOS_SET(fpos_a, fpos_b)\ - M4OSA_INT64_SET(fpos_a, fpos_b) - -#define M4OSA_FPOS_ADD(fpos_result, fpos_a, fpos_b)\ - M4OSA_INT64_ADD(fpos_result, fpos_a, fpos_b) - -#define M4OSA_FPOS_SUB(fpos_result, fpos_a, fpos_b)\ - M4OSA_INT64_SUB(fpos_result, fpos_a, fpos_b) - -#define M4OSA_FPOS_ADD_CONST_UINT32(fpos_out, fpos_in, i32_in)\ - { M4OSA_Int64 i64_in;\ - M4OSA_INT64_FROM_INT32(i64_in, i32_in);\ - M4OSA_INT64_ADD(fpos_out, fpos_in, i64_in); } - -#define M4OSA_FPOS_SUB_CONST_UINT32(fpos_out, fpos_in, i32_in)\ - { M4OSA_Int64 i64_in;\ - M4OSA_INT64_FROM_INT32(i64_in, i32_in);\ - M4OSA_INT64_SUB(fpos_out, fpos_in, i64_in); } - -#define M4OSA_FPOS_SCALAR_PRODUCT(fpos_result, fpos_a, i32_value)\ - M4OSA_INT64_SCALAR_PRODUCT(fpos_result, fpos_a, i32_value) - -#define M4OSA_FPOS_SCALAR_DIVISION(fpos_result, fpos_a, i32_value)\ - M4OSA_INT64_SCALAR_DIVISION(fpos_result, fpos_a, i32_value) - -#define M4OSA_FPOS_COMPARE(fpos_a, fpos_b)\ - M4OSA_INT64_COMPARE(fpos_a, fpos_b) - -#define M4OSA_FILE_POSITION_TO_INT(fpos, ipos)\ - M4OSA_INT64_SET(ipos, fpos) - -#define M4OSA_INT_TO_FILE_POSITION(ipos, fpos)\ - M4OSA_FPOS_SET(fpos, ipos) - -#define M4OSA_FPOS_IS_POSITIVE(fpos_value)\ - M4OSA_INT64_IS_POSITIVE(fpos_value) - -#define M4OSA_FPOS_NEG(fpos_result, fpos_value)\ - M4OSA_INT64_NEG(fpos_result, fpos_value) - -#define M4OSA_FPOS_ABS(fpos_result, fpos_value)\ - M4OSA_INT64_ABS(fpos_result, fpos_value) - -#define M4OSA_FPOS_LEFT_SHIFT(fpos_result, fpos_value, ui32_nbPositions)\ - M4OSA_INT64_LEFT_SHIFT(fpos_result, fpos_value, ui32_nbPositions) - -#define M4OSA_FPOS_RIGHT_SHIFT(fpos_result, fpos_value, ui32_nbPositions)\ - M4OSA_INT64_RIGHT_SHIFT(fpos_result, fpos_value, ui32_nbPositions) - -#endif - -#ifdef M4OSA_FILE_POS_32_BITS_SUPPORTED - -#define M4OSA_FPOS_SET(fpos_a, fpos_b)\ - M4OSA_INT32_SET(fpos_a, fpos_b) - -#define M4OSA_FPOS_ADD(fpos_result, fpos_a, fpos_b)\ - M4OSA_INT32_ADD(fpos_result, fpos_a, fpos_b) - -#define M4OSA_FPOS_SUB(fpos_result, fpos_a, fpos_b)\ - M4OSA_INT32_SUB(fpos_result, fpos_a, fpos_b) - -#define M4OSA_FPOS_ADD_CONST_UINT32(fpos_out, fpos_in, i32_in)\ - M4OSA_FPOS_ADD(fpos_out, fpos_in, i32_in) - -#define M4OSA_FPOS_SUB_CONST_UINT32(fpos_out, fpos_in, i32_in)\ - M4OSA_FPOS_SUB(fpos_out, fpos_in, i32_in) - -#define M4OSA_FPOS_SCALAR_PRODUCT(fpos_result, fpos_a, i32_value)\ - M4OSA_INT32_SCALAR_PRODUCT(fpos_result, fpos_a, i32_value) - -#define M4OSA_FPOS_SCALAR_DIVISION(fpos_result, fpos_a, i32_value)\ - M4OSA_INT32_SCALAR_DIVISION(fpos_result, fpos_a, i32_value) - -#define M4OSA_FPOS_COMPARE(fpos_a, fpos_b)\ - M4OSA_INT32_COMPARE(fpos_a, fpos_b) - -#define M4OSA_FILE_POSITION_TO_INT(fpos, ipos)\ - M4OSA_INT32_SET(ipos, fpos) - -#define M4OSA_INT_TO_FILE_POSITION(ipos, fpos)\ - M4OSA_FPOS_SET(fpos, ipos) - -#define M4OSA_FPOS_IS_POSITIVE(fpos_value)\ - M4OSA_INT32_IS_POSITIVE(fpos_value) - -#define M4OSA_FPOS_NEG(fpos_result, fpos_value)\ - M4OSA_INT32_NEG(fpos_result, fpos_value) - -#define M4OSA_FPOS_ABS(fpos_result, fpos_value)\ - M4OSA_INT32_ABS(fpos_result, fpos_value) - -#define M4OSA_FPOS_LEFT_SHIFT(fpos_result, fpos_value, ui32_nbPositions)\ - M4OSA_INT32_LEFT_SHIFT(fpos_result, fpos_value, ui32_nbPositions) - -#define M4OSA_FPOS_RIGHT_SHIFT(fpos_result, fpos_value, ui32_nbPositions)\ - M4OSA_INT32_RIGHT_SHIFT(fpos_result, fpos_value, ui32_nbPositions) - -#endif - - - #endif /*M4OSA_FILECOMMON_H*/ diff --git a/libvideoeditor/osal/inc/M4OSA_FileCommon_priv.h b/libvideoeditor/osal/inc/M4OSA_FileCommon_priv.h index f3064a7..261070f 100755 --- a/libvideoeditor/osal/inc/M4OSA_FileCommon_priv.h +++ b/libvideoeditor/osal/inc/M4OSA_FileCommon_priv.h @@ -46,12 +46,7 @@ typedef enum M4OSA_LastSeek typedef struct { M4OSA_UInt32 coreID_read; M4OSA_UInt32 coreID_write; -#ifdef M4OSA_FILE_POS_64_BITS_SUPPORTED - /** The file handler */ - M4OSA_Int32 file_desc; -#else FILE* file_desc; -#endif /* M4OSA_FILE_POS_64_BITS_SUPPORTED */ /** The name of the URL */ M4OSA_Char* url_name; /** The name of the file */ diff --git a/libvideoeditor/osal/inc/M4OSA_Time.h b/libvideoeditor/osal/inc/M4OSA_Time.h index 7545541..737ebad 100755 --- a/libvideoeditor/osal/inc/M4OSA_Time.h +++ b/libvideoeditor/osal/inc/M4OSA_Time.h @@ -37,128 +37,13 @@ typedef signed long long M4OSA_Time; /** This macro sets the unknown time value */ -#ifdef M4OSA_64BITS_SUPPORTED - #define M4OSA_TIME_SET_UNKNOWN(time) {time = 0x8000000000000000LL ;} -#endif /* M4OSA_64BITS_SUPPORTED */ - -#ifdef M4OSA_64BITS_COUPLE_INT - #define M4OSA_TIME_SET_UNKNOWN(time) {\ - time.major = 0x80000000 ;\ - time.minor = 0x00000000 ;} -#endif /* M4OSA_64BITS_COUPLE_INT */ - -#ifdef M4OSA_64BITS_NOT_SUPPORTED - #define M4OSA_TIME_SET_UNKNOWN(time) {time = 0x80000000;} -#endif /* M4OSA_64BITS_NOT_SUPPORTED */ - - -/** This macro returns 1 if the provided time is set to unknown time, - and 0 else.*/ -#ifdef M4OSA_64BITS_SUPPORTED - -#define M4OSA_TIME_IS_UNKNOWN(time) (((M4OSA_UInt64)(time) == 0x8000000000000000LL) ? 1 : 0) - -#elif defined M4OSA_64BITS_COUPLE_INT - -#define M4OSA_TIME_IS_UNKNOWN(time)\ - (( (M4OSA_INT64_GET_HIGH32(time) == M4OSA_unknownTimeMajor)\ - &&(M4OSA_INT64_GET_LOW32(time) == M4OSA_unknownTimeMinor) ) ? 1:0) - -#else /* M4OSA_64BITS_NOT_SUPPORTED */ - -#define M4OSA_TIME_IS_UNKNOWN(time) (((M4OSA_UInt32)(time) == 0x80000000) ? 1 : 0) - -#endif - - -/** This macro affects time2 to time1.*/ -#define M4OSA_TIME_SET(time1, time2)\ - M4OSA_INT64_SET(time1, time2) - - -/** This macro sets time from i32.*/ -#define M4OSA_TIME_FROM_INT32(time, i32)\ - M4OSA_INT64_FROM_INT32(time, i32) - - -/** This macro sets time from i32 ui32.*/ -#define M4OSA_TIME_FROM_INT32_UINT32(time, i32, ui32)\ - M4OSA_INT64_FROM_INT32_UINT32(time, i32, ui32) - - -/** This macro tests if time is positive*/ -#define M4OSA_TIME_IS_POSITIVE(time)\ - M4OSA_INT64_IS_POSITIVE(time) - - -/** This macro sets time_out = -time_in*/ -#define M4OSA_TIME_NEG(time_out, time_in)\ - M4OSA_INT64_NEG(time_out, time_in) - - -/** This macro sets time_out = |time_in|*/ -#define M4OSA_TIME_ABS(time_out, time_in)\ - M4OSA_INT64_ABS(time_out, time_in) - - -/** This macro adds the 2 provided times (time1 and time2), - and writes the result in result. Both times must have the same timescale.*/ -#define M4OSA_TIME_ADD(result, time1, time2)\ - M4OSA_INT64_ADD(result, time1, time2) - - -/** This macro subs the 2 provided times (time1 and time2), - and writes the result in result.*/ -#define M4OSA_TIME_SUB(result, time1, time2)\ - M4OSA_INT64_SUB(result, time1, time2) - - -/** This macro does a scalar product (result = time*value), - and writes the result in result.*/ -#define M4OSA_TIME_SCALAR_PRODUCT(result, time, value)\ - M4OSA_INT64_SCALAR_PRODUCT(result, time, value) - - -/** This macro does a scalar division (result= time / value), - and writes the result in result.*/ -#define M4OSA_TIME_SCALAR_DIVISION(result, time, value)\ - M4OSA_INT64_SCALAR_DIVISION(result, time, value) - - -/** This macro updates the time to the oldTimeScale to the newTimeScale. The - result (the nearest rounded to the min value) is stored in result value. */ -#define M4OSA_TIME_CHANGE_TIMESCALE(result, time, oldTimeScale, newTimeScale)\ - { M4OSA_Time t_tempTime1, t_tempTime2, t_tempTime3;\ - M4OSA_Int32 i32_quotient = newTimeScale/oldTimeScale;\ - M4OSA_Int32 i32_rest = newTimeScale%oldTimeScale;\ - M4OSA_INT64_SCALAR_PRODUCT(t_tempTime1, time, i32_quotient);\ - M4OSA_INT64_SCALAR_PRODUCT(t_tempTime2, time, i32_rest);\ - M4OSA_INT64_SCALAR_DIVISION(t_tempTime3, t_tempTime2, oldTimeScale);\ - M4OSA_INT64_ADD(result, t_tempTime1, t_tempTime3); } - - -/** This macro tests the 2 provided times (time1 & time2). - The result is either: - * @arg 1: if time1 is bigger than time2 - * @arg 0: if time2 is equal to time2 - * @arg -1: if time1 is smaller than time2 */ -#define M4OSA_TIME_COMPARE(time1, time2)\ - M4OSA_INT64_COMPARE(time1, time2) +#define M4OSA_TIME_UNKNOWN 0x80000000 /** This macro converts a time with a time scale to millisecond. The result is a M4OSA_Double*/ #define M4OSA_TIME_TO_MS(result, time, timescale)\ - { M4OSA_INT64_TO_DOUBLE(result, time);\ - result = (1000*result)/((M4OSA_Double)timescale); } - - -/** This macro converts a millisecond time to M4OSA_Time with the provided - timescale. The result (the nearest rounded to the min value) is stored - in time value.*/ -#define M4OSA_MS_TO_TIME(time, timescale, ms)\ - {M4OSA_INT64_FROM_DOUBLE(time, (ms*((M4OSA_Double)(timescale))/1000.0));} - + { result = (1000*(M4OSA_Double)time)/((M4OSA_Double)timescale); } #endif /*M4OSA_TIME_H*/ diff --git a/libvideoeditor/osal/inc/M4OSA_Types.h b/libvideoeditor/osal/inc/M4OSA_Types.h index 6fcf475..2ee9568 100755 --- a/libvideoeditor/osal/inc/M4OSA_Types.h +++ b/libvideoeditor/osal/inc/M4OSA_Types.h @@ -36,10 +36,6 @@ extern "C" { #endif -/*#define M4OSA_64BITS_SUPPORTED */ /* means long long is used */ -/*#define M4OSA_64BITS_COUPLE_INT */ /* means couple int32 is used */ -#define M4OSA_64BITS_NOT_SUPPORTED /* means Int32 is used */ - typedef signed char M4OSA_Bool; typedef unsigned char M4OSA_UInt8; @@ -59,35 +55,6 @@ typedef unsigned char M4OSA_WChar; typedef void M4OSA_Void; -typedef struct -{ - M4OSA_Int32 high; - M4OSA_Int32 low; -} M4OSA_CoupleInt32; - -#ifdef M4OSA_64BITS_SUPPORTED -typedef signed long long M4OSA_Int64; -typedef unsigned long long M4OSA_UInt64; -#endif - -#ifdef M4OSA_64BITS_COUPLE_INT -typedef struct -{ - M4OSA_Int32 major; - M4OSA_UInt32 minor; -} M4OSA_Int64; -typedef struct -{ - M4OSA_UInt32 major; - M4OSA_UInt32 minor; -} M4OSA_UInt64; -#endif - -#ifdef M4OSA_64BITS_NOT_SUPPORTED -typedef M4OSA_Int32 M4OSA_Int64; -typedef M4OSA_UInt32 M4OSA_UInt64; -#endif - /* Min & max definitions*/ #define M4OSA_UINT8_MIN 0 #define M4OSA_UINT8_MAX 255 @@ -113,22 +80,6 @@ typedef M4OSA_UInt32 M4OSA_UInt64; #define M4OSA_UCHAR_MIN 0 #define M4OSA_UCHAR_MAX 255 -#ifdef M4OSA_64BITS_NOT_SUPPORTED - -#define M4OSA_UINT64_MIN M4OSA_UINT32_MIN -#define M4OSA_UINT64_MAX M4OSA_UINT32_MAX -#define M4OSA_INT64_MIN M4OSA_INT32_MIN -#define M4OSA_INT64_MAX M4OSA_INT32_MAX - -#else /* M4OSA_64BITS_NOT_SUPPORTED*/ - -#define M4OSA_UINT64_MIN 0 -#define M4OSA_UINT64_MAX 0xFFFFFFFFFFFFFFFFLL -#define M4OSA_INT64_MIN 0x8000000000000000LL -#define M4OSA_INT64_MAX 0x7FFFFFFFFFFFFFFFLL - -#endif /* M4OSA_64BITS_NOT_SUPPORTED*/ - #define M4OSA_NULL 0x00 #define M4OSA_TRUE 0x01 #define M4OSA_FALSE 0x00 @@ -143,235 +94,9 @@ typedef M4OSA_UInt32 M4OSA_UInt64; typedef void* M4OSA_Context; - /** It is a unique ID for each core component*/ typedef M4OSA_UInt16 M4OSA_CoreID; - -/* Macro to support big endian and little endian platform */ - -/* to translate a 16 bits to its Big Endian value*/ -#define M4OSA_INT16_TO_BE(ui16_host) ((((ui16_host) & (M4OSA_UInt16) 0x00ff) << 8) | \ - (((ui16_host) & (M4OSA_UInt16) 0xff00) >> 8) ) - -/* to translate a 32 bits to its Big Endian value */ -#define M4OSA_INT32_TO_BE(ui32_host) ((((ui32_host) & (M4OSA_UInt32) 0x000000ff) << 24) | \ - (((ui32_host) & (M4OSA_UInt32) 0x0000ff00) << 8) | \ - (((ui32_host) & (M4OSA_UInt32) 0x00ff0000) >> 8) | \ - (((ui32_host) & (M4OSA_UInt32) 0xff000000) >> 24)) - -/* to translate a 64 bits to its Big Endian value */ -#define M4OSA_INT64_TO_BE(ui64_host) ((((ui64_host) & (M4OSA_UInt64) 0x00000000000000ff) << 56) | \ - (((ui64_host) & (M4OSA_UInt64) 0x000000000000ff00) << 40) | \ - (((ui64_host) & (M4OSA_UInt64) 0x0000000000ff0000) << 24) | \ - (((ui64_host) & (M4OSA_UInt64) 0x00000000ff000000) << 8) | \ - (((ui64_host) & (M4OSA_UInt64) 0x000000ff00000000) >> 8) | \ - (((ui64_host) & (M4OSA_UInt64) 0x0000ff0000000000) >> 24) | \ - (((ui64_host) & (M4OSA_UInt64) 0x00ff000000000000) >> 40) | \ - (((ui64_host) & (M4OSA_UInt64) 0xff00000000000000) >> 56)) - -/* to translate a Big Endian 16 bits to its host representation */ -#define M4OSA_BE_TO_INT16(ui16_net) ((((ui16_net) & (M4OSA_UInt16) 0x00ff) << 8) | \ - (((ui16_net) & (M4OSA_UInt16) 0xff00) >> 8) ) - -/* to translate a Big Endian 32 bits to its host representation*/ -#define M4OSA_BE_TO_INT32(ui32_net) ((((ui32_net) & (M4OSA_UInt32) 0x000000ff) << 24) | \ - (((ui32_net) & (M4OSA_UInt32) 0x0000ff00) << 8) | \ - (((ui32_net) & (M4OSA_UInt32) 0x00ff0000) >> 8) | \ - (((ui32_net) & (M4OSA_UInt32) 0xff000000) >> 24)) - -/* to translate a Big Endian 64 bits to its host representation */ -#define M4OSA_BE_TO_INT64(ui64_net) ((((ui64_net) & (M4OSA_UInt64) 0x00000000000000ff) << 56) | \ - (((ui64_net) & (M4OSA_UInt64) 0x000000000000ff00) << 40) | \ - (((ui64_net) & (M4OSA_UInt64) 0x0000000000ff0000) << 24) | \ - (((ui64_net) & (M4OSA_UInt64) 0x00000000ff000000) << 8) | \ - (((ui64_net) & (M4OSA_UInt64) 0x000000ff00000000) >> 8) | \ - (((ui64_net) & (M4OSA_UInt64) 0x0000ff0000000000) >> 24) | \ - (((ui64_net) & (M4OSA_UInt64) 0x00ff000000000000) >> 40) | \ - (((ui64_net) & (M4OSA_UInt64) 0xff00000000000000) >> 56)) - -/* to translate a 16 bits to its Little Endian value*/ -#define M4OSA_INT16_TO_LE(ui16_host) (ui16_host) - -/* to translate a 32 bits to its Little Endian value */ -#define M4OSA_INT32_TO_LE(ui32_host) (ui32_host) - -/* to translate a 64 bits to its Little Endian value */ -#define M4OSA_INT64_TO_LE(ui64_host) (ui64_host) - -/* to translate a Little Endian 16 bits to its host representation */ -#define M4OSA_LE_TO_INT16(ui16_net) (ui16_net) - -/* to translate a Little Endian 32 bits to its host representation*/ -#define M4OSA_LE_TO_INT32(ui32_net) (ui32_net) - -/* to translate a Little Endian 64 bits to its host representation */ -#define M4OSA_LE_TO_INT64(ui64_net) (ui64_net) - - -/* Macro to manipulate M4OSA_Int32*/ -#define M4OSA_INT32_SET(i32_out, i32_in)\ - { i32_out = i32_in; } - -#define M4OSA_INT32_ADD(i32_result, i32_a, i32_b)\ - { i32_result = (i32_a) + (i32_b); } - -#define M4OSA_INT32_SUB(i32_result, i32_a, i32_b)\ - { i32_result = (i32_a) - (i32_b); } - -#define M4OSA_INT32_SCALAR_PRODUCT(i32_result, i32_a, i32_value)\ - { i32_result = (i32_a) * (i32_value); } - -#define M4OSA_INT32_SCALAR_DIVISION(i32_result, i32_a, i32_value)\ - { i32_result = (i32_a) / (i32_value); } - -#define M4OSA_INT32_COMPARE(i32_a, i32_b)\ - ( ((i32_a) == (i32_b)) ? 0 : ( ((i32_a) > (i32_b)) ? 1 : -1) ) - -#define M4OSA_INT32_FROM_INT32(i32_result, i32_value)\ - { i32_result = (M4OSA_Int32)(i32_value); } - -#define M4OSA_INT32_FROM_INT32_UINT32(i32_result, i32_high, ui32_low)\ - { i32_result = (M4OSA_Int32)(ui32_low); } - -#define M4OSA_INT32_GET_LOW32(i32_value) ((M4OSA_Int32)(i32_value)) - -#define M4OSA_INT32_GET_HIGH32(i32_value) (0) - -#define M4OSA_INT32_IS_POSITIVE(i32_value) ((i32_value) >= 0) - -#define M4OSA_INT32_NEG(i32_result, i32_value)\ - { i32_result = -(i32_value); } - -#define M4OSA_INT32_ABS(i32_result, i32_value)\ - { if ((i32_value) > 0) { i32_result = i32_value; }\ - else { i32_result = -(i32_value); } } - -#define M4OSA_INT32_LEFT_SHIFT(i32_result, i32_value, ui32_nbPos)\ - { i64_result = (((ui32_nbPos)>0x1F)?0:((i64_value)<<(ui32_nbPos))); } - -#define M4OSA_INT32_RIGHT_SHIFT(i32_result, i32_value, ui32_nbPos)\ - { i64_result = (((ui32_nbPos)>0x1F)?0:((i64_value)>>(ui32_nbPos))); } - -#define M4OSA_INT32_TO_DOUBLE(f_result, i32_value)\ - { f_result = (M4OSA_Double)(i32_value); } - -#define M4OSA_INT32_FROM_DOUBLE(i32_result, f_value)\ - { i32_result = (M4OSA_Int32)(f_value); } - - -#ifdef M4OSA_64BITS_SUPPORTED - -/* Macro to manipulate M4OSA_Int64*/ -#define M4OSA_INT64_SET(i64_out, i64_in) { i64_out = i64_in; } - -#define M4OSA_INT64_ADD(i64_result, i64_a, i64_b)\ - { i64_result = (i64_a) + (i64_b); } - -#define M4OSA_INT64_SUB(i64_result, i64_a, i64_b)\ - { i64_result = (i64_a) - (i64_b); } - -#define M4OSA_INT64_SCALAR_PRODUCT(i64_result, i64_a, i32_value)\ - { i64_result = (i64_a) * (i32_value); } - -#define M4OSA_INT64_SCALAR_DIVISION(i64_result, i64_a, i32_value)\ - { i64_result = (i64_a) / (i32_value); } - -#define M4OSA_INT64_COMPARE(i64_a, i64_b)\ - ( ((i64_a) == (i64_b)) ? 0 : ( ((i64_a) > (i64_b)) ? 1 : -1) )\ - -#define M4OSA_INT64_FROM_INT32(i64_result, i32_value)\ - { i64_result = (M4OSA_Int64)(i32_value); } - -#define M4OSA_INT64_FROM_INT32_UINT32(i64_result, i32_high, ui32_low)\ - { i64_result = (i32_high); i64_result = (i64_result<<32)+(ui32_low); } - -#define M4OSA_INT64_GET_LOW32(i64_value)\ - ((M4OSA_Int32)((i64_value) & 0xFFFFFFFF)) - -#define M4OSA_INT64_GET_HIGH32(i64_value)\ - ((M4OSA_Int32)(((i64_value) >> 32) & 0xFFFFFFFF)) - -#define M4OSA_INT64_IS_POSITIVE(i64_value) (((i64_value)>=0)?1:0) - -#define M4OSA_INT64_NEG(i64_result, i64_value)\ - { i64_result = -(i64_value); } - -#define M4OSA_INT64_ABS(i64_result, i64_value)\ - { if (M4OSA_INT64_IS_POSITIVE(i64_value)) { i64_result = i64_value; }\ - else { M4OSA_INT64_NEG(i64_result, i64_value); } } - -#define M4OSA_INT64_LEFT_SHIFT(i64_result, i64_value, ui32_nbPos)\ - { i64_result = (((ui32_nbPos)>0x3F)?0:((i64_value)<<(ui32_nbPos))); } - -#define M4OSA_INT64_RIGHT_SHIFT(i64_result, i64_value, ui32_nbPos)\ - { i64_result = (((ui32_nbPos)>0x3F)?0:((i64_value)>>(ui32_nbPos))); } - -#define M4OSA_INT64_TO_DOUBLE(f_result, i64_value)\ - { f_result = (M4OSA_Double)(i64_value); } - -#define M4OSA_INT64_FROM_DOUBLE(i64_result, f_value)\ - { i64_result = (M4OSA_Int64)(f_value); } - -#endif /*M4OSA_64BITS_SUPPORTED*/ - - -#ifdef M4OSA_64BITS_NOT_SUPPORTED - -#define M4OSA_INT64_SET(i64_out, i64_in)\ - M4OSA_INT32_SET(i64_out, i64_in) - -#define M4OSA_INT64_ADD(i64_result, i64_a, i64_b)\ - M4OSA_INT32_ADD(i64_result, i64_a, i64_b) - -#define M4OSA_INT64_SUB(i64_result, i64_a, i64_b)\ - M4OSA_INT32_SUB(i64_result, i64_a, i64_b) - -#define M4OSA_INT64_SCALAR_PRODUCT(i64_result, i64_a, i32_value)\ - M4OSA_INT32_SCALAR_PRODUCT(i64_result, i64_a, i32_value) - -#define M4OSA_INT64_SCALAR_DIVISION(i64_result, i64_a, i32_value)\ - M4OSA_INT32_SCALAR_DIVISION(i64_result, i64_a, i32_value) - -#define M4OSA_INT64_COMPARE(i64_a, i64_b)\ - M4OSA_INT32_COMPARE(i64_a, i64_b) - -#define M4OSA_INT64_FROM_INT32(i64_result, i32_value)\ - M4OSA_INT32_FROM_INT32(i64_result, i32_value) - -#define M4OSA_INT64_FROM_INT32_UINT32(i64_result, i32_high, ui32_low)\ - M4OSA_INT32_FROM_INT32_UINT32(i64_result, i32_high, ui32_low) - -#define M4OSA_INT64_GET_LOW32(i64_value)\ - M4OSA_INT32_GET_LOW32(i64_value) - -#define M4OSA_INT64_GET_HIGH32(i64_value)\ - M4OSA_INT32_GET_HIGH32(i64_value) - -#define M4OSA_INT64_IS_POSITIVE(i64_value)\ - M4OSA_INT32_IS_POSITIVE(i64_value) - -#define M4OSA_INT64_NEG(i64_result, i64_value)\ - M4OSA_INT32_NEG(i64_result, i64_value) - -#define M4OSA_INT64_ABS(i64_result, i64_value)\ - M4OSA_INT32_ABS(i64_result, i64_value) - -#define M4OSA_INT64_LEFT_SHIFT(i64_result, i64_value, ui32_nbPositions)\ - M4OSA_INT32_LEFT_SHIFT(i64_result, i64_value, ui32_nbPositions) - -#define M4OSA_INT64_RIGHT_SHIFT(i64_result, i64_value, ui32_nbPositions)\ - M4OSA_INT32_RIGHT_SHIFT(i64_result, i64_value, ui32_nbPositions) - -#define M4OSA_INT64_TO_DOUBLE(f_result, i64_value)\ - M4OSA_INT32_TO_DOUBLE(f_result, i64_value) - -#define M4OSA_INT64_FROM_DOUBLE(i64_result, f_value)\ - M4OSA_INT32_FROM_DOUBLE(i64_result, f_value) - -#endif /*M4OSA_64BITS_NOT_SUPPORTED*/ - - #ifdef __cplusplus } #endif |