changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/btrfs/util.lisp

changeset 504: f57e2bbee438
author: Richard Westhaver <ellis@rwest.io>
date: Wed, 03 Jul 2024 14:43:21 -0400
permissions: -rw-r--r--
description: split out btrfsutil
1 ;;; util.lisp --- BtrfsUtil Alien Bindings
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :btrfs)
7 
8 (eval-always
9  (define-opaque btrfs-util-qgroup-inherit nil t)
10  (define-opaque btrfs-util-subvolume-iterator nil t))
11 
12 (define-alien-enum (btrfs-util-error int)
13  :ok 0
14  :stop-iteration 1
15  :no-memory 2
16  :invalid-argument 3
17  :not-btrfs 4
18  :not-subvolume 5
19  :subvolume-not-found 6
20  :error-open-failed 7
21  :error-rmdir-failed 8
22  :error-unlink-failed 9
23  :error-stat-failed 10
24  :error-statfs-failed 11
25  :error-search-failed 12
26  :error-ino-lookup-failed 13
27  :error-subvol-getflags-failed 14
28  :error-subvol-setflags-failed 15
29  :error-subvol-create-failed 16
30  :error-snap-create-failed 17
31  :error-snap-destroy-failed 18
32  :error-default-subvol-failed 19
33  :error-sync-failed 20
34  :error-start-sync-failed 21
35  :error-wait-sync-failed 22
36  :error-get-subvol-info-failed 23
37  :error-get-subvol-rootref-failed 24
38  :error-ino-lookup-user-failed 25
39  :error-fs-info-failed 26)
40 
41 (define-alien-routine btrfs-util-strerror c-string (err btrfs-util-error))
42 
43 (define-alien-routine btrfs-util-subvolume-iter-destroy void
44  (iter (* btrfs-util-subvolume-iterator)))
45 
46 (define-alien-routine btrfs-util-subvolume-iterator-get-fd int
47  (iter (* btrfs-util-subvolume-iterator)))
48 
49 (define-alien-routine btrfs-util-qgroup-inherit-destroy void
50  (inherit (* btrfs-util-qgroup-inherit)))
51 
52 (macrolet ((def (name &rest args)
53  `(progn
54  (define-alien-routine ,name btrfs-util-error ,@args)
55  (export ',name))))
56  (def btrfs-util-fs-sync (path c-string))
57  (def btrfs-util-fs-sync-fd (fd int))
58  (def btrfs-util-fs-start-sync
59  (path c-string)
60  (transid (* (unsigned 64))))
61  (def btrfs-util-fs-start-sync-fd
62  (fd int)
63  (transid (* (unsigned 64))))
64  (def btrfs-util-fs-wait-sync (path c-string) (transid (unsigned 64)))
65  (def btrfs-util-fs-wait-sync-fd (fd int) (transid (unsigned 64)))
66  (def btrfs-util-subvolume-is-valid (path c-string))
67  (def btrfs-util-subvolume-is-valid-fd (fd int))
68  (def btrfs-util-subvolume-get-id (path c-string) (id-ret (* (unsigned 64))))
69  (def btrfs-util-subvolume-get-id-fd (fd int) (id-ret (* (unsigned 64))))
70  (def btrfs-util-subvolume-get-path
71  (path c-string)
72  (id (unsigned 64))
73  (path-ret (* c-string)))
74  (def btrfs-util-subvolume-get-path-fd
75  (fd int)
76  (id (unsigned 64))
77  (path-ret (* c-string)))
78  (def btrfs-util-subvolume-get-info
79  (path c-string)
80  (id (unsigned 64))
81  (subvol (* btrfs-util-subvolume-info)))
82  (def btrfs-util-subvolume-get-info-fd
83  (fd int)
84  (id (unsigned 64))
85  (subvol (* btrfs-util-subvolume-info)))
86  (def btrfs-util-subvolume-get-read-only
87  (path c-string)
88  (ret (* boolean)))
89  (def btrfs-util-subvolume-get-read-only-fd
90  (fd int)
91  (ret (* boolean)))
92  (def btrfs-util-subvolume-set-read-only
93  (path c-string)
94  (read-only boolean))
95  (def btrfs-util-subvolume-set-read-only-fd
96  (fd int)
97  (read-only boolean))
98  (def btrfs-util-subvolume-get-default
99  (path c-string)
100  (id-ret (* (unsigned 64))))
101  (def btrfs-util-subvolume-get-default-fd
102  (fd int)
103  (id-ret (* (unsigned 64))))
104  (def btrfs-util-subvolume-set-default
105  (path c-string)
106  (id (unsigned 64)))
107  (def btrfs-util-subvolume-set-default-fd
108  (fd int)
109  (id (unsigned 64)))
110  (def btrfs-util-subvolume-create
111  (path c-string)
112  (flags (* int))
113  (unused (* (unsigned 64)))
114  (qgroup-inherit (* btrfs-util-qgroup-inherit)))
115  (def btrfs-util-subvolume-create-fd
116  (fd int)
117  (name c-string)
118  (flags int)
119  (unused (* (unsigned 64)))
120  (qgroup-inherit (* btrfs-util-qgroup-inherit)))
121  (def btrfs-util-subvolume-snapshot
122  (source c-string)
123  (path c-string)
124  (flags int)
125  (unused (* (unsigned 64)))
126  (qgroup-inherit (* btrfs-util-qgroup-inherit)))
127  (def btrfs-util-subvolume-snapshot-fd
128  (fd int)
129  (path c-string)
130  (flags int)
131  (unused (* (unsigned 64)))
132  (qgroup-inherit (* btrfs-util-qgroup-inherit)))
133  (def btrfs-util-subvolume-snapshot-fd2
134  (fd int)
135  (parent-fd int)
136  (name c-string)
137  (flags int)
138  (unused (* (unsigned 64)))
139  (qgroup-inherit (* btrfs-util-qgroup-inherit)))
140  (def btrfs-util-subvolume-delete
141  (path c-string)
142  (flags int))
143  (def btrfs-util-subvolume-delete-fd
144  (parent-fd int)
145  (name c-string)
146  (flags int))
147  (def btrfs-util-subvolume-delete-by-id-fd
148  (fd int)
149  (subvolid (unsigned 64)))
150  (def btrfs-util-subvolume-iter-create
151  (path c-string)
152  (top (unsigned 64))
153  (flags int)
154  (ret (* (* btrfs-util-subvolume-iterator))))
155  (def btrfs-util-subvolume-iter-create-fd
156  (fd int)
157  (top (unsigned 64))
158  (flags int)
159  (ret (* (* btrfs-util-subvolume-iterator))))
160  (def btrfs-util-subvolume-iter-next
161  (iter (* btrfs-util-subvolume-iterator))
162  (path-ret (* c-string))
163  (id-ret (* (unsigned 64))))
164  (def btrfs-util-subvolume-iter-next-info
165  (iter (* btrfs-util-subvolume-iterator))
166  (path-ret (* c-string))
167  (subvol (* btrfs-util-subvolume-info)))
168  (def btrfs-util-subvolume-list-deleted
169  (path c-string)
170  (ids (* (* (unsigned 64))))
171  (n (* size-t)))
172  (def btrfs-util-subvolume-list-deleted-fd
173  (fd int)
174  (ids (* (* (unsigned 64))))
175  (n (* size-t)))
176  (def btrfs-util-qgroup-inherit-create
177  (flags int)
178  (ret (* (* btrfs-util-qgroup-inherit))))
179  (def btrfs-util-qgroup-inherit-add-group
180  (inherit (* (* btrfs-util-qgroup-inherit)))
181  (qgroupid (unsigned 64)))
182  (def btrfs-util-qgroup-inherit-get-groups
183  (inherit (* btrfs-util-qgroup-inherit))
184  (groups (* (* (unsigned 64))))
185  (n (* size-t))))