changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/keyutils/pkg.lisp

changeset 698: 96958d3eb5b0
parent: bc0ea6a5c252
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
1 ;;; pkg.lisp --- low-level bindings to libkeyutils
2 
3 ;; key utility library interface
4 
5 ;; ref: https://man7.org/linux/man-pages/man7/keyutils.7.html
6 
7 ;;; Commentary:
8 
9 ;;
10 
11 ;;; Code:
12 (defpackage :keyutils
13  (:use :cl :std :sb-alien)
14  (:export
15  :keyutils-version-string
16  :keyutils-build-string
17  :key-spec
18  :key-spec*))
19 
20 (in-package :keyutils)
21 
22 (define-alien-loader "keyutils" t "/usr/lib/")
23 
24 (define-alien-type iovec (struct nil))
25 
26 (define-alien-type key-serial-t (integer 32))
27 (define-alien-type key-perm-t (unsigned 32))
28 
29 (define-alien-type keyctl-pkey-params (struct keyctl-pkey-params
30  (key-id key-serial-t)
31  (len1 unsigned-int)
32  (len2 unsigned-int)
33  (%sparse (array unsigned-int 7))))
34 
35 (define-alien-variable keyutils-version-string (array char))
36 (define-alien-variable keyutils-build-string (array char))
37 ;; (cast keyutils-version-string c-string) ;= "keyutils-1.6.3"
38 ;; (cast keyutils-build-string c-string) ;= nil
39 
40 ;; TODO: recursive_key_scanner_t
41 
42 (define-alien-enum (key-spec int)
43  :thread +key-spec-thread-keyring+
44  :process +key-spec-process-keyring+
45  :session +key-spec-session-keyring+
46  :user +key-spec-user-keyring+
47  :user-session +key-spec-user-session-keyring+
48  :group +key-spec-group-keyring+
49  :reqkey-auth +key-spec-reqkey-auth-key+)
50