OSDN Git Service

Revert "make_ext4fs: write out super blocks at last for block devices".
[android-x86/system-extras.git] / ext4_utils / key_control.cpp
1 #include "key_control.h"
2
3 #include <stdarg.h>
4 #include <unistd.h>
5 #include <sys/syscall.h>
6 #include <linux/keyctl.h>
7
8 static long keyctl(int cmd, ...)
9 {
10     va_list va;
11     unsigned long arg2, arg3, arg4, arg5;
12
13     va_start(va, cmd);
14     arg2 = va_arg(va, unsigned long);
15     arg3 = va_arg(va, unsigned long);
16     arg4 = va_arg(va, unsigned long);
17     arg5 = va_arg(va, unsigned long);
18     va_end(va);
19     return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5);
20 }
21
22 key_serial_t add_key(const char *type,
23                      const char *description,
24                      const void *payload,
25                      size_t plen,
26                      key_serial_t ringid)
27 {
28     return syscall(__NR_add_key, type, description, payload, plen, ringid);
29 }
30
31 long keyctl_revoke(key_serial_t id)
32 {
33     return keyctl(KEYCTL_REVOKE, id);
34 }
35
36 long keyctl_setperm(key_serial_t id, int permissions)
37 {
38     return keyctl(KEYCTL_SETPERM, id, permissions);
39 }
40
41 long keyctl_search(key_serial_t ringid, const char *type,
42                    const char *description, key_serial_t destringid)
43 {
44     return keyctl(KEYCTL_SEARCH, ringid, type, description, destringid);
45 }