Pristine Ack-5.5
[Ack-5.5.git] / util / ceg / ce_back / obj_back / back.h
1 /* This file must be included in all the files which use the backlibrary.
2  */
3
4 #include <em.h>
5 #include "data.h"
6
7 /* These routines are called very often, thus we turned them into macros. */
8
9 #define text1(b)        {if (--text_cnt < 0) mem_text(); *text++ = b;}
10 #define con1(b)         {if (--data_cnt < 0) mem_data(); *data++ = b;}
11 #define rom1(b)         {if (--data_cnt < 0) mem_data(); *data++ = b;}
12 #define bss( n)         ( nbss += n)
13
14 /* Macros to change interface names */
15
16 #define common          B_common
17 #define con2            B_con2
18 #define con4            B_con4
19 #define rom2            B_rom2
20 #define rom4            B_rom4
21 #define text2           B_txt2
22 #define text4           B_txt4
23 #define close_back      B_close_back
24 #define open_back       B_open_back
25 #define end_back        B_end_back
26 #define init_back       B_init_back
27 #define extnd_pro       B_ex_pro
28 #define extnd_start     B_ex_start
29 #define extnd_name      B_ex_name
30 #define extnd_dnam      B_ex_dnam
31 #define extnd_dlb       B_ex_dlb
32 #define extnd_ilb       B_ex_ilb
33 #define extnd_hol       B_ex_hol
34 #define extnd_part      B_ex_part
35 #define extnd_cont      B_ex_cont
36 #define extnd_main      B_ex_main
37 #define gen1            B_gen1
38 #define gen2            B_gen2
39 #define gen4            B_gen4
40 #define save_label      B_save_label
41 #define dump_label      B_dump_label
42 #define align_word      B_align_word
43 #define reloc1          B_rlc1
44 #define reloc2          B_rlc2
45 #define reloc4          B_rlc4
46 #define set_global_visible      B_stglobvis
47 #define set_local_visible       B_stlocvis
48 #define symbol_definition       B_symdef
49 #define not_implemented         B_not_implemented
50
51
52 /* Numbering of the segments and some global constants */
53
54 #define         SEGTXT          0
55 #define         SEGROM          1
56 #define         SEGCON          2
57 #define         SEGBSS          3
58 #define         SEGHOL          -1      /* does not exist */
59
60 #define swtxt()         switchseg( SEGTXT)
61
62 #define switchseg(seg)  if ((seg) != cur_seg) B_swtchsg(seg); else
63
64 #define         PC_REL          1
65 #define         ABSOLUTE        !PC_REL
66
67
68 /* Initialize values. */
69
70 #define MAXTEXT         4096
71 #define MAXDATA         2048
72 #define MAXRELO         512
73 #define MAXNAME         512
74 #define MAXSTRING       4096
75
76 extern char *extnd_name(), *extnd_dnam(), *extnd_dlb(), *extnd_ilb(),
77             *extnd_hol(), *extnd_ext(), *extnd_pro(), *extnd_start(),
78             *extnd_part(), *extnd_cont(), *extnd_main();