1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * ID: ge 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: The format of the compiled byte-code. Also, this is a format of
15 .ge files.
16 *
17 ******************************************************************************/
18
19 #ifndef _GE_
20 #define _GE_
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif // __cplusplus
25
26 #include "../common/buf.h"
27
28 /*-----------------------------------------------------------------------------
29 *
30 * ID: gedefines 19.10.06 0.0.A.
31 *
32 * Summary: The GE defines
33 *
34 -----------------------------------------------------------------------------*/
35
36 #define GE_STRING 0x00004547 // 'GE' string
37 #define GEVER_MAJOR 4
38 #define GEVER_MINOR 0
39
40 /*-----------------------------------------------------------------------------
41 *
42 * ID: gehead 19.10.06 0.0.A.
43 *
44 * Summary: The header of GE data
45 *
46 -----------------------------------------------------------------------------*/
47
48 typedef struct
49 {
50 uint idname; // 'GE' string. It must equal GE_STRING
51 uint flags; // The GE flags.
52 uint crc; // CRC from the next byte to the end
53 uint headsize; // The size of the header data
54 uint size; // The summary size of this GE. It includes this header
55 ubyte vermajor; // The major version of .ge format. The virtual machine
56 // can load the byte code only with the same major version
57 ubyte verminor; // The minor version of .ge format.
58 } gehead, * pgehead;
59
60 uint STDCALL ge_load( pbuf in );
61 uint STDCALL ge_save( pbuf out );
62 void STDCALL ge_optimize( void );
63 void STDCALL ge_getused( uint id );
64
65 //--------------------------------------------------------------------------
66
67 #ifdef __cplusplus
68 }
69 #endif // __cplusplus
70
71 #endif // _GE_
72
73
Редактировать