Skip to content

Instantly share code, notes, and snippets.

@joeltg
Last active March 3, 2019 19:47
Show Gist options
  • Save joeltg/3f1c0617e3e616f0b46598f489284896 to your computer and use it in GitHub Desktop.
Save joeltg/3f1c0617e3e616f0b46598f489284896 to your computer and use it in GitHub Desktop.
ZeroMQ MIT Scheme bindings
AUXDIR=/usr/local/lib/mit-scheme-x86-64
all: build
install:
install -m 644 zmq-types.bin $(AUXDIR)
install -m 644 zmq-const.scm $(AUXDIR)
install -m 644 zmq-shim.so $(AUXDIR)
clean:
rm zmq-const* zmq-types* zmq-shim*
build: zmq-shim.so zmq-types.bin zmq-const.bin
zmq-shim.so: zmq-shim.o
$(CC) -shared -fPIC -o $@ $^ `pkg-config --libs libzmq` -undefined dynamic_lookup
zmq-shim.o: zmq-shim.c
$(CC) -I$(AUXDIR) -Wall -fPIC `pkg-config --cflags libzmq` -o $@ -c $<
zmq-shim.c zmq-const.c zmq-types.bin: zmq.cdecl
echo '(generate-shim "zmq" "#include <zmq.h>")' | mit-scheme --batch-mode
zmq-const.bin: zmq-const.scm
echo '(sf "zmq-const")' | mit-scheme --batch-mode
zmq-const.scm: zmq-const
./zmq-const
zmq-const: zmq-const.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) `pkg-config --libs libzmq`
zmq-const.o: zmq-const.c
$(CC) `pkg-config --cflags libzmq` $(CFLAGS) -o $@ -c $<
(typedef size_t uint)
(extern int
zmq_atomic_counter_dec
(counter (* void)))
(extern void
zmq_atomic_counter_destroy
(counter_p (* (* void))))
(extern int zmq_atomic_counter_inc
(counter (* void)))
(extern (* void)
zmq_atomic_counter_new)
(extern void
zmq_atomic_counter_set
(counter (* void))
(value int))
(extern int
zmq_atomic_counter_value
(counter (* void)))
(extern int
zmq_bind
(socket (* void))
(endpoint (* (const char))))
(extern int
zmq_close
(socket (* void)))
(extern int
zmq_connect
(socket (* void))
(endpoint (* (const char))))
(extern int
zmq_ctx_destroy
(context (* void)))
(extern int
zmq_ctx_get
(context (* void))
(option_name int))
(extern (* void)
zmq_ctx_new)
(extern int
zmq_ctx_set
(context (* void))
(option_name int)
(option_value int))
(extern int
zmq_ctx_shutdown
(context (* void)))
(extern int
zmq_ctx_term
(context (* void)))
(extern int
zmq_curve_public
(z85_public_key (* char))
(z85_secret_key (* char)))
(extern int
zmq_curve_keypair
(z85_public_key (* char))
(z85_secret_key (* char)))
(extern int
zmq_disconnect
(socket (* void))
(endpoint (* (const char))))
(extern int
zmq_errno)
(extern int
zmq_getsockopt
(socket (* void))
(option_name int)
(option_value (* void))
(option_len (* size_t)))
(extern int
zmq_has
(capability (* (const char))))
(extern (* void)
zmq_init
(io_threads int))
(extern int
zmq_msg_close
(msg (* zmq_msg_t)))
(extern int
zmq_msg_copy
(dest (* zmq_msg_t))
(src (* zmq_msg_t)))
(extern (* void)
zmq_msg_data
(msg (* zmq_msg_t)))
(extern (* (const char))
zmq_msg_gets
(msg (* zmq_msg_t))
(property (* (const char))))
(extern int
zmq_msg_get
(msg (* zmq_msg_t))
(property int))
(callback void
zmq_free_fn
(data (* void))
(ID (* void)))
(extern int
zmq_msg_init_data
(msg (* zmq_msg_t))
(data (* void))
(size size_t)
(ffn (* zmq_free_fn))
(ID (* void)))
(extern int
zmq_msg_init_size
(msg (* zmq_msg_t))
(size size_t))
(extern int
zmq_msg_init
(msg (* zmq_msg_t)))
(extern int
zmq_msg_more
(msg (* zmq_msg_t)))
(extern int
zmq_msg_move
(dest (* zmq_msg_t))
(src (* zmq_msg_t)))
(extern int
zmq_msg_recv
(msg (* zmq_msg_t))
(socket (* void))
(flags int))
(extern int
zmq_msg_send
(msg (* zmq_msg_t))
(socket (* void))
(flags int))
(extern int
zmq_msg_set
(msg (* zmq_msg_t))
(property int)
(value int))
(extern size_t
zmq_msg_size
(msg (* zmq_msg_t)))
(extern int
zmq_poll
(items (* zmq_pollitem_t))
(nitems int)
(timeout long))
(extern int
zmq_proxy_steerable
(frontend (* void))
(backend (* void))
(capture (* void))
(control (* void)))
(extern int
zmq_proxy
(frontend (* void))
(backend (* void))
(capture (* void)))
(extern int
zmq_recv
(socket (* void))
(buf (* void))
(len size_t)
(flags int))
(extern int
zmq_send_const
(socket (* void))
(buf (* void))
(len size_t)
(flags int))
(extern int
zmq_send
(socket (* void))
(buf (* void))
(len size_t)
(flags int))
(extern int
zmq_setsockopt
(socket (* void))
(option_name int)
(option_value (* void))
(option_len size_t))
(extern int
zmq_socket_monitor
(socket (* void))
(endpoint (* char))
(events int))
(extern (* void)
zmq_socket
(context (* void))
(type int))
(extern (* (const char))
zmq_strerror
(errnum int))
(extern int
zmq_term
(context (* void)))
(extern int
zmq_unbind
(socket (* void))
(endpoint (* (const char))))
(extern void
zmq_version
(major (* int))
(minor (* int))
(patch (* int)))
(extern (* uint8_t)
zmq_z85_decode
(dest (* uint8_t))
(string (* (const char))))
(extern (* char)
zmq_z85_encode
(dest (* char))
(data (* (const uint8_t)))
(size size_t))
(typedef zmq_pollitem_t
(struct zmq_pollitem_t
(socket (* void))
(fd int)
(events short)
(revents short)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment