Checkpoint. More refactoring.
[tinycc/k1w1.git] / tccsym.h
blobe35c90f33340b920131dc3c97e921351f18d3859
1 /*
2 * Symbol handling for TCC
3 *
4 * Copyright (c) 2001-2004 Fabrice Bellard
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 #ifndef __TCCSYM_H__
21 #define __TCCSYM_H__
23 Sym *__sym_malloc(void);
24 inline Sym *sym_malloc(void);
25 static inline void sym_free(Sym *sym)
27 sym->next = sym_free_first;
28 sym_free_first = sym;
31 Sym *sym_find(int v);
32 Sym *sym_push(int v, CType *type, int r, int c);
33 Sym *sym_push2(Sym **ps, int v, int t, long c);
34 Sym *sym_find2(Sym *s, int v);
35 inline Sym *struct_find(int v);
36 inline Sym *sym_find(int v);
37 Sym *global_identifier_push(int v, int t, int c);
38 Sym *sym_push(int v, CType *type, int r, int c);
39 void sym_pop(Sym **ptop, Sym *b);
40 void *resolve_sym(TCCState *s1, const char *symbol);
42 #ifdef CONFIG_TCC_STATIC
44 #define RTLD_LAZY 0x001
45 #define RTLD_NOW 0x002
46 #define RTLD_GLOBAL 0x100
47 #define RTLD_DEFAULT NULL
49 /* dummy function for profiling */
50 void *dlopen(const char *filename, int flag);
51 void dlclose(void *p);
52 const char *dlerror(void);
54 #elif defined(_WIN32)
55 #define dlclose FreeLibrary
57 #else
58 #include <dlfcn.h>
59 #endif
61 #endif /* __TCCSYM_H__ */