/* */
/* */
/* */
-/* (C) 1998-2003 Ullrich von Bassewitz */
-/* Römerstrasse 52 */
-/* D-70794 Filderstadt */
-/* EMail: uz@cc65.org */
+/* (C) 1998-2010, Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
#include "filepos.h"
/* ld65 */
-#include "objdata.h"
#include "config.h"
+#include "memarea.h"
+#include "objdata.h"
struct Export* Exp; /* Matching export for this import */
unsigned Name; /* Name if not in table */
unsigned char Flags; /* Generic flags */
- unsigned char Type; /* Type of import */
+ unsigned char AddrSize; /* Address size of import */
};
FilePos Pos; /* File position of definition */
ExprNode* Expr; /* Expression (0 if not def'd) */
unsigned char Type; /* Type of export */
+ unsigned char AddrSize; /* Address size of export */
unsigned char ConDes[CD_TYPE_COUNT]; /* Constructor/destructor decls */
};
Import* ReadImport (FILE* F, ObjData* Obj);
/* Read an import from a file and insert it into the table */
-void InsertImport (Import* I);
-/* Insert an import into the table */
+Import* GenImport (unsigned Name, unsigned char AddrSize);
+/* Generate a new import with the given name and address size and return it */
+
+Import* InsertImport (Import* I);
+/* Insert an import into the table, return I */
void FreeExport (Export* E);
/* Free an export. NOTE: This won't remove the export from the exports table,
Export* CreateConstExport (unsigned Name, long Value);
/* Create an export for a literal date */
-Export* CreateMemoryExport (unsigned Name, Memory* Mem, unsigned long Offs);
+Export* CreateMemoryExport (unsigned Name, MemoryArea* Mem, unsigned long Offs);
/* Create an relative export for a memory area offset */
Export* CreateSegmentExport (unsigned Name, Segment* Seg, unsigned long Offs);
long GetExportVal (const Export* E);
/* Get the value of this export */
-void CheckExports (ExpCheckFunc F, void* Data);
-/* Check if there are any unresolved symbols. On unresolved symbols, F is
+void CheckExports (void);
+/* Setup the list of all exports and check for export/import symbol type
+ * mismatches.
+ */
+
+void CheckUnresolvedImports (ExpCheckFunc F, void* Data);
+/* Check if there are any unresolved imports. On unresolved imports, F is
* called (see the comments on ExpCheckFunc in the data section).
*/