1
0
mirror of https://github.com/CovidBraceletPrj/CovidBracelet.git synced 2024-06-27 06:42:45 +02:00
CovidBracelet/src/ens/sequencenumber.c
H1ghBre4k3r 796cf0f089 Fix multiple results of the PR:
- cleanup of sequence number utilites
- dynamic calculation of nvs sectors for fs information
- usage of buffer in ens_fs
- check for max entry size (page size)
- usage of interal entry size, which is always the next larger power of 2 to a given entry size
2021-05-25 18:06:15 +02:00

28 lines
738 B
C

#include "sequencenumber.h"
#define SN_MASK 0xffffff
/**
* Mask a given sequence number to get rid of MSB.
*/
#define GET_MASKED_SN(x) (x & SN_MASK)
int sn_equal(record_sequence_number_t a, record_sequence_number_t b) {
return GET_MASKED_SN(a) == GET_MASKED_SN(b);
}
record_sequence_number_t sn_increment(record_sequence_number_t sn) {
return GET_MASKED_SN(++sn);
}
record_sequence_number_t sn_increment_by(record_sequence_number_t sn, uint32_t amount) {
return GET_MASKED_SN((sn + amount));
}
record_sequence_number_t sn_get_middle_sn(record_sequence_number_t older, record_sequence_number_t newer) {
if (older < newer) {
return (older + newer) / 2;
}
// TODO lome: cover case for older > newer
}