----- Forwarded message from Johan Ur Riise johan@riise-data.no -----
Subject: Re: [cffi-devel] using defcenum keywords in function call Date: Sat, 26 Sep 2009 07:09:49 +0200 From: Johan Ur Riise johan@riise-data.no To: Stelian Ionescu sionescu@cddr.org
On Sat, Sep 26, 2009 at 05:19:15AM +0200, Stelian Ionescu wrote:
DEFCENUM doesn't define constants(as in C), but a type which gets translated to integers if you specify it as argument type. In other words, this is correct:
(defcfun ("socket" win-socket) socket "Creates a socket with the overlapped mode as default" (af af) (type sock-type) (protocol pf))
Thanks, that worked, and I can see now that the curl example shows how to do it.
For the record, this definition has a better chance of actually returning a socket:
(defcenum af :af-unspec :af-unix :af-inet)
(defcenum sock-type (:sock-stream 1) :sock-dgram :sock-raw)
(defcenum proto (:tcp 6) (:udp 17))
(defun make-socket () (foreign-funcall "socket" af :af-inet sock-type :sock-stream proto :tcp socket))
----- End forwarded message -----