Add pffi-pointer-address shims for some implementations

This commit is contained in:
retropikzel 2024-10-13 19:04:03 +03:00
parent fe373d0fb7
commit 93962b3403
6 changed files with 19 additions and 20 deletions

View File

@ -146,6 +146,11 @@
(lambda (size)
(allocate size)))
(define pffi-pointer-address
(lambda (pointer)
;; TODO
pointer))
(define pffi-pointer-null
(lambda ()
(address->pointer 0)))

View File

@ -375,7 +375,3 @@
((equal? type 'double) (pffi-pointer-double-get pointer offset))
((equal? type 'pointer) (pffi-pointer-pointer-get pointer offset))
)))
(define pffi-pointer-cast->struct
(lambda (struct-name pointer)
pointer))

View File

@ -52,6 +52,11 @@
(lambda (size)
(bytevector->pointer (make-bytevector size 0))))
(define pffi-pointer-address
(lambda (pointer)
;; TODO
pointer))
(define pffi-pointer-null
(lambda ()
(make-pointer 0)))
@ -122,7 +127,3 @@
((equal? type 'double) (bytevector-ieee-double-ref p offset (native-endianness)))
((equal? type 'pointer) (make-pointer (bytevector-sint-ref p offset (native-endianness) (pffi-size-of type))))
((equal? type 'string) (pffi-pointer->string (make-pointer (bytevector-sint-ref p offset (native-endianness) (pffi-size-of type)))))))))
(define pffi-pointer-cast->struct
(lambda (struct-name pointer)
pointer))

View File

@ -133,6 +133,11 @@
(lambda (size)
(invoke (invoke arena 'allocate size 1) 'reinterpret (static-field java.lang.Integer 'MAX_VALUE))))
(define pffi-pointer-address
(lambda (pointer)
;; TODO
pointer))
(define pffi-pointer-null
(lambda ()
(static-field java.lang.foreign.MemorySegment 'NULL)))
@ -191,7 +196,3 @@
(define pffi-pointer-deref
(lambda (pointer)
(invoke pointer 'get (invoke (static-field java.lang.foreign.ValueLayout 'ADDRESS) 'withByteAlignment 1) 0)))
(define pffi-pointer-cast->struct
(lambda (struct-name pointer)
pointer))

View File

@ -52,6 +52,10 @@
(lambda (size)
(malloc 'raw size)))
(define pffi-pointer-address
(lambda (pointer)
pointer))
(define pffi-pointer-null
(lambda ()
#f )) ; #f is the null pointer on racket
@ -100,7 +104,3 @@
(if (equal? type 'char)
(integer->char r)
r))))
(define pffi-pointer-cast->struct
(lambda (struct-name pointer)
pointer))

View File

@ -155,7 +155,3 @@
((equal? type 'double) (pointer-ref-c-double pointer offset))
((equal? type 'void) (pointer-ref-c-pointer pointer offset))
((equal? type 'pointer) (pointer-ref-c-pointer pointer offset)))))
(define pffi-pointer-cast->struct
(lambda (struct-name pointer)
pointer))