-
Notifications
You must be signed in to change notification settings - Fork 0
/
coff.h
76 lines (58 loc) · 2.01 KB
/
coff.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include<string.h>
#include "linenum.h"
#pragma once
/* globals for line number entry information */
/* we follow the basic style of GNU */
struct lineno_entry
{
struct lineno coff_lineno;
long int ln_number; /* this entry's index within the */
/* list of lineno's. Need this index */
/* for a function's auxent */
struct symbol * ln_sym; /* needed for physical address */
struct lineno_entry * ln_next;
};
typedef struct lineno_entry linenoS;
extern linenoS * lineno_rootP; /* all the line number entries */
extern linenoS * lineno_lastP; /* last lineno entry made, or NULL */
extern long lineno_index; /* counter for lineno entries */
/* globals needed to implement the linked list structure for
functions and structures for COFF debugging. */
extern symbolS * current_function;
extern symbolS * current_bf;
extern symbolS * current_ef;
extern symbolS * current_bb;
extern symbolS * current_struct;
extern short inside_current_struct;
extern long int static_symbol_start_index;
extern long int symbol_index;
extern int keep_the_underscore;
typedef struct fieldn {
char * fname;
int ndx;
} field_name;
typedef enum {bf, bb, ef, eb, eos, dim} coff_dirs;
int coff_tab_memq ();
/* Need to work on the layout of the changes */
/* auxentS is defined in struc-symbol.h */
auxentS * auxent_new();
/* structure needed for linked list of function sizes */
struct fsize_entry
{
long fcn_size;
struct fsize_entry * fsize_next;
};
typedef struct fsize_entry fsizeS;
extern fsizeS * fsize_rootP; /* begining of fsize list */
extern fsizeS * fsize_lastP; /* note: the last lastP fsize is really
the size of the data section */
/* clm 12/10/90 - structure and list pointers needed for linked list of
comments introduced by the new .ident directive */
struct comment_entry
{
char * comment;
struct comment_entry * comment_next;
};
typedef struct comment_entry commentS;
extern commentS * comment_rootP;
extern commentS * comment_lastP;