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/math.h>
12  #include <linux/types.h>
13  
14  #define ASCII85_BUFSZ 6
15  
16  static inline long
ascii85_encode_len(long len)17  ascii85_encode_len(long len)
18  {
19  	return DIV_ROUND_UP(len, 4);
20  }
21  
22  static inline const char *
ascii85_encode(u32 in,char * out)23  ascii85_encode(u32 in, char *out)
24  {
25  	int i;
26  
27  	if (in == 0)
28  		return "z";
29  
30  	out[5] = '\0';
31  	for (i = 5; i--; ) {
32  		out[i] = '!' + in % 85;
33  		in /= 85;
34  	}
35  
36  	return out;
37  }
38  
39  #endif
40