Source Code Macros - open-watcom/open-watcom-v2 GitHub Wiki
Architecture Macros
To guard OW architecture specific source code use following preferred architecture macros.
Target architecture | Preferred macro | Deprecated macros |
---|---|---|
8086 | _M_I86 |
__I86__ , __86__ , __X86__ , _X86_ |
80x86 | _M_X86 |
_M_I386 , __386__ , __X86__ , _X86_ |
x64 | _M_X64 |
|
Alpha | __AXP__ |
_M_ALPHA , __ALPHA__ , _ALPHA_ |
Mips | __MIPS__ |
_M_MRX000 |
PowerPC | __PPC__ |
_M_PPC , __POWERPC__ , _PPC_ |
ARM-32 | _M_ARM |
|
ARM-64 | _M_ARM64 |
Target OS Macros
To guard OW Target specific source code use following preferred architecture macros.
Target OS | Architecture neutral macro | Specific macros |
---|---|---|
DOS | __DOS__ |
__DOS_086__ , __DOS_386__ |
OS/2 | __OS2__ |
__OS2_286__ , __OS2_386__ , __OS2_PPC__ |
Windows | __WINDOWS__ |
__WINDOWS_286__ , __WINDOWS_386__ |
NT (WIN32) | __NT__ |
__NT_386__ , __NT_AXP__ , __NT_MIPS__ , __NT_PPC__ |
NT (WIN64) | __NT__ |
__NT_X64__ |
Linux | __LINUX__ , __UNIX__ |
__LINUX_386__ , __LINUX_X64__ , __LINUX_MIPS__ , __LINUX_PPC__ , __LINUX_ARM__ , __LINUX_ARM64__ |
Netware | __NETWARE__ |
__NETWARE_386__ __NETWARE5__ |
QNX | __QNX__ , __UNIX__ |
__QNX_286__ , __QNX_386__ |
RDOS | __RDOS__ |
|
RDOS drivers | __RDOSDEV__ |
|
OSX | __OSX__ , __UNIX__ |
__OSX_386__ , __OSX_X64__ , __OSX_ARM__ , __OSX_ARM64__ |
BSD general | __BSD__ , __UNIX__ |
__BSD_386__ , __BSD_X64__ , __BSD_ARM__ , __BSD_ARM64__ |
FreeBSD | __UNIX__ , __BSD__ , __FREEBSD__ |
__BSD_386__ , __BSD_X64__ , __BSD_ARM__ , __BSD_ARM64__ |
DragonFly | __UNIX__ , __BSD__ , __DRAGONFLY__ |
__BSD_386__ , __BSD_X64__ , __BSD_ARM__ , __BSD_ARM64__ |
NetBSD | __UNIX__ , __BSD__ , __NETBSD__ |
__BSD_386__ , __BSD_X64__ , __BSD_ARM__ , __BSD_ARM64__ |
OpenBSD | __UNIX__ , __BSD__ , __OPENBSD__ |
__BSD_386__ , __BSD_X64__ , __BSD_ARM__ , __BSD_ARM64__ |
Memory model Macros
To guard OW memory model specific source code use following memory model macros.
Memory model | Code | Data | Macro | Deprecated macros |
---|---|---|---|---|
Small | near | near | __SMALL__ |
_M_I86SM , M_I86SM |
Compact | near | far | __COMPACT__ |
_M_I86CM , M_I86CM |
Medium | far | near | __MEDIUM__ |
_M_I86MM , M_I86MM |
Large | far | far | __LARGE__ |
_M_I86LM , M_I86LM |
Huge | far | far | __HUGE__ |
_M_I86HM , M_I86HM |
Flat | near | near | __FLAT__ |
_M_386FM , M_386FM |