diff options
Diffstat (limited to 'include/linux/ascii85.h')
-rw-r--r-- | include/linux/ascii85.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/ascii85.h b/include/linux/ascii85.h new file mode 100644 index 000000000000..4cc40201273e --- /dev/null +++ b/include/linux/ascii85.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * SPDX-License-Identifier: GPL-2.0 | ||
3 | * | ||
4 | * Copyright (c) 2008 Intel Corporation | ||
5 | * Copyright (c) 2018 The Linux Foundation. All rights reserved. | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASCII85_H_ | ||
9 | #define _ASCII85_H_ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | |||
13 | #define ASCII85_BUFSZ 6 | ||
14 | |||
15 | static inline long | ||
16 | ascii85_encode_len(long len) | ||
17 | { | ||
18 | return DIV_ROUND_UP(len, 4); | ||
19 | } | ||
20 | |||
21 | static inline const char * | ||
22 | ascii85_encode(u32 in, char *out) | ||
23 | { | ||
24 | int i; | ||
25 | |||
26 | if (in == 0) | ||
27 | return "z"; | ||
28 | |||
29 | out[5] = '\0'; | ||
30 | for (i = 5; i--; ) { | ||
31 | out[i] = '!' + in % 85; | ||
32 | in /= 85; | ||
33 | } | ||
34 | |||
35 | return out; | ||
36 | } | ||
37 | |||
38 | #endif | ||