Foxit PDF SDK

fx_system.h File Reference

Header file for system related definitions. More...

Go to the source code of this file.

## Macros
OS Defines
#define | _CRT_SECURE_NO_WARNINGS
| Disable the security enhancements in the CRT.
#define | _FX_ANDROID_ 12
| Android.
#define | _FX_EMBEDDED_ 8
| Embedded OS.
#define | _FX_IOS_ 15
| IOS.
#define | _FX_LINUX_DESKTOP_ 4
| Linux Desktop OS.
#define | _FX_LINUX_EMBEDDED_ 5
| Embedded Linux OS.
#define | _FX_MACOSX_ 7
| MAC OS X.
#define | _FX_MTK_ 14
| Media Tech.
#define | _FX_NETBSD_ 11
| NetBSD.
#define | _FX_PALMOS_ 10
| PalmOS (5.0 or later)
#define | _FX_SOLARIS_ 9
| Solaris 8 or later.
#define | _FX_SYMBIAN_ 6
| Symbian OS (from 7.0)
#define | _FX_VXWORKS_ 13
| VxWorks.
#define | _FX_WIN32_DESKTOP_ 1
| Windows desktop OS (from Windows 95)
#define | _FX_WIN32_MOBILE_ 2
| Windows Mobile OS (from Windows CE 4.0)
#define | _FX_WIN64_ 3
| Windows 64 bit.
#define | _FX_WINAPI_PARTITION_DESKTOP_
#define | _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_
#define | _FXM_PLATFORM_ANDROID_ 4
| Android OS platformas.
#define | _FXM_PLATFORM_APPLE_ 3
| Apple OS platformas.
#define | _FXM_PLATFORM_LINUX_ 2
| Linux OS platformas.
#define | _FXM_PLATFORM_WINDOWS_ 1
| Windows OS platformas.
#define | NOMINMAX
Compiler Defines
#define | _FX_ADS_ 5
| ADS 1.2 Compiler.
#define | _FX_GCC_ 4
| GNU C++ Compiler.
#define | _FX_IARCC_ 7
| IAR C/C++ Compiler.
#define | _FX_METROWERKS_ 9
| Metrowerks C/C++ Compiler (with MSL)
#define | _FX_MIPS_SDE_ 12
| MIPS SDE.
#define | _FX_NOKIA_X86_ 8
| Nokia X86 Compiler.
#define | _FX_PACC_ 10
| Protein C/C++ Compiler (used by PalmOS)
#define | _FX_RVCT_ 6
| RVCT 2.1 Compiler.
#define | _FX_TMS470_ 11
| TMS470.
#define | _FX_VC6_ 1
| Microsoft Visual C++ 6.0.
#define | _FX_VC7_ 2
| Microsoft Visual Studio.Net 2003.
#define | _FX_VC8_ 3
| Microsoft Visual Studio.Net 2005.
CPU Defines
#define | _FX_ARM64_ 8
| ARM64.
#define | _FX_ARM_ 2
| ARM.
#define | _FX_IA64_ 5
| IA64.
#define | _FX_LOONGARCH64_ 10
| Loongarch64.
#define | _FX_MIPS64_ 9
| MIPS64.
#define | _FX_MIPS_ 6
| MIPS.
#define | _FX_POWERPC_ 3
| Power PCPower PC.
#define | _FX_SPARC_ 4
| Sparc.
#define | _FX_X64_ 7
| 64-bit x86 CPU
#define | _FX_X86_ 1
| 32-bit x86 CPU
Word Size Defines
#define | _FX_W32_ 1
| 32-bit instruct
#define | _FX_W64_ 2
| 64-bit instruct
#define | _FX_WORDSIZE_ _FX_W32_
Byte Order Defines
#define | _FX_BIG_ENDIAN_ 1
| big endian
#define | _FX_ENDIAN_
| Current Byte Order. More...
#define | _FX_LITTLE_ENDIAN_ 2
| little endian
#define | GetFullPathName
| Get the full path and file name of a specified file. GetFullPathNameW defined for unicode-mode, GetFullPathNameA for ansi-mode.
#define | GetModuleFileName
| Get the fully-qualified path for specified module. GetModuleFileNameW defined for unicode-mode, GetModuleFileNameA for ansi-mode.
Target Defines
#define | _FPDF_STREAM_RENDER_
#define | _FX_BREW_ 1
| Brew SDK.
#define | _FX_DEFAULT_TARGET_ 0
| The default sdk information.
#define | _FX_ENABLE_OVERPRINT_
#define | _FX_JPEG_TURBO_
#define | _FX_LARGEFILE_SUPPORT_
#define | _FX_NO_OPENSSL_
#define | _FXM_SIMD_
#define | WITH_SIMD
Byte string operations
#define | FXSYS_snprintf
| Write formatted data to a ANSIC string, with max length.
#define | FXSYS_sprintf
| Write formatted data to a ANSIC string.
#define | FXSYS_strchr
| Find a character in a ANSIC string.
#define | FXSYS_strcmp
| Compare ANSIC strings.
#define | FXSYS_strcpy
| Copy an ANSIC string.
#define | FXSYS_strlen
| Get the length of a ANSIC string.
#define | FXSYS_strncmp
| Compare characters of two ANSIC strings.
#define | FXSYS_strncpy
| Copy an ANSIC string with length limitation.
#define | FXSYS_strstr
| Find a substring.
#define | FXSYS_vsnprintf vsnprintf
#define | FXSYS_vsprintf
| Write formatted output using a pointer to a list of arguments.
File operations
#define | FXSYS_fclose
| Close a file.
#define | FXSYS_fflush
| Flush file.
#define | FXSYS_FILE
| File structure.
#define | FXSYS_fopen
| Open a file.
#define | FXSYS_fprintf
| Print formatted data to a file.
#define | FXSYS_fread
| Reads data from a file.
#define | FXSYS_fseek
| Moves the file pointer to a specified location.
#define | FXSYS_ftell
| Gets the current position of a file pointer.
#define | FXSYS_fwrite
| Writes data to a file.
#define | FXSYS_SEEK_END
| End of file.
#define | FXSYS_SEEK_SET
| Beginning of file.
#define | FXSYS_wfopen
| Open a file using wide-string parameters. Only supported on Windows platforms now.
Wide string operations
#define | FXSYS_mbstowcs
| Converts a sequence of multi-byte characters to a corresponding sequence of wide characters.
#define | FXSYS_vswprintf
| Write formatted output wide character string using a pointer to a list of arguments.
#define | FXSYS_wcschr
| Find a wide-character in a wide-character string.
#define | FXSYS_wcscmp
| Compare wide-character strings.
#define | FXSYS_wcslen
| Get the length of a wide-character string.
#define | FXSYS_wcsncmp
| Compare characters of two wide-character strings.
#define | FXSYS_wcsstr
| Find a sub-wide-character-string.
#define | FXSYS_wcstombs
| Converts a sequence of wide characters to a corresponding sequence of multi-byte characters.
Memory block operations
#define | FXSYS_bsearch
| Performs a binary search of a sorted array. A generic algorithm.
#define | FXSYS_GetACP
| Retrieve the current ANSI code-page identifier for the system.
#define | FXSYS_GetFullPathName
| Get the full path and file name of a specified file.
#define | FXSYS_GetModuleFileName
| Get the fully-qualified path for specified module.
#define | FXSYS_itoa
| Convert an integer to a ANSIC string.
#define | FXSYS_memchr
| Search for a byte in a memory block.
#define | FXSYS_memcmp
| Compares two buffers.
#define | FXSYS_memcpy
| Copy from one buffer to another.
#define | FXSYS_memmove
| Moves one buffer to another. If some regions of the source area and the destination overlap, ::FXSYS_memmove ensures that the original source bytes in the overlapping region are copied before being overwritten.
#define | FXSYS_memset
| Use given character to initialize the buffer.
#define | FXSYS_MultiByteToWideChar
| Maps a character string to a wide-character string.
#define | FXSYS_qsort
| Performs a quick sort. A generic algorithm.
#define | FXSYS_stricmp
| Compare two ANSIC strings. case-insensitive.
#define | FXSYS_strlwr
| Convert a ANSIC string to lowercase.
#define | FXSYS_strupr
| Convert a ANSIC string to uppercase.
#define | FXSYS_wcsicmp
| Compare two wide character strings. case-insensitive.
#define | FXSYS_wcslwr
| Convert a wide-character string to lowercase.
#define | FXSYS_wcsupr
| Convert a wide-character string to uppercase.
#define | FXSYS_WideCharToMultiByte
| Maps a wide-character string to a character string.

