X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fimage-writer.h;h=cc8b5f3d556a2459ec8d45880352bc01e9bb67dc;hb=ad2d093d06f684e8bc956e42b1741122aea90b05;hp=119b2b52f8e89adf62dfc3bacdb79e0763cb169b;hpb=91f40d40a9bd43958bcb3d5915f5f95e0e06f5ea;p=mono.git diff --git a/mono/mini/image-writer.h b/mono/mini/image-writer.h index 119b2b52f8e..cc8b5f3d556 100644 --- a/mono/mini/image-writer.h +++ b/mono/mini/image-writer.h @@ -2,11 +2,11 @@ * image-writer.h: Creation of object files or assembly files using the same interface. * * Author: - * Dietmar Maurer (dietmar@ximian.com) MONO_INTERNAL; - * Zoltan Varga (vargaz@gmail.com) MONO_INTERNAL; - * Paolo Molaro (lupus@ximian.com) MONO_INTERNAL; + * Dietmar Maurer (dietmar@ximian.com); + * Zoltan Varga (vargaz@gmail.com); + * Paolo Molaro (lupus@ximian.com); * - * (C) MONO_INTERNAL; 2002 Ximian, Inc. + * (C); 2002 Ximian, Inc. */ #ifndef __MONO_IMAGE_WRITER_H__ @@ -21,52 +21,73 @@ typedef struct _MonoImageWriter MonoImageWriter; -gboolean bin_writer_supported (void) MONO_INTERNAL; +/* Relocation types */ +#define R_ARM_CALL 28 +#define R_ARM_JUMP24 29 +#define R_ARM_ALU_PC_G0_NC 59 -MonoImageWriter* img_writer_create (FILE *fp, gboolean use_bin_writer) MONO_INTERNAL; +gboolean mono_bin_writer_supported (void); -void img_writer_destroy (MonoImageWriter *w) MONO_INTERNAL; +MonoImageWriter* mono_img_writer_create (FILE *fp, gboolean use_bin_writer); -void img_writer_emit_start (MonoImageWriter *w) MONO_INTERNAL; +void mono_img_writer_destroy (MonoImageWriter *w); -int img_writer_emit_writeout (MonoImageWriter *w) MONO_INTERNAL; +void mono_img_writer_emit_start (MonoImageWriter *w); -void img_writer_emit_section_change (MonoImageWriter *w, const char *section_name, int subsection_index) MONO_INTERNAL; +int mono_img_writer_emit_writeout (MonoImageWriter *w); -void img_writer_emit_push_section (MonoImageWriter *w, const char *section_name, int subsection) MONO_INTERNAL; +guint8* mono_img_writer_get_output (MonoImageWriter *acfg, guint32 *size); -void img_writer_emit_pop_section (MonoImageWriter *w) MONO_INTERNAL; +void mono_img_writer_emit_section_change (MonoImageWriter *w, const char *section_name, int subsection_index); -void img_writer_emit_global (MonoImageWriter *w, const char *name, gboolean func) MONO_INTERNAL; +void mono_img_writer_emit_push_section (MonoImageWriter *w, const char *section_name, int subsection); -void img_writer_emit_local_symbol (MonoImageWriter *w, const char *name, const char *end_label, gboolean func) MONO_INTERNAL; +void mono_img_writer_emit_pop_section (MonoImageWriter *w); -void img_writer_emit_label (MonoImageWriter *w, const char *name) MONO_INTERNAL; +void mono_img_writer_set_section_addr (MonoImageWriter *acfg, guint64 addr); -void img_writer_emit_bytes (MonoImageWriter *w, const guint8* buf, int size) MONO_INTERNAL; +void mono_img_writer_emit_global (MonoImageWriter *w, const char *name, gboolean func); -void img_writer_emit_string (MonoImageWriter *w, const char *value) MONO_INTERNAL; +void mono_img_writer_emit_local_symbol (MonoImageWriter *w, const char *name, const char *end_label, gboolean func); -void img_writer_emit_line (MonoImageWriter *w) MONO_INTERNAL; +void mono_img_writer_emit_symbol_size (MonoImageWriter *w, const char *start, const char *end_label); -void img_writer_emit_alignment (MonoImageWriter *w, int size) MONO_INTERNAL; +void mono_img_writer_emit_label (MonoImageWriter *w, const char *name); -void img_writer_emit_pointer_unaligned (MonoImageWriter *w, const char *target) MONO_INTERNAL; +void mono_img_writer_emit_bytes (MonoImageWriter *w, const guint8* buf, int size); -void img_writer_emit_pointer (MonoImageWriter *w, const char *target) MONO_INTERNAL; +void mono_img_writer_emit_string (MonoImageWriter *w, const char *value); -void img_writer_emit_int16 (MonoImageWriter *w, int value) MONO_INTERNAL; +void mono_img_writer_emit_line (MonoImageWriter *w); -void img_writer_emit_int32 (MonoImageWriter *w, int value) MONO_INTERNAL; +void mono_img_writer_emit_alignment (MonoImageWriter *w, int size); -void img_writer_emit_symbol_diff (MonoImageWriter *w, const char *end, const char* start, int offset) MONO_INTERNAL; +void mono_img_writer_emit_alignment_fill (MonoImageWriter *w, int size, int fill); -void img_writer_emit_zero_bytes (MonoImageWriter *w, int num) MONO_INTERNAL; +void mono_img_writer_emit_pointer_unaligned (MonoImageWriter *w, const char *target); -void img_writer_emit_global (MonoImageWriter *w, const char *name, gboolean func) MONO_INTERNAL; +void mono_img_writer_emit_pointer (MonoImageWriter *w, const char *target); -void img_writer_emit_byte (MonoImageWriter *w, guint8 val) MONO_INTERNAL; +void mono_img_writer_emit_int16 (MonoImageWriter *w, int value); -void img_writer_emit_reloc (MonoImageWriter *acfg, int reloc_type, const char *symbol, int addend) MONO_INTERNAL; +void mono_img_writer_emit_int32 (MonoImageWriter *w, int value); + +void mono_img_writer_emit_symbol_diff (MonoImageWriter *w, const char *end, const char* start, int offset); + +void mono_img_writer_emit_zero_bytes (MonoImageWriter *w, int num); + +void mono_img_writer_emit_global (MonoImageWriter *w, const char *name, gboolean func); + +void mono_img_writer_emit_byte (MonoImageWriter *w, guint8 val); + +void mono_img_writer_emit_reloc (MonoImageWriter *acfg, int reloc_type, const char *symbol, int addend); + +void mono_img_writer_emit_unset_mode (MonoImageWriter *acfg); + +gboolean mono_img_writer_subsections_supported (MonoImageWriter *acfg); + +FILE * mono_img_writer_get_fp (MonoImageWriter *acfg); + +const char *mono_img_writer_get_temp_label_prefix (MonoImageWriter *acfg); #endif