Viewing file: exec.h (2.44 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/**************************************************************************/ /* */ /* OCaml */ /* */ /* Xavier Leroy, projet Cristal, INRIA Rocquencourt */ /* */ /* Copyright 1996 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. */ /* */ /**************************************************************************/
/* exec.h : format of executable bytecode files */
#ifndef CAML_EXEC_H #define CAML_EXEC_H
#ifdef CAML_INTERNALS
/* Executable bytecode files are composed of a number of sections, identified by 4-character names. A table of contents at the end of the file lists the section names along with their sizes, in the order in which they appear in the file:
offset 0 ---> initial junk data for section 1 data for section 2 ... data for section N table of contents: descriptor for section 1 ... descriptor for section N trailer end of file ---> */
/* Structure of t.o.c. entries Numerical quantities are 32-bit unsigned integers, big endian */
struct section_descriptor { char name[4]; /* Section name */ uint32_t len; /* Length of data in bytes */ };
#define EXEC_MAGIC_LENGTH 12
/* Structure of the trailer. */
struct exec_trailer { uint32_t num_sections; /* Number of sections */ char magic[EXEC_MAGIC_LENGTH]; /* The magic number */ struct section_descriptor * section; /* Not part of file */ };
#define TRAILER_SIZE (4+EXEC_MAGIC_LENGTH)
/* Magic number for this release */
#define EXEC_MAGIC "Caml1999X025"
#endif /* CAML_INTERNALS */
#endif /* CAML_EXEC_H */
|