diff --git a/include/nuttx/binfmt/ieee695.h b/include/nuttx/binfmt/ieee695.h index 884049b7590..a459d4f3f30 100644 --- a/include/nuttx/binfmt/ieee695.h +++ b/include/nuttx/binfmt/ieee695.h @@ -239,7 +239,7 @@ #define IEEE695_CMD_AS 0xe2 /* Assign Value to variable (ASvn) */ #define IEEE695_CMD_IR 0xe3 #define IEEE695_CMD_LR 0xe4 -#define IEEE695_CMD_SB 0xe5 +#define IEEE695_CMD_SB 0xe5 /* Set Current Section (SB) */ #define IEEE695_CMD_ST 0xe6 /* Section Type (ST) */ #define IEEE695_CMD_SA 0xe7 /* Section Alignment (SA) */ #define IEEE695_CMD_NI 0xe8 /* Public (External) Symbol (NI) */ @@ -286,26 +286,26 @@ #define IEEE695_ATTR_COMMENTS 55 /* Comments, string follows */ #define IEEE695_ATTR_UNKNOWN 56 /* What is this? 1 byte follows */ -#define IEEE695_OBJFORMT_ABSOLUTE 1 /* Absolute (not relinkable) */ -#define IEEE695_OBJFORMT_RELOCATABLE 2 /* Relocatable */ -#define IEEE695_OBJFORMT_LOADABLE 3 /* Loadable */ -#define IEEE695_OBJFORMT_LIBRARY 4 /* Library */ +#define IEEE695_OBJFORMT_ABSOLUTE 1 /* Absolute (not relinkable) */ +#define IEEE695_OBJFORMT_RELOCATABLE 2 /* Relocatable */ +#define IEEE695_OBJFORMT_LOADABLE 3 /* Loadable */ +#define IEEE695_OBJFORMT_LIBRARY 4 /* Library */ -#define IEEE695_CASE_SENSITIVE 1 /* Treat all symbols as if they were upper case */ -#define IEEE695_CASE_INSENSITIVE 2 /* Do not change the case of symbols */ +#define IEEE695_CASE_SENSITIVE 1 /* Treat all symbols as if they were upper case */ +#define IEEE695_CASE_INSENSITIVE 2 /* Do not change the case of symbols */ -#define IEEE695_MEMORYMODEL_TINY 0 /* Code and data: Same single 64K segment */ -#define IEEE695_MEMORYMODEL_SMALL 1 /* Code and data: Each have a single 64K segment */ -#define IEEE695_MEMORYMODEL_MEDIUM 2 /* Data: Single 64K segment; Code: Multiple 64K segments */ -#define IEEE695_MEMORYMODEL_COMPACT 3 /* Data: Multiple 64K segments; Code: Single 64K segment */ -#define IEEE695_MEMORYMODEL_LARGE 4 /* Data and code: Both have multiple 64K segments */ -#define IEEE695_MEMORYMODEL_BIG 5 /* Code has multiple 64K segments with common "near" data area */ -#define IEEE695_MEMORYMODEL_HUGE 6 /* All large arrays and structures are in their own section */ +#define IEEE695_MEMORYMODEL_TINY 0 /* Code and data: Same single 64K segment */ +#define IEEE695_MEMORYMODEL_SMALL 1 /* Code and data: Each have a single 64K segment */ +#define IEEE695_MEMORYMODEL_MEDIUM 2 /* Data: Single 64K segment; Code: Multiple 64K segments */ +#define IEEE695_MEMORYMODEL_COMPACT 3 /* Data: Multiple 64K segments; Code: Single 64K segment */ +#define IEEE695_MEMORYMODEL_LARGE 4 /* Data and code: Both have multiple 64K segments */ +#define IEEE695_MEMORYMODEL_BIG 5 /* Code has multiple 64K segments with common "near" data area */ +#define IEEE695_MEMORYMODEL_HUGE 6 /* All large arrays and structures are in their own section */ -#define IEEE695_EXECSTATUS_SUCCESS 0 /* Success */ -#define IEEE695_EXECSTATUS_WARNINGS 1 /* Warning(s) */ -#define IEEE695_EXECSTATUS_ERRORS 2 /* Error(s) */ -#define IEEE695_EXECSTATUS_FATAL 3 /* Fatal error(s) */ +#define IEEE695_EXECSTATUS_SUCCESS 0 /* Success */ +#define IEEE695_EXECSTATUS_WARNINGS 1 /* Warning(s) */ +#define IEEE695_EXECSTATUS_ERRORS 2 /* Error(s) */ +#define IEEE695_EXECSTATUS_FATAL 3 /* Fatal error(s) */ #define IEEE695_HOSTENVIRON_UNKNOWN 0 #define IEEE695_HOSTENVIRON_VMS 1 @@ -313,6 +313,39 @@ #define IEEE695_HOSTENVIRON_UNIX 3 #define IEEE695_HOSTENVIRON_HPUX 4 +/* Symbol Type */ + +#define IEEE695_SYMTYPE_UNKNOWN 0 /* Unspecified */ +#define IEEE695_SYMTYPE_BYTE 3 /* 8-bit data byte */ +#define IEEE695_SYMTYPE_SHORT 5 /* 16-bit short data word */ +#define IEEE695_SYMTYPE_LONG 7 /* 32-bit long data word */ +#define IEEE695_SYMTYPE_FLOAT 10 /* 32-bit floating point */ +#define IEEE695_SYMTYPE_DOUBLE 11 /* 64-bit floating point */ +#define IEEE695_SYMTYPE_FLOAT12 12 /* 10 or 12 byte floating point */ +#define IEEE695_SYMTYPE_ADDRESS 15 /* Instruction address */ + +/* Symbol Attributes */ + +#define IEEE695_SYMATTR_GLOBAL 8 /* Global compiler symbol */ +#define IEEE695_SYMATTR_CONSTANT 16 /* Constant (see additional attributes below */ +#define IEEE695_SYMATTR_STATIC 19 /* Static symbol generated by assembler */ + +/* Constant Symbol Attributes. Constant symbols have four additional arguments: + * + * 1. Symbol class + * 2. Public/local indicator (optional). One means public. + * 3. Numeric value (optional) + * 4. String value (optional) + * + * Either 3 or 4 should be present, but not both. + */ + +#define IEEE695_SYMCLASS_UNKNOWN 0 /* Unknown class */ +#define IEEE695_SYMCLASS_EQU 1 /* EQU constant */ +#define IEEE695_SYMCLASS_SET 2 /* SET constant */ +#define IEEE695_SYMCLASS_PASCAL 3 /* Pascal CONST constant */ +#define IEEE695_SYMCLASS_DEFINE 4 /* C #define constant */ + /* Helper Macros ********************************************************************/ /* These macros extract un-aligned, little-endian values from the object file */