Fix c-size-of to c-type-size
This commit is contained in:
parent
c487f7a1b1
commit
d1998aca58
|
|
@ -145,22 +145,22 @@
|
|||
cpointer-data-set!
|
||||
;c-bytevector-s8-set!
|
||||
;c-bytevector-s8-set!
|
||||
cpointer-set-int8_t!
|
||||
cpointer-ref-int8_t
|
||||
cpointer-set-uint8_t!
|
||||
cpointer-ref-uint8_t
|
||||
cpointer-set-int16_t!
|
||||
cpointer-ref-int16_t
|
||||
cpointer-set-uint16_t!
|
||||
cpointer-ref-uint16_t
|
||||
cpointer-set-int32_t!
|
||||
cpointer-ref-int32_t
|
||||
cpointer-set-uint32_t!
|
||||
cpointer-ref-uint32_t
|
||||
cpointer-set-int64_t!
|
||||
cpointer-ref-int64_t
|
||||
cpointer-set-uint64_t!
|
||||
cpointer-ref-uint64_t
|
||||
cpointer-set-int8!
|
||||
cpointer-ref-int8
|
||||
cpointer-set-uint8!
|
||||
cpointer-ref-uint8
|
||||
cpointer-set-int16!
|
||||
cpointer-ref-int16
|
||||
cpointer-set-uint16!
|
||||
cpointer-ref-uint16
|
||||
cpointer-set-int32!
|
||||
cpointer-ref-int32
|
||||
cpointer-set-uint32!
|
||||
cpointer-ref-uint32
|
||||
cpointer-set-int64!
|
||||
cpointer-ref-int64
|
||||
cpointer-set-uint64!
|
||||
cpointer-ref-uint64
|
||||
cpointer-set-char!
|
||||
cpointer-ref-char
|
||||
cpointer-set-short!
|
||||
|
|
|
|||
|
|
@ -36,12 +36,12 @@
|
|||
((equal? type 'uint64) (c-bytevector-u64-ref pointer offset))
|
||||
((equal? type 'char) (integer->char (c-bytevector-s8-ref pointer offset)))
|
||||
((equal? type 'unsigned-char) (integer->char (c-bytevector-u8-ref pointer offset)))
|
||||
((equal? type 'short) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'short)))
|
||||
((equal? type 'unsigned-short) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'unsigned-short)))
|
||||
((equal? type 'int) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'int)))
|
||||
((equal? type 'unsigned-int) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'unsigned-int)))
|
||||
((equal? type 'long) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'long)))
|
||||
((equal? type 'unsigned-long) (c-bytevector-sint-ref pointer offset (native-endianness) (c-size-of 'unsigned-long)))
|
||||
((equal? type 'short) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'short)))
|
||||
((equal? type 'unsigned-short) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'unsigned-short)))
|
||||
((equal? type 'int) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'int)))
|
||||
((equal? type 'unsigned-int) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'unsigned-int)))
|
||||
((equal? type 'long) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'long)))
|
||||
((equal? type 'unsigned-long) (c-bytevector-sint-ref pointer offset (native-endianness) (c-type-size 'unsigned-long)))
|
||||
((equal? type 'float) (c-bytevector-ieee-single-native-ref pointer offset))
|
||||
((equal? type 'double) (c-bytevector-ieee-double-native-ref pointer offset))
|
||||
((equal? type 'pointer) (c-bytevector-pointer-ref pointer offset))
|
||||
|
|
|
|||
|
|
@ -100,21 +100,21 @@
|
|||
0
|
||||
(c-bytevector->address pointer)
|
||||
(native-endianness)
|
||||
(c-size-of 'pointer))))
|
||||
(c-type-size 'pointer))))
|
||||
|
||||
#;(define c-bytevector-pointer-ref
|
||||
(lambda (c-bytevector k)
|
||||
(address->c-bytevector (c-bytevector-uint-ref c-bytevector
|
||||
0
|
||||
(native-endianness)
|
||||
(c-size-of 'pointer)))))
|
||||
(c-type-size 'pointer)))))
|
||||
|
||||
(cond-expand
|
||||
;(kawa #t) ; Defined in kawa.scm
|
||||
(else (define-syntax call-with-address-of
|
||||
(syntax-rules ()
|
||||
((_ input-pointer thunk)
|
||||
(let ((address-pointer (make-c-bytevector (c-size-of 'pointer))))
|
||||
(let ((address-pointer (make-c-bytevector (c-type-size 'pointer))))
|
||||
(c-bytevector-pointer-set! address-pointer 0 input-pointer)
|
||||
(let ((result (apply thunk (list address-pointer))))
|
||||
(set! input-pointer (c-bytevector-pointer-ref address-pointer 0))
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@
|
|||
(type->libffi-type-number return-type)
|
||||
(map type->libffi-type-number argument-types)
|
||||
c-function
|
||||
(c-size-of return-type)
|
||||
(c-type-size return-type)
|
||||
arguments)))
|
||||
(c-bytevector-get return-pointer return-type 0))))))
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
(c-system-include "stdio.h")
|
||||
(c-system-include "ffi.h")
|
||||
|
||||
;; c-size-of
|
||||
;; c-type-size
|
||||
(c-declare "
|
||||
int size_of_int8_t() { return sizeof(int8_t); }
|
||||
int size_of_uint8_t() { return sizeof(uint8_t); }
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@
|
|||
#;(define-syntax call-with-address-of-c-bytevector
|
||||
(syntax-rules ()
|
||||
((_ input-pointer thunk)
|
||||
(let ((address-pointer (make-c-bytevector (c-size-of 'pointer))))
|
||||
(let ((address-pointer (make-c-bytevector (c-type-size 'pointer))))
|
||||
(pointer-set! address-pointer 'pointer 0 input-pointer)
|
||||
(apply thunk (list address-pointer))
|
||||
(set! input-pointer (pointer-get address-pointer 'pointer 0))
|
||||
|
|
|
|||
|
|
@ -43,19 +43,19 @@
|
|||
|
||||
(define c-bytevector-u8-set!
|
||||
(lambda (c-bytevector k byte)
|
||||
(syscall syscall:poke-bytes c-bytevector k (c-size-of 'uint8) byte)))
|
||||
(syscall syscall:poke-bytes c-bytevector k (c-type-size 'uint8) byte)))
|
||||
|
||||
(define c-bytevector-u8-ref
|
||||
(lambda (c-bytevector k)
|
||||
(syscall syscall:peek-bytes c-bytevector k (c-size-of 'uint8))))
|
||||
(syscall syscall:peek-bytes c-bytevector k (c-type-size 'uint8))))
|
||||
|
||||
(define c-bytevector-pointer-set!
|
||||
(lambda (c-bytevector k pointer)
|
||||
(syscall syscall:poke-bytes c-bytevector k (c-size-of 'pointer) pointer)))
|
||||
(syscall syscall:poke-bytes c-bytevector k (c-type-size 'pointer) pointer)))
|
||||
|
||||
(define c-bytevector-pointer-ref
|
||||
(lambda (c-bytevector k)
|
||||
(syscall syscall:peek-bytes c-bytevector k (c-size-of 'pointer))))
|
||||
(syscall syscall:peek-bytes c-bytevector k (c-type-size 'pointer))))
|
||||
|
||||
(define-syntax define-c-procedure
|
||||
(syntax-rules ()
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
#;(define-syntax call-with-address-of-c-bytevector
|
||||
(syntax-rules ()
|
||||
((_ input-pointer thunk)
|
||||
(let ((address-pointer (make-c-bytevector (c-size-of 'pointer))))
|
||||
(let ((address-pointer (make-c-bytevector (c-type-size 'pointer))))
|
||||
(c-bytevector-pointer-set! address-pointer 0 input-pointer)
|
||||
(apply thunk (list address-pointer))
|
||||
(set! input-pointer (c-bytevector-pointer-ref address-pointer 0))
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@
|
|||
((equal? type 'double) 8)
|
||||
((equal? type 'pointer) 8))))
|
||||
|
||||
(define c-bytevector-u8-set! cpointer-set-uint8_t!)
|
||||
(define c-bytevector-u8-ref cpointer-ref-uint8_t)
|
||||
(define c-bytevector-u8-set! cpointer-set-uint8!)
|
||||
(define c-bytevector-u8-ref cpointer-ref-uint8)
|
||||
(define c-bytevector-pointer-set! cpointer-set-pointer!)
|
||||
(define c-bytevector-pointer-ref cpointer-ref-pointer)
|
||||
|
||||
|
|
|
|||
|
|
@ -31,27 +31,27 @@
|
|||
(define c-bytevector-u8-set!
|
||||
(lambda (c-bytevector k byte)
|
||||
(bytevector-c-int8-set! (make-bytevector-mapping (+ c-bytevector k)
|
||||
(c-size-of 'uint8))
|
||||
(c-type-size 'uint8))
|
||||
0
|
||||
byte)))
|
||||
|
||||
(define c-bytevector-u8-ref
|
||||
(lambda (c-bytevector k)
|
||||
(bytevector-c-int8-ref (make-bytevector-mapping (+ c-bytevector k)
|
||||
(c-size-of 'uint8))
|
||||
(c-type-size 'uint8))
|
||||
0)))
|
||||
(define c-bytevector-pointer-set!
|
||||
(lambda (c-bytevector k pointer)
|
||||
(let ((bv (make-bytevector-mapping (+ c-bytevector k) (c-size-of 'pointer))))
|
||||
(let ((bv (make-bytevector-mapping (+ c-bytevector k) (c-type-size 'pointer))))
|
||||
(bytevector-c-void*-set! bv 0 pointer))))
|
||||
(define c-bytevector-pointer-ref
|
||||
(lambda (c-bytevector k)
|
||||
(let ((bv (make-bytevector-mapping (+ c-bytevector k) (c-size-of 'pointer))))
|
||||
(let ((bv (make-bytevector-mapping (+ c-bytevector k) (c-type-size 'pointer))))
|
||||
(bytevector-c-void*-ref bv 0))))
|
||||
|
||||
#;(define pointer-set!
|
||||
(lambda (pointer type offset value)
|
||||
(let ((bv (make-bytevector-mapping (+ pointer offset) (c-size-of type))))
|
||||
(let ((bv (make-bytevector-mapping (+ pointer offset) (c-type-size type))))
|
||||
(cond ((equal? type 'int8) (bytevector-c-int8-set! bv 0 value))
|
||||
((equal? type 'uint8) (bytevector-c-int8-set! bv 0 value))
|
||||
((equal? type 'int16) (bytevector-c-int16-set! bv 0 value))
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
|
||||
#;(define pointer-get
|
||||
(lambda (pointer type offset)
|
||||
(let ((bv (make-bytevector-mapping (+ pointer offset) (c-size-of type))))
|
||||
(let ((bv (make-bytevector-mapping (+ pointer offset) (c-type-size type))))
|
||||
(cond ((equal? type 'int8) (bytevector-c-int8-ref bv 0))
|
||||
((equal? type 'uint8) (bytevector-c-uint8-ref bv 0))
|
||||
((equal? type 'int16) (bytevector-c-int16-ref bv 0))
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
'int
|
||||
'(pointer pointer))
|
||||
|
||||
(define input-pointer (make-c-bytevector (c-size-of 'int)))
|
||||
(define input-pointer (make-c-bytevector (c-type-size 'int)))
|
||||
(c-bytevector-s32-native-set! input-pointer 0 100)
|
||||
(assert equal? (= (c-bytevector-s32-native-ref input-pointer 0) 100) #t)
|
||||
(debug (c-bytevector-s32-native-ref input-pointer 0))
|
||||
|
|
|
|||
Loading…
Reference in New Issue