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 ascii85_encode_len(long in_len)15ascii85_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 * ascii85_encode(uint32_t in,char * out)25ascii85_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