Add conversion helpers for netlink addresses
[iolib.git] / src / multiplex / utils.lisp
blob059d43dcb0ad537bffcb6b79a9eb7c9c24d847c3
1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
2 ;;;
3 ;;; --- Miscellaneous utilities.
4 ;;;
6 (in-package :iolib.multiplex)
8 (defun timeout->timeval (timeout tv)
9 (with-foreign-slots ((isys:sec isys:usec) tv isys:timeval)
10 (multiple-value-bind (%sec %usec)
11 (decode-timeout timeout)
12 (setf isys:sec %sec
13 isys:usec %usec))))
15 (defun timeout->timespec (timeout ts)
16 (with-foreign-slots ((isys:sec isys:nsec) ts isys:timespec)
17 (multiple-value-bind (%sec %usec)
18 (decode-timeout timeout)
19 (setf isys:sec %sec
20 isys:nsec (* 1000 %usec)))))
22 (defun timeout->milliseconds (timeout)
23 (if timeout
24 (multiple-value-bind (sec usec)
25 (decode-timeout timeout)
26 (+ (* sec 1000)
27 (truncate usec 1000)))
28 -1))