libyasm
Main Page
Data Structures
Files
File List
Globals
libyasm
symrec.h
Go to the documentation of this file.
1
30
#ifndef YASM_SYMREC_H
31
#define YASM_SYMREC_H
32
33
#ifndef YASM_LIB_DECL
34
#define YASM_LIB_DECL
35
#endif
36
41
typedef
enum
yasm_sym_status
{
42
YASM_SYM_NOSTATUS
= 0,
43
YASM_SYM_USED
= 1 << 0,
44
YASM_SYM_DEFINED
= 1 << 1,
45
YASM_SYM_VALUED
= 1 << 2,
46
YASM_SYM_NOTINTABLE
= 1 << 3
47
}
yasm_sym_status
;
48
52
typedef
enum
yasm_sym_vis
{
53
YASM_SYM_LOCAL
= 0,
54
YASM_SYM_GLOBAL
= 1 << 0,
55
YASM_SYM_COMMON
= 1 << 1,
56
YASM_SYM_EXTERN
= 1 << 2,
57
YASM_SYM_DLOCAL
= 1 << 3
58
}
yasm_sym_vis
;
59
61
YASM_LIB_DECL
62
yasm_symtab
*
yasm_symtab_create
(
void
);
63
69
YASM_LIB_DECL
70
void
yasm_symtab_destroy
(
/*@only@*/
yasm_symtab
*symtab);
71
77
YASM_LIB_DECL
78
void
yasm_symtab_set_case_sensitive
(
yasm_symtab
*symtab,
int
sensitive);
79
87
YASM_LIB_DECL
88
/*@dependent@*/
yasm_symrec
*
yasm_symtab_abs_sym
(
yasm_symtab
*symtab);
89
97
YASM_LIB_DECL
98
/*@dependent@*/
yasm_symrec
*
yasm_symtab_use
99
(
yasm_symtab
*symtab,
const
char
*name,
unsigned
long
line);
100
109
YASM_LIB_DECL
110
/*@null@*/
/*@dependent@*/
yasm_symrec
*
yasm_symtab_get
111
(
yasm_symtab
*symtab,
const
char
*name);
112
120
YASM_LIB_DECL
121
/*@dependent@*/
yasm_symrec
*
yasm_symtab_define_equ
122
(
yasm_symtab
*symtab,
const
char
*name,
/*@keep@*/
yasm_expr
*e,
123
unsigned
long
line);
124
134
YASM_LIB_DECL
135
/*@dependent@*/
yasm_symrec
*
yasm_symtab_define_label
136
(
yasm_symtab
*symtab,
const
char
*name,
137
/*@dependent@*/
yasm_bytecode
*precbc,
int
in_table,
unsigned
long
line);
138
149
YASM_LIB_DECL
150
/*@dependent@*/
yasm_symrec
*
yasm_symtab_define_curpos
151
(
yasm_symtab
*symtab,
const
char
*name,
152
/*@dependent@*/
yasm_bytecode
*precbc,
unsigned
long
line);
153
162
YASM_LIB_DECL
163
/*@dependent@*/
yasm_symrec
*
yasm_symtab_define_special
164
(
yasm_symtab
*symtab,
const
char
*name,
yasm_sym_vis
vis);
165
174
YASM_LIB_DECL
175
/*@dependent@*/
yasm_symrec
*
yasm_symtab_declare
176
(
yasm_symtab
*symtab,
const
char
*name,
yasm_sym_vis
vis,
177
unsigned
long
line);
178
185
YASM_LIB_DECL
186
void
yasm_symrec_declare
(
yasm_symrec
*symrec,
yasm_sym_vis
vis,
187
unsigned
long
line);
188
194
typedef
int (*
yasm_symtab_traverse_callback
)
195
(
yasm_symrec
*sym,
/*@null@*/
void
*d);
196
204
YASM_LIB_DECL
205
int
/*@alt void@*/
yasm_symtab_traverse
206
(
yasm_symtab
*symtab,
/*@null@*/
void
*d,
207
yasm_symtab_traverse_callback
func);
208
210
typedef
struct
yasm_symtab_iter
yasm_symtab_iter
;
211
216
YASM_LIB_DECL
217
const
yasm_symtab_iter
*
yasm_symtab_first
(
const
yasm_symtab
*symtab);
218
223
YASM_LIB_DECL
224
/*@null@*/
const
yasm_symtab_iter
*
yasm_symtab_next
225
(
const
yasm_symtab_iter
*prev);
226
231
YASM_LIB_DECL
232
yasm_symrec
*
yasm_symtab_iter_value
(
const
yasm_symtab_iter
*cur);
233
241
YASM_LIB_DECL
242
void
yasm_symtab_parser_finalize
(
yasm_symtab
*symtab,
int
undef_extern,
243
yasm_errwarns
*errwarns);
244
250
YASM_LIB_DECL
251
void
yasm_symtab_print
(
yasm_symtab
*symtab, FILE *f,
int
indent_level);
252
257
YASM_LIB_DECL
258
/*@observer@*/
const
char
*
yasm_symrec_get_name
(
const
yasm_symrec
*sym);
259
265
YASM_LIB_DECL
266
/*@only@*/
char
*
yasm_symrec_get_global_name
(
const
yasm_symrec
*sym,
267
const
yasm_object
*
object
);
268
273
YASM_LIB_DECL
274
yasm_sym_vis
yasm_symrec_get_visibility
(
const
yasm_symrec
*sym);
275
280
YASM_LIB_DECL
281
yasm_sym_status
yasm_symrec_get_status
(
const
yasm_symrec
*sym);
282
287
YASM_LIB_DECL
288
unsigned
long
yasm_symrec_get_def_line
(
const
yasm_symrec
*sym);
289
294
YASM_LIB_DECL
295
unsigned
long
yasm_symrec_get_decl_line
(
const
yasm_symrec
*sym);
296
301
YASM_LIB_DECL
302
unsigned
long
yasm_symrec_get_use_line
(
const
yasm_symrec
*sym);
303
308
YASM_LIB_DECL
309
/*@observer@*/
/*@null@*/
const
yasm_expr
*
yasm_symrec_get_equ
310
(
const
yasm_symrec
*sym);
311
313
typedef
/*@dependent@*/
yasm_bytecode
*
yasm_symrec_get_label_bytecodep
;
314
321
YASM_LIB_DECL
322
int
yasm_symrec_get_label
(
const
yasm_symrec
*sym,
323
/*@out@*/
yasm_symrec_get_label_bytecodep
*precbc);
324
329
YASM_LIB_DECL
330
void
yasm_symrec_set_size
(
yasm_symrec
*sym,
int
size);
331
336
YASM_LIB_DECL
337
int
yasm_symrec_get_size
(
const
yasm_symrec
*sym);
338
343
YASM_LIB_DECL
344
void
yasm_symrec_set_segment
(
yasm_symrec
*sym,
const
char
*segment);
345
350
YASM_LIB_DECL
351
const
char
*
yasm_symrec_get_segment
(
const
yasm_symrec
*sym);
352
358
YASM_LIB_DECL
359
int
yasm_symrec_is_abs
(
const
yasm_symrec
*sym);
360
365
YASM_LIB_DECL
366
int
yasm_symrec_is_special
(
const
yasm_symrec
*sym);
367
372
YASM_LIB_DECL
373
int
yasm_symrec_is_curpos
(
const
yasm_symrec
*sym);
374
379
YASM_LIB_DECL
380
void
yasm_symrec_set_objext_valparams
381
(
yasm_symrec
*sym,
/*@only@*/
yasm_valparamhead
*objext_valparams);
382
388
YASM_LIB_DECL
389
/*@null@*/
/*@dependent@*/
yasm_valparamhead
*
yasm_symrec_get_objext_valparams
390
(
yasm_symrec
*sym);
391
396
YASM_LIB_DECL
397
void
yasm_symrec_set_common_size
398
(
yasm_symrec
*sym,
/*@only@*/
yasm_expr
*common_size);
399
405
YASM_LIB_DECL
406
/*@dependent@*/
/*@null@*/
yasm_expr
**
yasm_symrec_get_common_size
407
(
yasm_symrec
*sym);
408
414
YASM_LIB_DECL
415
/*@dependent@*/
/*@null@*/
void
*
yasm_symrec_get_data
416
(
yasm_symrec
*sym,
const
yasm_assoc_data_callback
*callback);
417
424
YASM_LIB_DECL
425
void
yasm_symrec_add_data
(
yasm_symrec
*sym,
426
const
yasm_assoc_data_callback
*callback,
427
/*@only@*/
/*@null@*/
void
*data);
428
434
YASM_LIB_DECL
435
void
yasm_symrec_print
(
const
yasm_symrec
*sym, FILE *f,
int
indent_level);
436
437
#endif
Generated on Sat Jan 31 2015 01:25:12 for libyasm by
1.8.3.1