diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/crc8.h | 23 | ||||
| -rw-r--r-- | include/linux/linkage.h | 4 | 
2 files changed, 27 insertions, 0 deletions
| diff --git a/include/linux/crc8.h b/include/linux/crc8.h new file mode 100644 index 000000000..b5fd2ac9d --- /dev/null +++ b/include/linux/crc8.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2013 Google, Inc + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + + +#ifndef __linux_crc8_h +#define __linux_crc8_h + +/** + * crc8() - Calculate and return CRC-8 of the data + * + * This uses an x^8 + x^2 + x + 1 polynomial.  A table-based algorithm would + * be faster, but for only a few bytes it isn't worth the code size + * + * @vptr: Buffer to checksum + * @len: Length of buffer in bytes + * @return CRC8 checksum + */ +unsigned int crc8(const unsigned char *vptr, int len); + +#endif diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 39c712eac..7435fcd02 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -48,6 +48,10 @@  	.globl SYMBOL_NAME(name); \  	LENTRY(name) +#define WEAK(name) \ +	.weak SYMBOL_NAME(name); \ +	LENTRY(name) +  #ifndef END  #define END(name) \  	.size name, .-name |