diff options
Diffstat (limited to 'include/crypto/mcryptd.h')
-rw-r--r-- | include/crypto/mcryptd.h | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/include/crypto/mcryptd.h b/include/crypto/mcryptd.h deleted file mode 100644 index b67404fc4b34..000000000000 --- a/include/crypto/mcryptd.h +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * Software async multibuffer crypto daemon headers | ||
4 | * | ||
5 | * Author: | ||
6 | * Tim Chen <tim.c.chen@linux.intel.com> | ||
7 | * | ||
8 | * Copyright (c) 2014, Intel Corporation. | ||
9 | */ | ||
10 | |||
11 | #ifndef _CRYPTO_MCRYPT_H | ||
12 | #define _CRYPTO_MCRYPT_H | ||
13 | |||
14 | #include <linux/crypto.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <crypto/hash.h> | ||
17 | |||
18 | struct mcryptd_ahash { | ||
19 | struct crypto_ahash base; | ||
20 | }; | ||
21 | |||
22 | static inline struct mcryptd_ahash *__mcryptd_ahash_cast( | ||
23 | struct crypto_ahash *tfm) | ||
24 | { | ||
25 | return (struct mcryptd_ahash *)tfm; | ||
26 | } | ||
27 | |||
28 | struct mcryptd_cpu_queue { | ||
29 | struct crypto_queue queue; | ||
30 | spinlock_t q_lock; | ||
31 | struct work_struct work; | ||
32 | }; | ||
33 | |||
34 | struct mcryptd_queue { | ||
35 | struct mcryptd_cpu_queue __percpu *cpu_queue; | ||
36 | }; | ||
37 | |||
38 | struct mcryptd_instance_ctx { | ||
39 | struct crypto_spawn spawn; | ||
40 | struct mcryptd_queue *queue; | ||
41 | }; | ||
42 | |||
43 | struct mcryptd_hash_ctx { | ||
44 | struct crypto_ahash *child; | ||
45 | struct mcryptd_alg_state *alg_state; | ||
46 | }; | ||
47 | |||
48 | struct mcryptd_tag { | ||
49 | /* seq number of request */ | ||
50 | unsigned seq_num; | ||
51 | /* arrival time of request */ | ||
52 | unsigned long arrival; | ||
53 | unsigned long expire; | ||
54 | int cpu; | ||
55 | }; | ||
56 | |||
57 | struct mcryptd_hash_request_ctx { | ||
58 | struct list_head waiter; | ||
59 | crypto_completion_t complete; | ||
60 | struct mcryptd_tag tag; | ||
61 | struct crypto_hash_walk walk; | ||
62 | u8 *out; | ||
63 | int flag; | ||
64 | struct ahash_request areq; | ||
65 | }; | ||
66 | |||
67 | struct mcryptd_ahash *mcryptd_alloc_ahash(const char *alg_name, | ||
68 | u32 type, u32 mask); | ||
69 | struct crypto_ahash *mcryptd_ahash_child(struct mcryptd_ahash *tfm); | ||
70 | struct ahash_request *mcryptd_ahash_desc(struct ahash_request *req); | ||
71 | void mcryptd_free_ahash(struct mcryptd_ahash *tfm); | ||
72 | void mcryptd_flusher(struct work_struct *work); | ||
73 | |||
74 | enum mcryptd_req_type { | ||
75 | MCRYPTD_NONE, | ||
76 | MCRYPTD_UPDATE, | ||
77 | MCRYPTD_FINUP, | ||
78 | MCRYPTD_DIGEST, | ||
79 | MCRYPTD_FINAL | ||
80 | }; | ||
81 | |||
82 | struct mcryptd_alg_cstate { | ||
83 | unsigned long next_flush; | ||
84 | unsigned next_seq_num; | ||
85 | bool flusher_engaged; | ||
86 | struct delayed_work flush; | ||
87 | int cpu; | ||
88 | struct mcryptd_alg_state *alg_state; | ||
89 | void *mgr; | ||
90 | spinlock_t work_lock; | ||
91 | struct list_head work_list; | ||
92 | struct list_head flush_list; | ||
93 | }; | ||
94 | |||
95 | struct mcryptd_alg_state { | ||
96 | struct mcryptd_alg_cstate __percpu *alg_cstate; | ||
97 | unsigned long (*flusher)(struct mcryptd_alg_cstate *cstate); | ||
98 | }; | ||
99 | |||
100 | /* return delay in jiffies from current time */ | ||
101 | static inline unsigned long get_delay(unsigned long t) | ||
102 | { | ||
103 | long delay; | ||
104 | |||
105 | delay = (long) t - (long) jiffies; | ||
106 | if (delay <= 0) | ||
107 | return 0; | ||
108 | else | ||
109 | return (unsigned long) delay; | ||
110 | } | ||
111 | |||
112 | void mcryptd_arm_flusher(struct mcryptd_alg_cstate *cstate, unsigned long delay); | ||
113 | |||
114 | #endif | ||