1 /* -----------------------------------------------------------------------------
2 * $Id: Evaluator.h,v 1.6 1999/11/08 15:30:37 sewardj Exp $
4 * (c) The GHC Team, 1998-1999
6 * Prototypes for functions in Evaluator.c
8 * ---------------------------------------------------------------------------*/
10 /* --------------------------------------------------------------------------
11 * Sizes of objects it constructs
13 * ------------------------------------------------------------------------*/
15 #define Izh_sizeW CONSTR_sizeW(0,sizeofW(StgInt))
16 #define I64zh_sizeW CONSTR_sizeW(0,sizeofW(StgInt64))
17 #define Wzh_sizeW CONSTR_sizeW(0,sizeofW(StgWord))
18 #define Azh_sizeW CONSTR_sizeW(0,sizeofW(StgAddr))
19 #define Czh_sizeW CONSTR_sizeW(0,sizeofW(StgWord))
20 #define Fzh_sizeW CONSTR_sizeW(0,sizeofW(StgFloat))
21 #define Dzh_sizeW CONSTR_sizeW(0,sizeofW(StgDouble))
22 #define Stablezh_sizeW CONSTR_sizeW(0,sizeofW(StgStablePtr))
23 #define Genericzh_sizeW CONSTR_sizeW(1,0)
25 /* --------------------------------------------------------------------------
27 * ------------------------------------------------------------------------*/
29 extern StgThreadReturnCode enter ( Capability* cap, StgClosurePtr obj );
31 extern nat marshall ( char arg_ty, void* arg );
32 extern nat unmarshall ( char res_ty, void* res );
33 extern nat argSize ( const char* ks );
36 extern StgInt PopTaggedInt ( void ) ;
37 extern StgWord PopTaggedWord ( void ) ;
38 extern StgAddr PopTaggedAddr ( void ) ;
39 extern StgStablePtr PopTaggedStablePtr ( void ) ;
40 extern StgChar PopTaggedChar ( void ) ;
41 extern StgFloat PopTaggedFloat ( void ) ;
42 extern StgDouble PopTaggedDouble ( void ) ;
44 extern void PushTaggedInt ( StgInt );
45 extern void PushTaggedWord ( StgWord );
46 extern void PushTaggedAddr ( StgAddr );
47 extern void PushTaggedStablePtr ( StgStablePtr );
48 extern void PushTaggedChar ( StgChar );
49 extern void PushTaggedFloat ( StgFloat );
50 extern void PushTaggedDouble ( StgDouble );
52 extern void PushPtr ( StgPtr );
53 extern StgPtr PopPtr ( void );