## Functions
Memory utilities
FX_INT32 | FXSYS_memcmp32 (const void *buf1, const void *buf2, size_t size)
| Compare data in two buffers. More...
void * | FXSYS_memcpy32 (void *dst, const void *src, size_t size)
| Copy buffer data from source to destination. More...
void * | FXSYS_memmove32 (void *dst, const void *src, size_t size)
| Move source buffer data into destination. More...
void * | FXSYS_memset32 (void *dst, FX_INT32 v, size_t size)
| Set buffer data to specified value. More...
void * | FXSYS_memset8 (void *dst, FX_BYTE v, size_t size)
| Set buffer data to specified value. More...
Mutex
Note Mutex is disabled under single-thread mode or FPDFAPI_MT isn't defined, do not call the following functions under this condition. Mutex supports recursive calls in same thread.
void | FX_Mutex_Destroy (FX_MUTEX *pMutex)
| Destroy a mutex. More...
FX_BOOL | FX_Mutex_Initialize (FX_MUTEX *pMutex)
| Initialize a mutex. More...
void | FX_Mutex_Lock (FX_MUTEX *pMutex)
| Lock a mutex. More...
FX_BOOL | FX_Mutex_TryLock (FX_MUTEX *pMutex)
| Try to lock a mutex. More...
void | FX_Mutex_Unlock (FX_MUTEX *pMutex)
| Unlock a mutex. More...

