18 lines
493 B
Racket
18 lines
493 B
Racket
#lang racket
|
|
|
|
(require ffi/unsafe)
|
|
|
|
(define xlib (ffi-lib "./x.so"))
|
|
|
|
(set-ffi-obj! "Query" xlib (_fun _pointer _pointer -> _bool)
|
|
(λ(bs len)
|
|
(define out #"Here I am")
|
|
(let ([bs (make-sized-byte-string bs (ptr-ref len _int))])
|
|
(and ((bytes-length out) . <= . (bytes-length bs))
|
|
(begin (bytes-copy! bs 0 out)
|
|
(ptr-set! len _int (bytes-length out))
|
|
#t)))))
|
|
|
|
((get-ffi-obj "main" xlib (_fun _int (_list i _bytes) -> _void))
|
|
0 '())
|