Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/compat/linuxkpi/common/include/linux/ascii85.h
283510 views
1
/*
2
* SPDX-License-Identifier: BSD-2-Clause
3
*
4
* Copyright (c) 2026 The FreeBSD Foundation
5
*/
6
7
#ifndef _LINUXKPI_LINUX_ASCII85_H_
8
#define _LINUXKPI_LINUX_ASCII85_H_
9
10
#include <sys/param.h>
11
12
#define ASCII85_BUFSZ 6
13
14
static inline long
15
ascii85_encode_len(long in_len)
16
{
17
long out_len;
18
19
out_len = howmany(in_len, 4);
20
21
return (out_len);
22
}
23
24
static inline const char *
25
ascii85_encode(uint32_t in, char *out)
26
{
27
int i;
28
29
if (in == 0) {
30
out[0] = 'z';
31
out[1] = '\0';
32
return (out);
33
}
34
35
for (i = ASCII85_BUFSZ - 2; i >= 0; i--) {
36
out[i] = in % 85;
37
out[i] += 33;
38
39
in /= 85;
40
}
41
out[ASCII85_BUFSZ - 1] = '\0';
42
43
return (out);
44
}
45
46
#endif /* _LINUXKPI_LINUX_ASCII85_H_ */
47
48