50 lines
1.7 KiB
Scheme
50 lines
1.7 KiB
Scheme
(define _ref_int
|
|
(foreign-function "_ref_int" (unsigned-32 integer-32) integer-32))
|
|
|
|
(define _set_int
|
|
(foreign-function "_set_int" (unsigned-32 integer-32 integer-32) void))
|
|
|
|
(define _ref_uint
|
|
(foreign-function "_ref_uint" (unsigned-32 integer-32) integer-32))
|
|
|
|
(define _set_uint
|
|
(foreign-function "_set_uint" (unsigned-32 integer-32 unsigned-32) void))
|
|
|
|
(define _ref_char
|
|
(foreign-function "_ref_char" (unsigned-32 integer-32) char))
|
|
|
|
(define _set_char
|
|
(foreign-function "_set_char" (unsigned-32 integer-32 char) void))
|
|
|
|
(define _ref_double
|
|
(foreign-function "_ref_double" (unsigned-32 integer-32) double-float))
|
|
|
|
(define _set_double
|
|
(foreign-function "_set_double" (unsigned-32 integer-32 double-float) void))
|
|
|
|
(define _ref_float
|
|
(foreign-function "_ref_float" (unsigned-32 integer-32) single-float))
|
|
|
|
(define _set_float
|
|
(foreign-function "_set_float" (unsigned-32 integer-32 single-float) void))
|
|
|
|
(define _memcpy
|
|
(let ((memcpy-*-*
|
|
(foreign-function "memcpy" (unsigned-32 unsigned-32 unsigned-32) void))
|
|
(memcpy-string-string
|
|
(foreign-function "memcpy" (string string unsigned-32) void))
|
|
(memcpy-string-*
|
|
(foreign-function "memcpy" (string unsigned-32 unsigned-32) void))
|
|
(memcpy-*-string
|
|
(foreign-function "memcpy" (unsigned-32 string unsigned-32) void)))
|
|
(lambda (a b count)
|
|
(cond ((string? a)
|
|
(cond ((string? b) (memcpy-string-string a b count))
|
|
((integer? b) (memcpy-string-* a b count))
|
|
(else ???)))
|
|
((integer? a)
|
|
(cond ((string? b) (memcpy-*-string a b count))
|
|
((integer? b) (memcpy-*-* a b count))
|
|
(else ???)))
|
|
(else ???)))))
|