This source file includes following definitions.
- user_key_payload_rcu
- user_key_payload_locked
1
2
3
4
5
6
7
8 #ifndef _KEYS_USER_TYPE_H
9 #define _KEYS_USER_TYPE_H
10
11 #include <linux/key.h>
12 #include <linux/rcupdate.h>
13
14 #ifdef CONFIG_KEYS
15
16
17
18
19
20
21
22
23
24
25
26
27 struct user_key_payload {
28 struct rcu_head rcu;
29 unsigned short datalen;
30 char data[0] __aligned(__alignof__(u64));
31 };
32
33 extern struct key_type key_type_user;
34 extern struct key_type key_type_logon;
35
36 struct key_preparsed_payload;
37
38 extern int user_preparse(struct key_preparsed_payload *prep);
39 extern void user_free_preparse(struct key_preparsed_payload *prep);
40 extern int user_update(struct key *key, struct key_preparsed_payload *prep);
41 extern void user_revoke(struct key *key);
42 extern void user_destroy(struct key *key);
43 extern void user_describe(const struct key *user, struct seq_file *m);
44 extern long user_read(const struct key *key, char *buffer, size_t buflen);
45
46 static inline const struct user_key_payload *user_key_payload_rcu(const struct key *key)
47 {
48 return (struct user_key_payload *)dereference_key_rcu(key);
49 }
50
51 static inline struct user_key_payload *user_key_payload_locked(const struct key *key)
52 {
53 return (struct user_key_payload *)dereference_key_locked((struct key *)key);
54 }
55
56 #endif
57
58 #endif