flags1 and flags2

The following flags are defined for flags1 (flags2 is currently not used):

STARTUP_HDR_FLAGS1_VIRTUAL
If this flag is set, the operating system is to run with the Memory Management Unit (MMU) enabled.
Note: For this release of the QNX Neutrino RTOS, you should always specify a virtual system (by specifying the virtual= attribute in your buildfile, which then sets the STARTUP_HDR_FLAGS1_VIRTUAL flag).
STARTUP_HDR_FLAGS1_BIGENDIAN
The processor is big-endian. Processors should always examine this flag to check that the ENDIAN is right for them.
STARTUP_HDR_FLAGS1_COMPRESS_NONE
The image isn't compressed.
STARTUP_HDR_FLAGS1_COMPRESS_ZLIB
The image is compressed using libz (gzip).
STARTUP_HDR_FLAGS1_COMPRESS_LZO
The image is compressed with liblzo.
STARTUP_HDR_FLAGS1_COMPRESS_UCL
The image is compressed with libucl. This is the format chosen when using the [+compress] attribute in the mkifs build script.
Note: Currently, the startup-* programs are built to understand only the UCL compression method. By twiddling the SUPPORT_CMP_* macro definitions in startup/lib/uncompress.c, you can change to one of the other supported compression methods.

The STARTUP_HDR_FLAGS1_COMPRESS_* constants aren't really flags because they may set more than one bit; they're used as an enumeration of the types of compression.

Note that both flag flags1 and flags2 are single-byte; this ensures that they're endian-neutral.