mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-07-05 12:16:37 +02:00
genstubs fixes
This commit is contained in:
parent
e3f4d51ef7
commit
28b8f8251b
3 changed files with 16 additions and 14 deletions
|
@ -79,7 +79,7 @@
|
|||
(define-c errno (delete-directory "rmdir") (string))
|
||||
|
||||
(define-c (free DIR) opendir (string))
|
||||
(define-c dirent readdir ((link DIR)))
|
||||
(define-c dirent readdir ((link (pointer DIR))))
|
||||
|
||||
(define-c int (duplicate-file-descriptor "dup") (int))
|
||||
(define-c errno (duplicate-file-descriptor-to "dup2") (int int))
|
||||
|
|
|
@ -44,20 +44,20 @@
|
|||
(define-c sexp (set-signal-action! "sexp_set_signal_action")
|
||||
((value ctx sexp) (value self sexp) sexp sexp))
|
||||
|
||||
(define-c errno (make-signal-set "sigemptyset") ((result sigset_t)))
|
||||
(define-c errno (signal-set-fill! "sigfillset") (sigset_t))
|
||||
(define-c errno (signal-set-add! "sigaddset") (sigset_t int))
|
||||
(define-c errno (signal-set-delete! "sigaddset") (sigset_t int))
|
||||
(define-c boolean (signal-set-contains? "sigismember") (sigset_t int))
|
||||
(define-c errno (make-signal-set "sigemptyset") ((pointer result sigset_t)))
|
||||
(define-c errno (signal-set-fill! "sigfillset") ((pointer sigset_t)))
|
||||
(define-c errno (signal-set-add! "sigaddset") ((pointer sigset_t) int))
|
||||
(define-c errno (signal-set-delete! "sigaddset") ((pointer sigset_t) int))
|
||||
(define-c boolean (signal-set-contains? "sigismember") ((pointer sigset_t) int))
|
||||
|
||||
(define-c errno (signal-mask-block! "sigprocmask")
|
||||
((value SIG_BLOCK int) sigset_t (value NULL sigset_t)))
|
||||
((value SIG_BLOCK int) (pointer sigset_t) (pointer value NULL sigset_t)))
|
||||
(define-c errno (signal-mask-unblock! "sigprocmask")
|
||||
((value SIG_UNBLOCK int) sigset_t (value NULL sigset_t)))
|
||||
((value SIG_UNBLOCK int) (pointer sigset_t) (pointer value NULL sigset_t)))
|
||||
(define-c errno (signal-mask-set! "sigprocmask")
|
||||
((value SIG_SETMASK int) sigset_t (value NULL sigset_t)))
|
||||
((value SIG_SETMASK int) (pointer sigset_t) (pointer value NULL sigset_t)))
|
||||
(define-c errno (current-signal-mask "sigprocmask")
|
||||
((value SIG_BLOCK int) (value NULL sigset_t) (result sigset_t)))
|
||||
((value SIG_BLOCK int) (pointer value NULL sigset_t) (pointer result sigset_t)))
|
||||
|
||||
(define-c unsigned-int alarm (unsigned-int))
|
||||
(define-c unsigned-int sleep (unsigned-int))
|
||||
|
|
|
@ -719,7 +719,7 @@
|
|||
(lambda (x)
|
||||
(let ((len (get-array-length func x)))
|
||||
(cat " " (type-c-name (type-base x)) " ")
|
||||
(if (and (type-array x) (not (number? len)))
|
||||
(if (or (and (type-array x) (not (number? len))) (type-pointer? x))
|
||||
(cat "*"))
|
||||
(cat (if (type-auto-expand? x) "buf" "tmp") (type-index-string x))
|
||||
(if (number? len)
|
||||
|
@ -730,7 +730,9 @@
|
|||
(if (type-auto-expand? x)
|
||||
(cat " " (type-c-name (type-base x))
|
||||
" *tmp" (type-index-string x) ";\n"))))
|
||||
(append (if (type-array ret-type) (list ret-type) '())
|
||||
(append (if (or (type-array ret-type) (type-pointer? ret-type))
|
||||
(list ret-type)
|
||||
'())
|
||||
results
|
||||
(remove type-result? (filter type-array scheme-args))))
|
||||
(for-each
|
||||
|
@ -788,7 +790,7 @@
|
|||
(if (not (number? (type-array a)))
|
||||
(cat " tmp" (type-index a) "[i] = NULL;\n")))
|
||||
((and (type-result? a) (not (basic-type? a))
|
||||
(not (type-free? a)) (not (type-pointer? a))
|
||||
(not (type-free? a)) ;;(not (type-pointer? a))
|
||||
(not (type-auto-expand? a))
|
||||
(or (not (type-array a))
|
||||
(not (integer? len))))
|
||||
|
@ -820,7 +822,7 @@
|
|||
=> (lambda (y) (cat "len" (type-index y))))
|
||||
(else (write x)))))
|
||||
((or (type-result? arg) (type-array arg))
|
||||
(cat (if (or (type-pointer? arg) (type-free? arg) (basic-type? arg))
|
||||
(cat (if (or (type-free? arg) (basic-type? arg)) ;; (type-pointer? arg)
|
||||
"&"
|
||||
"")
|
||||
"tmp" (type-index arg)))
|
||||
|
|
Loading…
Add table
Reference in a new issue