cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

crc16.h (540B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 *	crc16.h - CRC-16 routine
      4 *
      5 * Implements the standard CRC-16:
      6 *   Width 16
      7 *   Poly  0x8005 (x^16 + x^15 + x^2 + 1)
      8 *   Init  0
      9 *
     10 * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com>
     11 */
     12
     13#ifndef __CRC16_H
     14#define __CRC16_H
     15
     16#include <linux/types.h>
     17
     18extern u16 const crc16_table[256];
     19
     20extern u16 crc16(u16 crc, const u8 *buffer, size_t len);
     21
     22static inline u16 crc16_byte(u16 crc, const u8 data)
     23{
     24	return (crc >> 8) ^ crc16_table[(crc ^ data) & 0xff];
     25}
     26
     27#endif /* __CRC16_H */
     28