summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-04-20 10:02:56 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-04-20 10:02:56 -0600
commit81bd7051c1f023cad01eb68bc56e279f648bc25c (patch)
tree0266869138c7a4d3789bc663d7b64da9634fdf87 /nuttx
parent85de4d6656ffe881b140a82eecd42eb79ec1106d (diff)
downloadpx4-nuttx-81bd7051c1f023cad01eb68bc56e279f648bc25c.tar.gz
px4-nuttx-81bd7051c1f023cad01eb68bc56e279f648bc25c.tar.bz2
px4-nuttx-81bd7051c1f023cad01eb68bc56e279f648bc25c.zip
Updated IEEE 695 header file
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/include/nuttx/binfmt/ieee695.h130
1 files changed, 128 insertions, 2 deletions
diff --git a/nuttx/include/nuttx/binfmt/ieee695.h b/nuttx/include/nuttx/binfmt/ieee695.h
index 0900400af..8c378f0b8 100644
--- a/nuttx/include/nuttx/binfmt/ieee695.h
+++ b/nuttx/include/nuttx/binfmt/ieee695.h
@@ -48,7 +48,7 @@
* Pre-processor Definitions
************************************************************************************/
-/* IEEE695 Record Types */
+/* IEEE695 Record Types *************************************************************/
#define IEEE695_RECTYPE_THEADR 0x80 /* Translator Header Record */
#define IEEE695_RECTYPE_LHEADR 0x82 /* Library Module Header Record */
@@ -91,6 +91,27 @@
#define IEEE695_RECTYPE_LIBHDR 0xf0 /* Library Header Record */
#define IEEE695_RECTYPE_LIBEND 0xf1 /* Library End Record */
+/* Obsolete records */
+
+#define IEEE695_RECTYPE_RHEADR 0x6e /* R-Module Header Record */
+#define IEEE695_RECTYPE_REGINT 0x70 /* Register Initialization Record */
+#define IEEE695_RECTYPE_REDATA 0x72 /* Relocatable Enumerated Data Record */
+#define IEEE695_RECTYPE_RIDATA 0x74 /* Relocatable Iterated Data Record */
+#define IEEE695_RECTYPE_OVLDEF 0x76 /* Overlay Definition Record */
+#define IEEE695_RECTYPE_ENDREC 0x78 /* End Record */
+#define IEEE695_RECTYPE_BLKDEF 0x7a /* Block Definition Record */
+#define IEEE695_RECTYPE_BLKEND 0x7c /* Block End Record */
+#define IEEE695_RECTYPE_DEBSYM 0x7e /* Debug Symbols Record */
+#define IEEE695_RECTYPE_PEDATA 0x84 /* Physical Enumerated Data Record */
+#define IEEE695_RECTYPE_PIDATA 0x86 /* Physical Iterated Data Record */
+#define IEEE695_RECTYPE_TYPDEF 0x8e /* Type of data represented by a name */
+#define IEEE695_RECTYPE_LOCSYM 0x92 /* Local Symbols Record */
+#define IEEE695_RECTYPE_NONAME 0x9e /* Unnamed record */
+#define IEEE695_RECTYPE_LIBHED 0xa4 /* Library Header Record */
+#define IEEE695_RECTYPE_LIBNAM 0xa6 /* Library Module Names Record */
+#define IEEE695_RECTYPE_LIBLOC 0xa8 /* Library Module Locations Record */
+#define IEEE695_RECTYPE_LIBDIC 0xaa /* Library Dictionary Record */
+
/* Comment type */
#define IEEE695_COMENT_NP 0x80 /* No purge bit */
@@ -146,7 +167,112 @@
#define IEEE695_COMENT_PASS2 0x01 /* Records generated from Pass 2 of the linker */
-/* These macros extract un-aligned, little endian values from the object file */
+/* Standard Functions, Identifiers and Commands *************************************/
+/* Standard functions */
+
+#define IEEE695_FUNC_F 0xa0
+#define IEEE695_FUNC_T 0xa1
+#define IEEE695_FUNC_ABS 0xa2
+#define IEEE695_FUNC_NEG 0xa3
+#define IEEE695_FUNC_NOT 0xa4
+#define IEEE695_FUNC_PLUS 0xa5
+#define IEEE695_FUNC_MINUS 0xa6
+#define IEEE695_FUNC_DIV 0xa7
+#define IEEE695_FUNC_MUL 0xa8
+#define IEEE695_FUNC_MAX 0xa9
+#define IEEE695_FUNC_MIN 0xaa
+#define IEEE695_FUNC_MOD 0xab
+#define IEEE695_FUNC_LT 0xac
+#define IEEE695_FUNC_GT 0xad
+#define IEEE695_FUNC_EQU 0xae
+#define IEEE695_FUNC_NEQ 0xaf
+#define IEEE695_FUNC_AND 0xb0
+#define IEEE695_FUNC_OR 0xb1
+#define IEEE695_FUNC_XOR 0xb2
+#define IEEE695_FUNC_EXT 0xb3
+#define IEEE695_FUNC_INS 0xb4
+#define IEEE695_FUNC_ERR 0xb5
+#define IEEE695_FUNC_IF 0xb6
+#define IEEE695_FUNC_ELSE 0xb7
+#define IEEE695_FUNC_END 0xb8
+#define IEEE695_FUNC_ESCAPE 0xb9
+#define IEEE695_FUNC_LPSIGNED 0xba
+#define IEEE695_FUNC_RPSIGNED 0xbb
+#define IEEE695_FUNC_LPUNSIGNED 0xbc
+#define IEEE695_FUNC_RPUNSIGNED 0xbd
+#define IEEE695_FUNC_LPEITHER 0xbe
+#define IEEE695_FUNC_RPEITHER 0xbf
+
+/* Standard Identifiers */
+
+#define IEEE695_IDENT_A 0xc1
+#define IEEE695_IDENT_B 0xc2
+#define IEEE695_IDENT_C 0xc3
+#define IEEE695_IDENT_D 0xc4
+#define IEEE695_IDENT_E 0xc5
+#define IEEE695_IDENT_F 0xc6
+#define IEEE695_IDENT_G 0xc7
+#define IEEE695_IDENT_H 0xc8
+#define IEEE695_IDENT_I 0xc9
+#define IEEE695_IDENT_J 0xca
+#define IEEE695_IDENT_K 0xcb
+#define IEEE695_IDENT_L 0xcc
+#define IEEE695_IDENT_M 0xcd
+#define IEEE695_IDENT_N 0xce
+#define IEEE695_IDENT_O 0xcf
+#define IEEE695_IDENT_P 0xd0
+#define IEEE695_IDENT_Q 0xd1
+#define IEEE695_IDENT_R 0xd2
+#define IEEE695_IDENT_S 0xd3
+#define IEEE695_IDENT_T 0xd4
+#define IEEE695_IDENT_U 0xd5
+#define IEEE695_IDENT_V 0xd6
+#define IEEE695_IDENT_W 0xd7
+#define IEEE695_IDENT_X 0xd8
+#define IEEE695_IDENT_Y 0xd9
+#define IEEE695_IDENT_Z 0xda
+
+/* Standard Commands */
+
+#define IEEE695_CMD_MB 0xe0 /* Module Begin (MB) */
+#define IEEE695_CMD_ME 0xe1
+#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_ST 0xe6
+#define IEEE695_CMD_SA 0xe7
+#define IEEE695_CMD_NI 0xe8
+#define IEEE695_CMD_NX 0xe9
+#define IEEE695_CMD_CO 0xea
+#define IEEE695_CMD_DT 0xeb
+#define IEEE695_CMD_AD 0xec /* Address Descriptor (AD) */
+#define IEEE695_CMD_LD 0xed
+#define IEEE695_CMD_CSSUM 0xee
+#define IEEE695_CMD_CS 0xef
+#define IEEE695_CMD_NN 0xf0
+#define IEEE695_CMD_AT 0xf1
+#define IEEE695_CMD_TY 0xf2
+#define IEEE695_CMD_RI 0xf3
+#define IEEE695_CMD_WX 0xf4
+#define IEEE695_CMD_LI 0xf5
+#define IEEE695_CMD_LX 0xf6
+#define IEEE695_CMD_RE 0xf7
+#define IEEE695_CMD_BB 0xf8 /* Block Begin (BB) */
+#define IEEE695_CMD_BE 0xf9 /* Block End (BE) */
+#define IEEE695_CMD_LT 0xfa
+#define IEEE695_CMD_NC 0xfb
+
+/* Extended commands */
+
+#define IEEE695_EXTCMD_ISDEF {0x01, 0xb9}
+#define IEEE695_EXTCMD_TRANS {0x02, 0xb9}
+#define IEEE695_EXTCMD_SPLIT {0x03, 0xb9}
+#define IEEE695_EXTCMD_INBLOCK {0x04, 0xb9}
+#define IEEE695_EXTCMD_CALLOPT {0x05, 0xb9}
+
+/* Helper Macros ********************************************************************/
+/* These macros extract un-aligned, little-endian values from the object file */
#define IEEE695_GETUINT16(p) \
(((uint16_t)(*(FAR uint8_t *)(p)) << 8) | \