Commit | Line | Data |
---|---|---|
8e9db35f PB |
1 | /* @(#) pf_cglue.h 96/12/18 1.7 */ |
2 | #ifndef _pf_c_glue_h | |
3 | #define _pf_c_glue_h | |
4 | ||
5 | /*************************************************************** | |
6 | ** Include file for PForth 'C' Glue support | |
7 | ** | |
8 | ** Author: Phil Burk | |
9 | ** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom | |
10 | ** | |
11 | ** The pForth software code is dedicated to the public domain, | |
12 | ** and any third party may reproduce, distribute and modify | |
13 | ** the pForth software code or any derivative works thereof | |
14 | ** without any compensation or license. The pForth software | |
15 | ** code is provided on an "as is" basis without any warranty | |
16 | ** of any kind, including, without limitation, the implied | |
17 | ** warranties of merchantability and fitness for a particular | |
18 | ** purpose and their equivalents under the laws of any jurisdiction. | |
19 | ** | |
20 | ***************************************************************/ | |
21 | ||
22 | typedef cell_t (*CFunc0)( void ); | |
23 | typedef cell_t (*CFunc1)( cell_t P1 ); | |
24 | typedef cell_t (*CFunc2)( cell_t P1, cell_t P2 ); | |
25 | typedef cell_t (*CFunc3)( cell_t P1, cell_t P2, cell_t P3 ); | |
26 | typedef cell_t (*CFunc4)( cell_t P1, cell_t P2, cell_t P3, cell_t P4 ); | |
27 | typedef cell_t (*CFunc5)( cell_t P1, cell_t P2, cell_t P3, cell_t P4, cell_t P5 ); | |
28 | ||
29 | #ifdef __cplusplus | |
30 | extern "C" { | |
31 | #endif | |
32 | ||
33 | Err CreateGlueToC( const char *CName, ucell_t Index, cell_t ReturnMode, int32_t NumParams ); | |
34 | Err CompileCustomFunctions( void ); | |
35 | Err LoadCustomFunctionTable( void ); | |
36 | cell_t CallUserFunction( cell_t Index, int32_t ReturnMode, int32_t NumParams ); | |
37 | ||
38 | #ifdef __cplusplus | |
39 | } | |
40 | #endif | |
41 | ||
42 | #define C_RETURNS_VOID (0) | |
43 | #define C_RETURNS_VALUE (1) | |
44 | ||
45 | #endif /* _pf_c_glue_h */ |