2001-07-18 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mono / metadata / image.h
1 #ifndef _MONONET_METADATA_IMAGE_H_ 
2 #define _MONONET_METADATA_IMAGE_H_
3
4 typedef struct _MonoImage MonoImage;
5
6 struct _MonoImage {
7         int   ref_count;
8         FILE *f;
9         char *name;
10         void *image_info;
11
12         /*
13          * references is initialized only by using the mono_assembly_open
14          * function, and not by using the lowlevel mono_image_open.
15          *
16          * It is NULL terminated.
17          */
18         MonoImage **references;
19
20         /*
21          * user_info is a public field and is not touched by the
22          * metadata engine
23          */
24         void *user_info;
25 };
26
27 enum MonoImageOpenStatus {
28         MONO_IMAGE_OK,
29         MONO_IMAGE_ERROR_ERRNO,
30         MONO_IMAGE_MISSING_ASSEMBLYREF,
31         MONO_IMAGE_IMAGE_INVALID
32 };
33
34 MonoImage    *mono_image_open     (const char *fname,
35                                    enum MonoImageOpenStatus *status);
36 void          mono_image_close    (MonoImage *image);
37 const char   *mono_image_strerror (enum MonoImageOpenStatus status);
38
39
40 int           mono_image_ensure_section     (MonoImage *image,
41                                              const char *section);
42 int           mono_image_ensure_section_idx (MonoImage *image,
43                                              int section);
44         
45 #endif