1 /* output_hunk.h header file for AmigaOS hunk format */
2 /* (c) in 2002-2015 by Frank Wille */
3 
4 /* hunk-format relocs */
5 struct hunkreloc {
6   struct node n;
7   uint32_t hunk_id;
8   uint32_t hunk_index;
9   uint32_t hunk_offset;
10 };
11 
12 /* hunk-format external reference */
13 struct hunkxref {
14   struct node n;
15   char *name;
16   uint32_t type;
17   uint32_t size;
18   uint32_t offset;
19 };
20 
21 /* line debug hunk */
22 struct hunkline {
23   struct node n;
24   uint32_t line;
25 
26   uint32_t offset;
27 };
28 
29 
30 /* additional symbol flags */
31 #define COMM_REFERENCED (RSRVD_O<<0)  /* common symbol was referenced */
32 
33 /* additional section flags */
34 #define SEC_DELETED     (SECRSRVD<<1) /* this section can be deleted */
35 
36 
37 /* Amiga DOS Hunks */
38 #define HUNK_UNIT       999
39 #define HUNK_NAME       1000
40 #define HUNK_CODE       1001
41 #define HUNK_DATA       1002
42 #define HUNK_BSS        1003
43 #define HUNK_ABSRELOC32 1004
44 #define HUNK_RELRELOC16 1005
45 #define HUNK_RELRELOC8  1006
46 #define HUNK_EXT        1007
47 #define HUNK_SYMBOL     1008
48 #define HUNK_DEBUG      1009
49 #define HUNK_END        1010
50 #define HUNK_HEADER     1011
51 #define HUNK_DREL32     1015
52 #define HUNK_DREL16     1016
53 #define HUNK_DREL8      1017
54 #define HUNK_RELRELOC32 1021
55 #define HUNK_ABSRELOC16 1022
56 
57 /* EHF extensions */
58 #define HUNK_PPC_CODE   1257
59 #define HUNK_RELRELOC26 1260
60 
61 /* memory type */
62 #define HUNKB_CHIP      30
63 #define HUNKB_FAST      31
64 #define HUNKF_CHIP      (1L<<30)
65 #define HUNKF_FAST      (1L<<31)
66 #define HUNKF_MEMTYPE   (HUNKF_CHIP|HUNKF_FAST)
67 
68 /* AmigaOS memory flags */
69 #define MEMF_PUBLIC     (1L<<0)
70 #define MEMF_CHIP       (1L<<1)
71 #define MEMF_FAST       (1L<<2)
72 
73 /* hunk_ext sub-types */
74 #define EXT_SYMB 0
75 #define EXT_DEF	1
76 #define EXT_ABS	2
77 #define EXT_ABSREF32 129
78 #define EXT_ABSCOMMON 130
79 #define EXT_RELREF16 131
80 #define EXT_RELREF8 132
81 #define EXT_DEXT32 133
82 #define EXT_DEXT16 134
83 #define EXT_DEXT8 135
84 #define EXT_RELREF32 136
85 #define EXT_RELCOMMON 137
86 #define EXT_ABSREF16 138
87 #define EXT_ABSREF8 139
88 
89 /* EHF extensions */
90 #define EXT_RELREF26 229
91