* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / linux86-0.16.17 / ld / obj.h
blobddfa7a175e3c600b111d7aa6068cfba5e03fe2f9
1 /* obj.h - constants for Introl object modules */
3 /* Copyright (C) 1994 Bruce Evans */
5 #define OBJ_H
7 #ifndef OMAGIC
8 # ifdef I80386
9 # define OMAGIC 0x86A3
10 # endif
12 # ifdef I8086
13 # define OMAGIC 0x86A0
14 # endif
16 # ifdef MC6809
17 # define OMAGIC 0x5331
18 # endif
19 #endif
21 #ifdef LONG_OFFSETS
22 # define cntooffset cnu4
23 # define offtocn u4cn
24 #else
25 # define cntooffset cnu2
26 # define offtocn u2cn
27 #endif
29 #ifdef MC6809 /* temp don't support alignment at all */
30 # define ld_roundup( num, boundary, type ) (num)
31 #else
32 # define ld_roundup( num, boundary, type ) \
33 (((num) + ((boundary) - 1)) & (type) ~((boundary) - 1))
34 #endif
36 #define MAX_OFFSET_SIZE 4
37 #define NSEG 16
39 /* flag values |SZ|LXXXX|N|E|I|R|A|SEGM|, X not used */
41 #define A_MASK 0x0010 /* absolute */
42 #define C_MASK 0x0020 /* common (internal only) */
43 #define E_MASK 0x0080 /* exported */
44 #define I_MASK 0x0040 /* imported */
45 #define N_MASK 0x0100 /* entry point */
46 #define R_MASK 0x0020 /* relative (in text only) */
47 #define SEGM_MASK 0x000F /* segment (if not absolute) */
48 #define SA_MASK 0x2000 /* offset is storage allocation */
49 #define SZ_MASK 0xC000 /* size descriptor for value */
50 #define SZ_SHIFT 14