mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 02:54:32 +08:00
cfa55c6d47
The batman-adv source code was using the year of publication (to net-next) as "last" year for the copyright statement. The whole source code mentioned in the MAINTAINERS "BATMAN ADVANCED" section was handled as a single entity regarding the publishing year. This avoided having outdated (in sense of year information - not copyright holder) publishing information inside several files. But since the simple "update copyright year" commit (without other changes) in the file was not well received in the upstream kernel, the option to not have a copyright year (for initial and last publication) in the files are chosen instead. More detailed information about the years can still be retrieved from the SCM system. Signed-off-by: Sven Eckelmann <sven@narfation.org> Acked-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
57 lines
1.5 KiB
C
57 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (C) B.A.T.M.A.N. contributors:
|
|
*
|
|
* Simon Wunderlich, Marek Lindner
|
|
*/
|
|
|
|
#ifndef _NET_BATMAN_ADV_BITARRAY_H_
|
|
#define _NET_BATMAN_ADV_BITARRAY_H_
|
|
|
|
#include "main.h"
|
|
|
|
#include <linux/bitops.h>
|
|
#include <linux/compiler.h>
|
|
#include <linux/stddef.h>
|
|
#include <linux/types.h>
|
|
|
|
/**
|
|
* batadv_test_bit() - check if bit is set in the current window
|
|
*
|
|
* @seq_bits: pointer to the sequence number receive packet
|
|
* @last_seqno: latest sequence number in seq_bits
|
|
* @curr_seqno: sequence number to test for
|
|
*
|
|
* Return: true if the corresponding bit in the given seq_bits indicates true
|
|
* and curr_seqno is within range of last_seqno. Otherwise returns false.
|
|
*/
|
|
static inline bool batadv_test_bit(const unsigned long *seq_bits,
|
|
u32 last_seqno, u32 curr_seqno)
|
|
{
|
|
s32 diff;
|
|
|
|
diff = last_seqno - curr_seqno;
|
|
if (diff < 0 || diff >= BATADV_TQ_LOCAL_WINDOW_SIZE)
|
|
return false;
|
|
return test_bit(diff, seq_bits) != 0;
|
|
}
|
|
|
|
/**
|
|
* batadv_set_bit() - Turn corresponding bit on, so we can remember that we got
|
|
* the packet
|
|
* @seq_bits: bitmap of the packet receive window
|
|
* @n: relative sequence number of newly received packet
|
|
*/
|
|
static inline void batadv_set_bit(unsigned long *seq_bits, s32 n)
|
|
{
|
|
/* if too old, just drop it */
|
|
if (n < 0 || n >= BATADV_TQ_LOCAL_WINDOW_SIZE)
|
|
return;
|
|
|
|
set_bit(n, seq_bits); /* turn the position on */
|
|
}
|
|
|
|
bool batadv_bit_get_packet(void *priv, unsigned long *seq_bits,
|
|
s32 seq_num_diff, int set_mark);
|
|
|
|
#endif /* _NET_BATMAN_ADV_BITARRAY_H_ */
|