/**************************************************************************/ /* */ /* OCaml */ /* */ /* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ /* */ /* Copyright 2001 Institut National de Recherche en Informatique et */ /* en Automatique. */ /* */ /* All rights reserved. This file is distributed under the terms of */ /* the GNU Lesser General Public License version 2.1, with the */ /* special exception on linking described in the file LICENSE. */ /* */ /**************************************************************************/ #ifndef CAML_STARTUP_H #define CAML_STARTUP_H #ifdef CAML_INTERNALS #include "mlvalues.h" #include "exec.h" #include "startup_aux.h" CAMLextern void caml_startup_code( code_t code, asize_t code_size, char *data, asize_t data_size, char *section_table, asize_t section_table_size, int pooling, char_os **argv); CAMLextern value caml_startup_code_exn( code_t code, asize_t code_size, char *data, asize_t data_size, char *section_table, asize_t section_table_size, int pooling, char_os **argv); /* These enum members should all be negative */ enum { FILE_NOT_FOUND = -1, BAD_BYTECODE = -2, WRONG_MAGIC = -3, NO_FDS = -4 }; extern int caml_attempt_open(const char_os *name, struct exec_trailer *trail, int do_open_script); extern int caml_read_trailer(int fd, struct exec_trailer *trail); extern void caml_read_section_descriptors(int fd, struct exec_trailer *trail); extern int32_t caml_seek_optional_section(int fd, struct exec_trailer *trail, const char *name); extern int32_t caml_seek_section(int fd, struct exec_trailer *trail, const char *name); enum caml_byte_program_mode { STANDARD, /* Default mode for ocamlrun */ APPENDED, /* bytecode must be appended (i.e. -custom) */ EMBEDDED /* bytecode embedded in C (e.g. -output-complete-exe/-output-obj) */ }; extern enum caml_byte_program_mode caml_byte_program_mode; /* The default location of the Standard Library as used by the runtime to find ld.conf */ extern const char_os *caml_runtime_standard_library_default; extern const char_os *caml_runtime_standard_library_effective; #endif /* CAML_INTERNALS */ #endif /* CAML_STARTUP_H */