EnglishРусский  

   ..

   vm.c

   vm.h

   vmload.c

   vmload.h

   vmres.c

   vmres.h

   vmrun.c

   vmrun.h

   vmtype.c

   vmtype.h

Ads

Perfect Automation tool
All-In-One: Script editor, Launcher, Scheduler, Keyboard & Mouse Recorder. Try now!

CreateInstall
Freeware and commercial installers.

Cell Phone Batteries
Batteries Plus offers batteries for laptop, camcorder, cell phone, camera.

Gentee needs your help!
How to advertise with us
 
laptop battery

source\src\vm\vmrun.h
 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: vrun 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: Execute the function.
15 * 
16 ******************************************************************************/
17 
18 #ifndef _VMRUN_
19 #define _VMRUN_
20 
21    #ifdef __cplusplus               
22       extern "C" {                 
23    #endif // __cplusplus      
24 
25 #include "vm.h"
26 
27 #pragma pack(push, 1)
28 // Структура для хранения состояния вызовов функций (команд)
29 typedef struct
30 {
31    puint       start;  // Смещение начала стэка функции. стэк функции начинается 
32                        // с параметров и после окончания работы там должен быть 
33                        // возвращаемый элемент
34    puint       cmd;    // указатель на текущую команду в теле функции
35    puint       top;    // указатель на вершину стэка - первый свободный элемент
36    uint        uiret;  // Сколько возвращает dword
37    pvmfunc     func;   // Текущая функция виртуальной машины
38    puint       clmark; // Метка до которой очищается стэк. Обычно равна start + predesc
39                        // Отличается от этого значения у локальных функций.
40    uint        nline;  // The latest line in debug mode
41 } stackpos, * pstackpos;
42 #pragma pack(pop)
43 
44 // Тип стэковой функции
45 typedef void ( STDCALL* stackfunc )( pstackpos );
46 
47 
48 #define  BCODE(x)  (( povmbcode )x->func)
49 
50 //--------------------------------------------------------------------------
51 
52 void  STDCALL pseudo_i( pstackpos curpos );
53 void  STDCALL pseudo_ul( pstackpos curpos );
54 void  STDCALL pseudo_pul( pstackpos curpos );
55 void  STDCALL pseudo_l( pstackpos curpos );
56 void  STDCALL pseudo_pl( pstackpos curpos );
57 void  STDCALL pseudo_f( pstackpos curpos );
58 void  STDCALL pseudo_pf( pstackpos curpos );
59 void  STDCALL pseudo_d( pstackpos curpos );
60 void  STDCALL pseudo_pd( pstackpos curpos );
61 void  STDCALL pseudo_ui( pstackpos curpos );
62 void  STDCALL pseudo_collectadd( pstackpos curpos );
63 uint  STDCALL vm_run( uint id, puint params, puint result );
64 uint  STDCALL vm_runone( uint id, uint first );
65 uint  STDCALL vm_runtwo( uint id, uint first, uint second );
66 uint  STDCALL vm_calladdr( void );
67 
68    #ifdef __cplusplus              
69       }                            
70    #endif // __cplusplus
71 
72 #endif // _VMRUN_
73 
Edit