## BASIC DATA TYPES
#define | _FX_CRT_MALLOC_LIMIT_ 0x7fffffffL
| A macrio to malloc size limit.
#define | ASSERT(a)
| Assertion for debug mode, do nothing for release mode.
#define | FALSE 0
| Keyword which value is 0.
typedef int | FX_BOOL
| Boolean variable (should be TRUE or FALSE).
typedef unsigned char | FX_BYTE
| Byte (8 bits).
typedef char | FX_CHAR
| 8-bit Windows (ANSI) character.
#define | FX_DEFINEHANDLE(name) typedef struct _##name {FX_LPVOID pData;} * name;
| Macro to define a handle type.
typedef unsigned long | FX_DWORD
| 32-bit unsigned integer. More...
typedef int | FX_ERR
| Error indicator.
#define | FX_FAILED(Status) ((FX_ERR)(Status) < 0)
| Determine whether a status is failure.
typedef float | FX_FLOAT
| 32-bit floating-point number.
typedef short | FX_INT16
| Signed 16bits integer.
typedef int | FX_INT32
| 32-bit signed integer.
typedef long long int | FX_INT64
typedef signed char | FX_INT8
| Signed 8bits integer.
typedef INT_PTR | FX_INTPTR
| Signed integral type for pointer precision.
typedef unsigned char * | FX_LPBYTE
| Pointer to a FX_BYTE.
typedef unsigned char const * | FX_LPCBYTE
| Pointer to a constant FX_BYTE.
typedef char const * | FX_LPCSTR
| Pointer to constant 8-bit Windows (ANSI) characters.
typedef void const * | FX_LPCVOID
| Pointer to any constant type.
typedef unsigned short const * | FX_LPCWORD
| Pointer to a WORD.
typedef wchar_t const * | FX_LPCWSTR
| Pointer to constant Unicode characters.
typedef unsigned long * | FX_LPDWORD
| Pointer to a DWORD.
typedef char * | FX_LPSTR
| Pointer to 8-bit Windows (ANSI) characters.
typedef void * | FX_LPVOID
| Pointer to any type.
typedef unsigned short * | FX_LPWORD
| Pointer to a WORD.
typedef wchar_t * | FX_LPWSTR
| Pointer to Unicode characters.
#define | FX_MAX(a, b) (((a) > (b)) ? (a) : (b))
| A macro that returns the maximum of a and b.
#define | FX_MIN(a, b) (((a) < (b)) ? (a) : (b))
| A macro that returns the minimum of a and b.
#define | FX_PI 3.1415926535897932384626433832795f
| A macro to PI.
typedef void * | FX_POSITION
| A value used to denote the position of an element in a collection.
typedef FX_UINT64 | FX_QWORD
| unsigned quad-word integer.
typedef short | FX_SHORT
| Short integer (16 bits).
#define | FX_SUCCEEDED(Status) ((FX_ERR)(Status) >= 0)
| Determine whether a status is successful.
typedef unsigned short | FX_UINT16
| Unsigned 16bits integer.
typedef FX_DWORD | FX_UINT32
| unsigned 32bits integer.
typedef unsigned long long | FX_UINT64
typedef unsigned char | FX_UINT8
| Unsigned 8bits integer.
typedef UINT_PTR | FX_UINTPTR
| Unsigned integral type for pointer precision.
typedef wchar_t | FX_WCHAR
| Compiler dependant Unicode character (16-bit for Microsoft Compiler, 32-bit for gcc).
typedef unsigned short | FX_WORD
| 16-bit unsigned integer.
#define | FXSYS_assert
| Assertion.
#define | NULL 0
| The null-pointer value.
#define | TRUE 1
| Keyword which value is 1.

