Mercurial > hg > index.cgi
comparison lwasm/lwasm.h @ 374:8e25147c2aa8
Clean up various "externs"
Apparently some compilers seriously choke on the "extern" keyword in some
circumstances where GCC does not. Remove most instances of "extern" to guard
against that.
Thanks to Erik G <erik@6809.org> for the patch.
author | William Astle <lost@l-w.ca> |
---|---|
date | Mon, 13 Jul 2015 20:31:56 -0600 |
parents | 8764142b3192 |
children | 71f507f404f1 |
comparison
equal
deleted
inserted
replaced
373:00fced888c5d | 374:8e25147c2aa8 |
---|---|
92 PRAGMA_CONDUNDEFZERO = 0x800, // treat undefined symbols as zero in conditionals during pass 1 | 92 PRAGMA_CONDUNDEFZERO = 0x800, // treat undefined symbols as zero in conditionals during pass 1 |
93 PRAGMA_6800COMPAT = 0x1000, // enable 6800 compatibility opcodes | 93 PRAGMA_6800COMPAT = 0x1000, // enable 6800 compatibility opcodes |
94 PRAGMA_FORWARDREFMAX = 0x2000, // force incomplete references on pass 1 to maximum mode | 94 PRAGMA_FORWARDREFMAX = 0x2000, // force incomplete references on pass 1 to maximum mode |
95 PRAGMA_6809 = 0x4000 // 6809/6309 assembly mode | 95 PRAGMA_6809 = 0x4000 // 6809/6309 assembly mode |
96 }; | 96 }; |
97 | |
98 | 97 |
99 enum | 98 enum |
100 { | 99 { |
101 section_flag_bss = 1, // BSS section | 100 section_flag_bss = 1, // BSS section |
102 section_flag_constant = 2, // constants - no base offset | 101 section_flag_constant = 2, // constants - no base offset |
386 int preprocess; // set if we are prepocessing | 385 int preprocess; // set if we are prepocessing |
387 int fileerr; // flags error opening file | 386 int fileerr; // flags error opening file |
388 int exprwidth; // the bit width of the expression being evaluated | 387 int exprwidth; // the bit width of the expression being evaluated |
389 }; | 388 }; |
390 | 389 |
391 #ifndef ___symbol_c_seen___ | 390 struct symtabe *register_symbol(asmstate_t *as, line_t *cl, char *sym, lw_expr_t value, int flags); |
392 | 391 struct symtabe *lookup_symbol(asmstate_t *as, line_t *cl, char *sym); |
393 extern struct symtabe *register_symbol(asmstate_t *as, line_t *cl, char *sym, lw_expr_t value, int flags); | |
394 extern struct symtabe *lookup_symbol(asmstate_t *as, line_t *cl, char *sym); | |
395 | |
396 #endif | |
397 | 392 |
398 void lwasm_register_error(asmstate_t *as, line_t *cl, lwasm_errorcode_t err); | 393 void lwasm_register_error(asmstate_t *as, line_t *cl, lwasm_errorcode_t err); |
399 void lwasm_register_error2(asmstate_t *as, line_t *cl, lwasm_errorcode_t err, const char* fmt, ...); | 394 void lwasm_register_error2(asmstate_t *as, line_t *cl, lwasm_errorcode_t err, const char* fmt, ...); |
400 | 395 |
401 #ifndef ___lwasm_c_seen___ | 396 int lwasm_next_context(asmstate_t *as); |
402 | 397 void lwasm_emit(line_t *cl, int byte); |
403 extern int lwasm_next_context(asmstate_t *as); | 398 void lwasm_emitop(line_t *cl, int opc); |
404 extern void lwasm_emit(line_t *cl, int byte); | 399 |
405 extern void lwasm_emitop(line_t *cl, int opc); | 400 void lwasm_save_expr(line_t *cl, int id, lw_expr_t expr); |
406 | 401 lw_expr_t lwasm_fetch_expr(line_t *cl, int id); |
407 extern void lwasm_save_expr(line_t *cl, int id, lw_expr_t expr); | 402 lw_expr_t lwasm_parse_expr(asmstate_t *as, char **p); |
408 extern lw_expr_t lwasm_fetch_expr(line_t *cl, int id); | 403 int lwasm_emitexpr(line_t *cl, lw_expr_t expr, int s); |
409 extern lw_expr_t lwasm_parse_expr(asmstate_t *as, char **p); | 404 |
410 extern int lwasm_emitexpr(line_t *cl, lw_expr_t expr, int s); | 405 void skip_operand(char **p); |
411 | 406 |
412 extern void skip_operand(char **p); | 407 int lwasm_lookupreg2(const char *rlist, char **p); |
413 | 408 int lwasm_lookupreg3(const char *rlist, char **p); |
414 extern int lwasm_lookupreg2(const char *rlist, char **p); | 409 |
415 extern int lwasm_lookupreg3(const char *rlist, char **p); | 410 void lwasm_show_errors(asmstate_t *as); |
416 | 411 |
417 extern void lwasm_show_errors(asmstate_t *as); | 412 int lwasm_reduce_expr(asmstate_t *as, lw_expr_t expr); |
418 | 413 |
419 extern int lwasm_reduce_expr(asmstate_t *as, lw_expr_t expr); | 414 lw_expr_t lwasm_parse_cond(asmstate_t *as, char **p); |
420 | 415 |
421 extern lw_expr_t lwasm_parse_cond(asmstate_t *as, char **p); | 416 int lwasm_calculate_range(asmstate_t *as, lw_expr_t expr, int *min, int *max); |
422 | 417 |
423 extern int lwasm_calculate_range(asmstate_t *as, lw_expr_t expr, int *min, int *max); | 418 void lwasm_reduce_line_exprs(line_t *cl); |
424 | |
425 extern void lwasm_reduce_line_exprs(line_t *cl); | |
426 | |
427 #endif | |
428 | 419 |
429 #ifdef LWASM_NODEBUG | 420 #ifdef LWASM_NODEBUG |
430 #define debug_message(...) | 421 #define debug_message(...) |
431 #define dump_state(...) | 422 #define dump_state(...) |
432 #else | 423 #else |
433 extern void real_debug_message(asmstate_t *as, int level, const char *fmt, ...); | 424 void real_debug_message(asmstate_t *as, int level, const char *fmt, ...); |
434 extern void dump_state(asmstate_t *as); | 425 void dump_state(asmstate_t *as); |
435 | 426 |
436 #define debug_message(as,level,...) do { asmstate_t *ras = (as); int rlevel = (level); if (ras->debug_level >= rlevel) { real_debug_message(ras, rlevel, __VA_ARGS__); } } while (0) | 427 #define debug_message(as,level,...) do { asmstate_t *ras = (as); int rlevel = (level); if (ras->debug_level >= rlevel) { real_debug_message(ras, rlevel, __VA_ARGS__); } } while (0) |
437 #endif | 428 #endif |
438 | 429 |
439 #define OPLEN(op) (((op)>0xFF)?2:1) | 430 #define OPLEN(op) (((op)>0xFF)?2:1) |