-
Notifications
You must be signed in to change notification settings - Fork 185
Source Code Macros
Jiří Malák edited this page Feb 3, 2025
·
9 revisions
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 |
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__
|
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
|
- Welcome
- Building
- Open Watcom Documentation
- Notes
- Relicensing effort
- Debugging
- OW tools usage Overview
- OW tools usage with CMake
- OW tools usage with Visual Studio Code
- Open Watcom 1.9 Wiki
OW Development
WGML Development
- WGML
- Augmented Devices
- Binary Device Files
- Common File Blocks
- COP Files
- Device File Blocks
- Device Function Language
- Device Function Notes
- Device Functions
- Directory File Format
- Drawing Boxes
- Driver File Blocks
- File and Directory Names
- Font File Blocks
- Fonts
- GML Tag Notes
- Keyword Statistics
- Macros and User Defined Tags
- Meta Data
- Page Layout Subsystem
- Search Paths
- Sequencing
- System Symbol Notes
- Tabs and Tabbing
- whpcvt Utility interaction