/usr/src/linux-headers-5.15.0-190/include/linux
Edit: /usr/src/linux-headers-5.15.0-190/include/linux/rslib.h (3753B)
// SPDX-License-Identifier: GPL-2.0
/*
* Generic Reed Solomon encoder / decoder library
*
* Copyright (C) 2004 Thomas Gleixner (tglx@linutronix.de)
*
* RS code lifted from reed solomon library written by Phil Karn
* Copyright 2002 Phil Karn, KA9Q
*/
#ifndef _RSLIB_H_
#define _RSLIB_H_
#include
#include /* for gfp_t */
#include /* for GFP_KERNEL */
/**
* struct rs_codec - rs codec data
*
* @mm: Bits per symbol
* @nn: Symbols per block (= (1<mm = number of bits per symbol
* rs->nn = (2^rs->mm) - 1
*
* Simple arithmetic modulo would return a wrong result for values
* >= 3 * rs->nn
*/
static inline int rs_modnn(struct rs_codec *rs, int x)
{
while (x >= rs->nn) {
x -= rs->nn;
x = (x >> rs->mm) + (x & rs->nn);
}
return x;
}
#endif