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 |