# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# MPLAB XC16 C-Compiler

- 1
- 2
…
- 217
- 218
- 219
- 220
- 221
…
- 365
- 366

Preprocessing
 2012-2013 Microchip Technology Inc. DS50002071C-page 219
19.4.2 Output Types and Device Macros
The following symbols are defined with the -ansi command line option..
The following symbols are defined when -ansi is not selected..
In addition, the compiler defines a symbol based on the target device set with -mcpu=.
For example, -mcpu=30F6014, which defines the symbol __dsPIC30F6014__.
19.4.3 Device Features Macros
The following symbols are defined if device features are enabled.
TABLE 19-2: MACROS DEFINED WITH -ANSI
Symbol - Leading
Double Underline
Symbol - Leading &
Lagging Double
Underline
Description
__XC16 __XC16__ If defined, 16-bit compiler is in use.
__C30 __C30__
__
dsPICC30 __dsPIC30__
__
XC16ELF __XC16ELF__ If defined, compiler is producing ELF
output.
__C30ELF __C30ELF__
__
dsPIC30ELF __C30ELF__
__
XC16COFF __XC16COFF__ If defined, compiler is producing COFF
output.
__C30COFF __C30COFF__
__
dsPIC30COFF __dsPIC30COFF__
TABLE 19-3: MACROS DEFINED WITHOUT -ANSI
Symbol Description
XC16 16-bit compiler is in use.
C30
dsPIC30
TABLE 19-4: DEVICE FEATURES MACROS/SYMBOLS
Symbol Description
__HAS_DSP__ Device has a DSP engine.
__HAS_EEDATA__ Device has EEDATA memory.
__HAS_DMA__ Device has DMA memory.
__HAS_DMA_DMAV2__ Device has DMA V2 memory.
__HAS_CODEGUARD__ Device has CodeGuard Security.
__HAS_PMP__ Device has Parallel Master Port.
__HAS_PMPV2__ Device has Parallel Master Port V2.
__HAS_PMP_ENHANCED__ Device has Enhanced Parallel Master Port.
__HAS_EDS__ Device has Extended Data Space.
__HAS_5VOLTS__ Device is a 5-volt device.

- 1
- 2
…
- 217
- 218
- 219
- 220
- 221
…
- 365
- 366