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 @@ +/* + * SPDX-License-Identifier: GPL-2.0 + * + * Copyright (c) 2008 Intel Corporation + * Copyright (c) 2018 The Linux Foundation. All rights reserved. + */ + +#ifndef _ASCII85_H_ +#define _ASCII85_H_ + +#include <linux/kernel.h> + +#define ASCII85_BUFSZ 6 + +static inline long +ascii85_encode_len(long len) +{ +	return DIV_ROUND_UP(len, 4); +} + +static inline const char * +ascii85_encode(u32 in, char *out) +{ +	int i; + +	if (in == 0) +		return "z"; + +	out[5] = '\0'; +	for (i = 5; i--; ) { +		out[i] = '!' + in % 85; +		in /= 85; +	} + +	return out; +} + +#endif |