diff options
| author | Jean-Sébastien Pédron <dumbbell@FreeBSD.org> | 2026-03-09 19:04:12 +0000 |
|---|---|---|
| committer | Jean-Sébastien Pédron <dumbbell@FreeBSD.org> | 2026-04-06 19:28:11 +0000 |
| commit | 0eaa57625d0fbe9960eabbaaedd522acdf673648 (patch) | |
| tree | 69276362915cecdb8291db97bd53f2b9bbc121cc /sys/compat/linuxkpi/common/include | |
| parent | 5ee604b2446fa0f3fb949b21a587884ad65b5737 (diff) | |
Diffstat (limited to 'sys/compat/linuxkpi/common/include')
| -rw-r--r-- | sys/compat/linuxkpi/common/include/linux/ascii85.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/ascii85.h b/sys/compat/linuxkpi/common/include/linux/ascii85.h new file mode 100644 index 000000000000..06777a130e41 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/ascii85.h @@ -0,0 +1,46 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 The FreeBSD Foundation + */ + +#ifndef _LINUXKPI_LINUX_ASCII85_H_ +#define _LINUXKPI_LINUX_ASCII85_H_ + +#include <sys/param.h> + +#define ASCII85_BUFSZ 6 + +static inline long +ascii85_encode_len(long in_len) +{ + long out_len; + + out_len = howmany(in_len, 4); + + return (out_len); +} + +static inline const char * +ascii85_encode(uint32_t in, char *out) +{ + int i; + + if (in == 0) { + out[0] = 'z'; + out[1] = '\0'; + return (out); + } + + for (i = ASCII85_BUFSZ - 2; i >= 0; i--) { + out[i] = in % 85; + out[i] += 33; + + in /= 85; + } + out[ASCII85_BUFSZ - 1] = '\0'; + + return (out); +} + +#endif /* _LINUXKPI_LINUX_ASCII85_H_ */ |
