Branch
Hash :
95762e0a
Author :
Thomas de Grivel
Date :
2019-11-29T20:52:30
;;
;; cffi-pledge - Common Lisp wrapper for pledge syscall on OpenBSD
;;
;; Copyright 2019 Thomas de Grivel <thoxdg@gmail.com>
;;
;; Permission to use, copy, modify, and distribute this software for any
;; purpose with or without fee is hereby granted, provided that the above
;; copyright notice and this permission notice appear in all copies.
;;
;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
;; WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
;; MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
;; ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
;; WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
;; ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
;; OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
;;
(in-package :cffi-pledge)
(defcfun ("pledge" c-pledge) :int
(promises :string)
(execpromises :string))
(defun pledge (promises execpromises)
(declare (type (or null string) promises execpromises))
(let ((ret (c-pledge (or promises (null-pointer))
(or execpromises (null-pointer)))))
(declare (type integer ret))
(unless (zerop ret)
(error-errno "pledge")))
(values))