Initial revision
[cacao.git] / loader.h
1 /******************************* loader.h **************************************
2
3         Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
4
5         See file COPYRIGHT for information on usage and disclaimer of warranties
6
7         Contains the prototypes for the class loader.
8
9         Author:  Reinhard Grafl      EMAIL: cacao@complang.tuwien.ac.at
10
11         Last Change: 1997/11/14
12
13 *******************************************************************************/
14
15
16 /************************* program switches ***********************************/
17
18 extern bool loadverbose;         /* Debug-Meldungen beim Laden ausgeben */
19 extern bool linkverbose;
20 extern bool initverbose;         /* Meldungen ausgeben, wenn Klasse 
21                                    initialisiert wird */
22 extern bool makeinitializations; /* Klassen automatisch initialisieren */
23
24 extern bool getloadingtime;
25 extern long int loadingtime;     /* CPU-Zeit f"urs Laden der Klassen */
26
27 extern list linkedclasses;       /* Liste aller fertig gelinkten Klassen */
28
29
30 /************************ prototypes ******************************************/
31
32 void loader_init ();
33 void loader_close ();
34
35 classinfo *loader_load (unicode *topname);
36 void loader_initclasses ();
37
38 classinfo *class_get (unicode *name);
39 voidptr class_getconstant (classinfo *class, u4 pos, u4 ctype);
40 u4 class_constanttype (classinfo *class, u4 pos);
41
42 fieldinfo *class_findfield (classinfo *c, unicode *name, unicode *desc);
43 methodinfo *class_findmethod (classinfo *c, unicode *name, unicode *desc);
44
45 methodinfo *class_resolvemethod (classinfo *c, unicode *name, unicode *dest);
46
47 bool class_issubclass (classinfo *sub, classinfo *super);
48
49 void class_init (classinfo *c);
50
51 void class_showmethods (classinfo *c);
52 void class_showconstantpool (classinfo *c);
53