78 lines
2.3 KiB
C
78 lines
2.3 KiB
C
|
#ifndef __WINDOWS2LINUX_H__
|
||
|
#define __WINDOWS2LINUX_H__
|
||
|
|
||
|
/*
|
||
|
* LINUX SPECIFIC DEFINITIONS
|
||
|
*/
|
||
|
//
|
||
|
// Data types conversions
|
||
|
//
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include "basicDataTypeConversions.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
namespace avxsynth {
|
||
|
#endif // __cplusplus
|
||
|
//
|
||
|
// purposefully define the following MSFT definitions
|
||
|
// to mean nothing (as they do not mean anything on Linux)
|
||
|
//
|
||
|
#define __stdcall
|
||
|
#define __cdecl
|
||
|
#define noreturn
|
||
|
#define __declspec(x)
|
||
|
#define STDAPI extern "C" HRESULT
|
||
|
#define STDMETHODIMP HRESULT __stdcall
|
||
|
#define STDMETHODIMP_(x) x __stdcall
|
||
|
|
||
|
#define STDMETHOD(x) virtual HRESULT x
|
||
|
#define STDMETHOD_(a, x) virtual a x
|
||
|
|
||
|
#ifndef TRUE
|
||
|
#define TRUE true
|
||
|
#endif
|
||
|
|
||
|
#ifndef FALSE
|
||
|
#define FALSE false
|
||
|
#endif
|
||
|
|
||
|
#define S_OK (0x00000000)
|
||
|
#define S_FALSE (0x00000001)
|
||
|
#define E_NOINTERFACE (0X80004002)
|
||
|
#define E_POINTER (0x80004003)
|
||
|
#define E_FAIL (0x80004005)
|
||
|
#define E_OUTOFMEMORY (0x8007000E)
|
||
|
|
||
|
#define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1))
|
||
|
#define FAILED(hr) ((hr) & 0x80000000)
|
||
|
#define SUCCEEDED(hr) (!FAILED(hr))
|
||
|
|
||
|
|
||
|
//
|
||
|
// Functions
|
||
|
//
|
||
|
#define MAKEDWORD(a,b,c,d) ((a << 24) | (b << 16) | (c << 8) | (d))
|
||
|
#define MAKEWORD(a,b) ((a << 8) | (b))
|
||
|
|
||
|
#define lstrlen strlen
|
||
|
#define lstrcpy strcpy
|
||
|
#define lstrcmpi strcasecmp
|
||
|
#define _stricmp strcasecmp
|
||
|
#define InterlockedIncrement(x) __sync_fetch_and_add((x), 1)
|
||
|
#define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1)
|
||
|
// Windows uses (new, old) ordering but GCC has (old, new)
|
||
|
#define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y)
|
||
|
|
||
|
#define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) )
|
||
|
#define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) )
|
||
|
#define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b))))
|
||
|
|
||
|
#define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator))
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}; // namespace avxsynth
|
||
|
#endif // __cplusplus
|
||
|
|
||
|
#endif // __WINDOWS2LINUX_H__
|