## Math functions
#define | _FX_LSB_FIRST_
#define | FX_CRITICAL_SECTION FX_MUTEX
#define | FX_DeleteCriticalSection(a) FX_Mutex_Destroy(a)
#define | FX_EnterCriticalSection(a) FX_Mutex_Lock(a)
#define | FX_InitializeCriticalSection(a) FX_Mutex_Initialize(a)
#define | FX_LeaveCriticalSection(a) FX_Mutex_Unlock(a)
typedef CRITICAL_SECTION | FX_MUTEX
| Definition for mutex/critical section and read-write lock.
typedef void * | FX_SPINLOCK
| Definition for spinlock.
#define | FX_TryEnterCriticalSection(a) FX_Mutex_TryLock(a)
#define | FXDWORD_FROM_LSBFIRST(i) (i)
#define | FXDWORD_FROM_MSBFIRST(i) ( ((FX_BYTE)(i) << 24) | ((FX_BYTE)((i) >> 8) << 16) | ((FX_BYTE)((i) >> 16) << 8) | (FX_BYTE)((i) >> 24) )
#define | FXDWORD_GET_LSBFIRST(p) ((((FX_LPBYTE)(p))[3] << 24) | (((FX_LPBYTE)(p))[2] << 16) | (((FX_LPBYTE)(p))[1] << 8) | (((FX_LPBYTE)(p))[0]))
#define | FXDWORD_GET_MSBFIRST(p) ((((FX_LPBYTE)(p))[0] << 24) | (((FX_LPBYTE)(p))[1] << 16) | (((FX_LPBYTE)(p))[2] << 8) | (((FX_LPBYTE)(p))[3]))
#define | FXSYS_abs
| A macro that return the absolute value.
#define | FXSYS_acos
| Calculate the arccosine of a floating-point number, in radians.
#define | FXSYS_atan2
| Calculate the arctangent. FXSYS_atan2(y,x) means atan(y/x).
FX_INT32 | FXSYS_atoi (FX_LPCSTR str)
| Convert an ANSI string to an integer. More...
FX_INT64 | FXSYS_atoi64 (FX_LPCSTR str)
| Convert an ANSI string to an integer. More...
#define | FXSYS_ceil
| Calculate the ceiling of a value.
#define | FXSYS_cos
| Calculate the cosine of a floating-point number from a radian argument.
#define | FXSYS_Div(a, b) ((a) / (b))
| Division between two numbers.
#define | FXSYS_fabs
| Calculate the absolute. FXSYS_fabs(x) means |x|.
#define | FXSYS_floor
| Calculate the floor of a value.
#define | FXSYS_fmod
| Calculate the floating-point remainder.
#define | FXSYS_HIBYTE(word) ((FX_BYTE)((word) >> 8))
#define | FXSYS_HIWORD(dword) ((FX_WORD)((dword) >> 16))
FX_LPCSTR | FXSYS_i64toa (FX_INT64 value, FX_LPSTR str, int radix)
| Convert an integer to an ANSI string. More...
FX_LPCWSTR | FXSYS_i64tow (FX_INT64 value, FX_LPWSTR str, int radix)
| Convert an integer to an wide string. More...
#define | FXSYS_LOBYTE(word) ((FX_BYTE)(word))
#define | FXSYS_log
| Calculate the natural logarithm (base e) of a floating-point number.
#define | FXSYS_log10
| Calculate the common logarithm (base 10) of a floating-point number.
#define | FXSYS_LOWORD(dword) ((FX_WORD)(dword))
#define | FXSYS_Mul(a, b) ((a) * (b))
| Multiply two numbers.
#define | FXSYS_MulDiv(a, b, c) ((a) * (b) / (c))
| Fist do multiplication, then do division.
#define | FXSYS_pow
| Calculate the power. FXSYS_pow(x,y) means x^y.
int | FXSYS_round (FX_FLOAT f)
| Get nearest integer. More...
#define | FXSYS_sin
| Calculate the sine of a floating-point number from a radian argument.
#define | FXSYS_sqrt
| Calculate the square root. FXSYS_sqrt(x) means sqrt(x).
#define | FXSYS_sqrt2(a, b) (FX_FLOAT)FXSYS_sqrt((a)*(a) + (b)*(b))
| sqrt(a^2 + b^2).
#define | FXSYS_strtol strtol
| Convert string to long integer.
FX_INT32 | FXSYS_wtoi (FX_LPCWSTR str)
| Convert a wide string to an integer. More...
FX_INT64 | FXSYS_wtoi64 (FX_LPCWSTR str)
| Convert a wide string to an integer. More...

## Detailed Description

Header file for system related definitions.

Copyright (C) 2003-2026, Foxit Software Inc.. All Rights Reserved.

http://www.foxitsoftware.com

The following code is copyrighted and is the proprietary of Foxit Software Inc.. It is not allowed to distribute any parts of Foxit PDF SDK to third party or public without permission unless an agreement is signed between Foxit Software Inc. and customers to explicitly grant customers permissions.