mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 09:17:35 +02:00
Load constants
This commit is contained in:
parent
07b4d1e025
commit
1a6ee481ac
1 changed files with 28 additions and 28 deletions
56
srfi/106.sld
56
srfi/106.sld
|
@ -25,39 +25,39 @@
|
||||||
*shut-rd* *shut-wr* *shut-rdwr*
|
*shut-rd* *shut-wr* *shut-rdwr*
|
||||||
)
|
)
|
||||||
(begin
|
(begin
|
||||||
(define-syntax load-const
|
(define-syntax make-const
|
||||||
(er-macro-transformer
|
(er-macro-transformer
|
||||||
(lambda (expr rename compare)
|
(lambda (expr rename compare)
|
||||||
;; TODO: load const and function name from expr
|
(let* ((base-str (symbol->string (cadr expr)))
|
||||||
`(define-c %shut-wr%
|
(fsym (string->symbol (string-append "%" base-str "%")))
|
||||||
"(void *data, int argc, closure _, object k)"
|
(vsym (string->symbol (string-append "*" base-str "*")))
|
||||||
"return_closcall1(data, k, obj_int2obj(SHUT_WR)); "))))
|
(const-str (caddr expr)))
|
||||||
(load-const %shut-wr% "SHUT_WR")
|
`(begin
|
||||||
;; TODO: create a macro to streamline this!!
|
(define ,vsym (,fsym))
|
||||||
(define-c %shut-rd%
|
(define-c ,fsym
|
||||||
"(void *data, int argc, closure _, object k)"
|
"(void *data, int argc, closure _, object k)"
|
||||||
"return_closcall1(data, k, obj_int2obj(SHUT_RD)); ")
|
,(string-append
|
||||||
|
"return_closcall1(data, k, obj_int2obj(" const-str ")); ")))))))
|
||||||
|
|
||||||
|
(make-const af-unspec "AF_UNSPEC" )
|
||||||
|
(make-const af-inet "AF_INET" )
|
||||||
|
(make-const af-inet6 "AF_INET6" )
|
||||||
|
(make-const sock-stream "SOCK_STREAM" )
|
||||||
|
(make-const sock-dgram "SOCK_DGRAM" )
|
||||||
|
(make-const ai-canonname "AI_CANONNAME" )
|
||||||
|
(make-const ai-numerichost "AI_NUMERICHOST")
|
||||||
|
(make-const ai-v4mapped "AI_V4MAPPED" )
|
||||||
|
(make-const ai-all "AI_ALL" )
|
||||||
|
(make-const ai-addrconfig "AI_ADDRCONFIG" )
|
||||||
|
(make-const msg-peek "MSG_PEEK" )
|
||||||
|
(make-const msg-oob "MSG_OOB" )
|
||||||
|
(make-const msg-waitall "MSG_WAITALL" )
|
||||||
|
(make-const shut-rd "SHUT_RD" )
|
||||||
|
(make-const shut-wr "SHUT_WR" )
|
||||||
|
(make-const shut-rdwr "SHUT_RDWR" )
|
||||||
|
|
||||||
(define *shut-rd* (%shut-rd%))
|
|
||||||
(define *ipproto-ip* 0)
|
(define *ipproto-ip* 0)
|
||||||
(define *ipproto-tcp* 6)
|
(define *ipproto-tcp* 6)
|
||||||
(define *ipproto-udp* 17)
|
(define *ipproto-udp* 17)
|
||||||
; really want to define-C these, but just to specify a constant and not a whole function
|
|
||||||
; TODO: (rename (AF_UNSPEC *af-unspec*)
|
|
||||||
; TODO: (AF_INET *af-inet*)
|
|
||||||
; TODO: (AF_INET6 *af-inet6*))
|
|
||||||
; TODO: (rename (SOCK_STREAM *sock-stream*)
|
|
||||||
; TODO: (SOCK_DGRAM *sock-dgram*))
|
|
||||||
; TODO: (rename (AI_CANONNAME *ai-canonname*)
|
|
||||||
; TODO: (AI_NUMERICHOST *ai-numerichost*)
|
|
||||||
; TODO: (AI_V4MAPPED *ai-v4mapped*)
|
|
||||||
; TODO: (AI_ALL *ai-all*)
|
|
||||||
; TODO: (AI_ADDRCONFIG *ai-addrconfig*))
|
|
||||||
; TODO: (rename (MSG_PEEK *msg-peek*)
|
|
||||||
; TODO: (MSG_OOB *msg-oob*)
|
|
||||||
; TODO: (MSG_WAITALL *msg-waitall*))
|
|
||||||
; TODO: (rename (SHUT_RD *shut-rd*)
|
|
||||||
; TODO: (SHUT_WR *shut-wr*)
|
|
||||||
; TODO: (SHUT_RDWR *shut-rdwr*)))
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue