This commit is contained in:
retropikzel 2025-05-01 06:03:59 +03:00
parent d4e7f9cf62
commit 30827c3f9a
2 changed files with 20 additions and 3 deletions

View File

@ -223,8 +223,8 @@
;; TODO Docs for all of these ;; TODO Docs for all of these
;c-bytevector->address ;c-bytevector->address
;address->c-bytevector ;address->c-bytevector
;c-bytevector-s8-set! c-bytevector-s8-set!
;c-bytevector-s8-ref c-bytevector-s8-ref
c-bytevector-s16-set! c-bytevector-s16-set!
c-bytevector-s16-ref c-bytevector-s16-ref
c-bytevector-s16-native-set! c-bytevector-s16-native-set!

View File

@ -1,5 +1,10 @@
(require 'std-ffi) (require 'std-ffi)
(require 'ffi-load) (require 'ffi-load)
(require 'foreign-ctools)
(require 'foreign-cenums)
(require 'foreign-stdlib)
(require 'foreign-sugar)
(require 'system-interface)
;; FIXME ;; FIXME
(define size-of-type (define size-of-type
@ -36,9 +41,21 @@
(lambda (headers path . options) (lambda (headers path . options)
(foreign-file path))) (foreign-file path)))
(define c-bytevector-u8-set!
(lambda (c-bytevector k byte)
(syscall syscall:poke-bytes c-bytevector k (c-size-of 'uint8) byte)))
(define c-bytevector-u8-ref (define c-bytevector-u8-ref
(lambda (c-bytevector k) (lambda (c-bytevector k)
(peek-bytes c-bytevector k (c-size-of 'uint8)))) (syscall syscall:peek-bytes c-bytevector k (c-size-of 'uint8))))
(define c-bytevector-pointer-set!
(lambda (c-bytevector k pointer)
(syscall syscall:poke-bytes c-bytevector k (c-size-of 'pointer) pointer)))
(define c-bytevector-pointer-ref
(lambda (c-bytevector k)
(syscall syscall:peek-bytes c-bytevector k (c-size-of 'pointer))))
(define-syntax define-c-procedure (define-syntax define-c-procedure
(syntax-rules () (syntax-rules ()