Skip to content
Jiří Malák edited this page Jan 3, 2024 · 8 revisions

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__

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
Clone this wiki locally