Blame view

include/linux/ascii85.h 532 Bytes
489cae632   Jordan Crouse   include: Move asc...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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