1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
/* bin-file.h
*
* COPYRIGHT (c) 1993 by AT&T Bell Laboratories.
*
* The layout is:
* header
* import PerIDs (16 bytes each)
* export PerIDs (16 bytes each)
* CM dependency information
* inlinable lambda expression
* reserved area 1 (typically empty)
* reserved area 2 (typically empty)
* code objects
* This section contains a sequence of code objects, each of
* which is lead by its size. The individual sizes must sum up to
* codeSzB.
* pickled static environment
*/
#ifndef _BIN_FILE_
#define _BIN_FILE_
#ifndef _ML_BASE_
#include "ml-base.h"
#endif
/** Persistent IDs **/
#define PERID_LEN 16
typedef struct { /* a persistent ID (PerID) */
Byte_t bytes[PERID_LEN];
} pers_id_t;
typedef struct { /* The header of a .bin file; note that the fields */
/* are in big-endian representation. */
Byte_t magic[16]; /* magic number */
Int32_t importCnt; /* the number of imported PerIDs. */
Int32_t exportCnt; /* the number of exported PerIDs. */
Int32_t importSzB; /* size of import tree area */
Int32_t cmInfoSzB; /* the size of the CM dependency information area */
Int32_t lambdaSzB; /* the size of inlinable lambda expressions */
Int32_t reserved; /* reserved for future use */
Int32_t pad; /* padding for code segment alignment */
Int32_t codeSzB; /* the number of bytes of code */
Int32_t envSzB; /* the size of the environment */
} binfile_hdr_t;
#endif /* !_BIN_FILE_ */
|