(define-library (retropikzel pffi) (cond-expand (chibi (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (chibi ast) (chibi)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback scheme-procedure-to-pointer ) (include-shared "pffi/pffi-chibi")) (chicken-5 (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (chicken foreign) (chicken locative) (chicken syntax) (chicken memory) (chicken random)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (chicken6 (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (chicken foreign) (chicken locative) (chicken syntax) (chicken memory) (chicken random)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (cyclone (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (cyclone foreign) (scheme cyclone primitives)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define ;pffi-define-callback )) (gambit (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (only (gambit) c-declare c-lambda c-define)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (gauche (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (gauche base) (retropikzel pffi gauche)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer? pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (gerbil (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context)) (export pffi-init ;pffi-size-of pffi-type? ;pffi-align-of ;pffi-shared-object-auto-load ;pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (guile (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (rnrs bytevectors) (system foreign) (system foreign-library)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (kawa (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback )) (larceny (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (rename (primitives r5rs:require) (r5rs:require require)) (primitives std-ffi) (primitives foreign-procedure) (primitives foreign-file) (primitives foreign-stdlib) ) (export pffi-init ;pffi-size-of pffi-type? ;pffi-align-of ;pffi-shared-object-auto-load ;pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (mosh (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (mosh ffi)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (racket (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (only (racket base) system-type) (ffi winapi) (compatibility mlist) (ffi unsafe) (ffi vector)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (sagittarius (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (sagittarius ffi) (sagittarius)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer-address pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get pffi-string->pointer pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! pffi-define pffi-define-callback)) (skint (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context)) (export pffi-init ;pffi-size-of pffi-type? ;pffi-align-of ;pffi-shared-object-auto-load ;pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (stklos (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context) (stklos)) (export pffi-init pffi-size-of pffi-type? pffi-align-of pffi-shared-object-auto-load pffi-shared-object-load pffi-pointer-null pffi-pointer-null? pffi-pointer-allocate pffi-pointer? pffi-pointer-free pffi-pointer-set! pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (tr7 (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context)) (export pffi-init ;pffi-size-of pffi-type? ;pffi-align-of ;pffi-shared-object-auto-load ;pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (ypsilon (import (scheme base) (scheme write) (scheme char) (scheme file) (scheme process-context)) (export ;pffi-init ;pffi-size-of pffi-type? ;pffi-align-of ;pffi-shared-object-auto-load ;pffi-shared-object-load ;pffi-pointer-null ;pffi-pointer-null? ;pffi-pointer-allocate ;pffi-pointer? ;pffi-pointer-free ;pffi-pointer-set! ;pffi-pointer-get ;pffi-string->pointer ;pffi-pointer->string pffi-struct-make pffi-struct-pointer pffi-struct-offset-get pffi-struct-get pffi-struct-set! ;pffi-define ;pffi-define-callback )) (else (error "Unsupported implementation"))) (cond-expand (chibi (include "pffi/chibi.scm")) (chicken-5 (include "pffi/chicken5.scm")) (chicken-6 (include "chicken6.scm")) (cyclone (include "pffi/cyclone.scm")) (gambit (include "pffi/gambit.scm")) (gauche (include "pffi/gauche.scm")) (gerbil (include "pffi/gerbil.scm")) (guile (include "pffi/guile.scm")) (kawa (include "pffi/kawa.scm")) (larceny (include "pffi/larceny.scm")) (mosh (include "pffi/mosh.scm")) (racket (include "pffi/racket.scm")) (sagittarius (include "pffi/sagittarius.scm")) (skint (include "pffi/skint.scm")) (stklos (include "pffi/stklos.scm")) (tr7 (include "pffi/tr7.scm")) (ypsilon (include "pffi/ypsilon.scm"))) (include "pffi/shared/struct.scm") (include "pffi/shared/union.scm") (include "pffi/shared/main.scm"))