diff lwasm/lwasm.h @ 337:04c80c51b16a

Checkpoint development
author lost
date Fri, 12 Mar 2010 06:01:38 +0000
parents 81c005b82775
children 1a6fc6ebb31c
line wrap: on
line diff
--- a/lwasm/lwasm.h	Fri Mar 05 02:34:16 2010 +0000
+++ b/lwasm/lwasm.h	Fri Mar 12 06:01:38 2010 +0000
@@ -22,9 +22,15 @@
 #ifndef ___lwasm_h_seen___
 #define ___lwasm_h_seen___
 
+#include <lw_expr.h>
 #include <lw_stringlist.h>
 #include <lw_stack.h>
 
+enum
+{
+	lwasm_expr_linelen = 1
+};
+
 enum lwasm_output_e
 {
 	OUTPUT_DECB = 0,	// DECB multirecord format
@@ -57,6 +63,16 @@
 	PRAGMA_IMPORTUNDEFEXPORT = 0x0010	// imports symbol if undefined upon export
 };
 
+typedef struct line_s line_t;
+struct line_s
+{
+	lw_expr_t addr;						// assembly address of the line
+	int len;							// the "size" this line occupies (address space wise) (-1 if unknown)
+	int insn;							// number of insn in insn table
+	line_t *prev;
+	line_t *next;
+};
+
 typedef struct
 {
 	int output_format;					// output format
@@ -65,6 +81,9 @@
 	int flags;							// assembly flags
 	int pragmas;						// pragmas currently in effect
 
+	line_t *line_head;					// start of lines list
+	line_t *line_tail;					// tail of lines list
+
 	char *list_file;					// name of file to list to
 	char *output_file;					// output file name	
 	lw_stringlist_t input_files;		// files to assemble