[gforth] / gforth / libcc.fs  

gforth: gforth/libcc.fs

Diff for /gforth/libcc.fs between version 1.12 and 1.13

version 1.12, Wed Apr 25 22:11:29 2007 UTC version 1.13, Mon May 28 09:43:34 2007 UTC
Line 333 
Line 333 
 : gen-wrapper-function ( addr -- )  : gen-wrapper-function ( addr -- )
     \ addr points to the return type index of a c-function descriptor      \ addr points to the return type index of a c-function descriptor
     dup { descriptor }      dup { descriptor }
     c@+ { ret } count 2dup { d: pars } chars + count { d: c-name }      count { ret } count 2dup { d: pars } chars + count { d: c-name }
     ." void " descriptor wrapper-function-name 2dup type drop free throw      ." void " descriptor wrapper-function-name 2dup type drop free throw
     .\" (void)\n"      .\" (void)\n"
     .\" {\n  Cell MAYBE_UNUSED *sp = gforth_SP;\n  Float MAYBE_UNUSED *fp = gforth_FP;\n  "      .\" {\n  Cell MAYBE_UNUSED *sp = gforth_SP;\n  Float MAYBE_UNUSED *fp = gforth_FP;\n  "
Line 413 
Line 413 
     create parse-name open-lib dup 0= err-nolib and throw ,      create parse-name open-lib dup 0= err-nolib and throw ,
   does> ( -- lib )    does> ( -- lib )
     @ ;      @ ;
   
 \ test  
   
 \ test all parameter and return types  
   
 \ cr .( #include "engine/libcc.h")  
 \ cr .( #include <unistd.h>)  
 \ cr ." typedef void (* func)(int);  
 \ cr ." int test1(int,char*,long,double,void (*)(int));"  
 \ cr ." Cell *test2(void);"  
 \ cr ." int test3(void);"  
 \ cr ." float test4(void);"  
 \ cr ." func test5(void);"  
 \ cr ." void test6(void);"  
 \ cr  
   
 \ c-function dlseek lseek n d n -- d  
 \ c-function n test1 n a d r func -- n  
 \ c-function a test2 -- a  
 \ c-function d test3 -- d  
 \ c-function r test4 -- r  
 \ c-function func test5 -- func  
 \ c-function void test6 -- void  
   
 \c #include <string.h>  
 \c #include <stdlib.h>  
   
 c-function strlen strlen a -- n  
 c-function labs labs n -- n  
   
 cr s\" fooo\0" 2dup dump drop .s strlen cr .s drop cr  
 -5 labs .s drop cr  


Generate output suitable for use with a patch program
Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help