resolve inline warnings

This commit is contained in:
Philippe Teuwen 2020-05-10 14:57:08 +02:00
commit 838d345918
4 changed files with 32 additions and 0 deletions

View file

@ -92,7 +92,12 @@ static inline uint8_t rx_byte_from_fpga() {
//
// Note: The SSC receiver is never synchronized the calculation may be performed
// on a i/q pair from two subsequent correlations, but does not matter.
// Note: inlining this function would fail with -Os
#ifdef __OPTIMIZE_SIZE__
static int32_t sample_power() {
#else
static inline int32_t sample_power() {
#endif
int32_t q = (int8_t)rx_byte_from_fpga();
q = ABS(q);
int32_t i = (int8_t)rx_byte_from_fpga();

View file

@ -65,7 +65,12 @@ static uint32_t last_frame_end; /* ts of last bit of previews rx or tx frame */
//-----------------------------------------------------------------------------
// Returns true if a pulse/pause is received within timeout
// Note: inlining this function would fail with -Os
#ifdef __OPTIMIZE_SIZE__
static bool wait_for(bool value, const uint32_t timeout) {
#else
static inline bool wait_for(bool value, const uint32_t timeout) {
#endif
while ((bool)(AT91C_BASE_PIOA->PIO_PDSR & GPIO_SSC_DIN) != value) {
if (GetCountSspClk() > timeout) {
return false;
@ -126,7 +131,12 @@ static inline int8_t rx_bit() {
// Note: The Subcarrier is not disabled during bits to prevent glitches. This is
// not mandatory but results in a cleaner signal. tx_frame will disable
// the subcarrier when the frame is done.
// Note: inlining this function would fail with -Os
#ifdef __OPTIMIZE_SIZE__
static void tx_bit(bool bit) {
#else
static inline void tx_bit(bool bit) {
#endif
LED_C_ON();
if (bit) {

View file

@ -66,6 +66,9 @@ bool validate_prng_nonce(uint32_t nonce);
#define LF_POLY_EVEN (0x870804)
#define BIT(x, n) ((x) >> (n) & 1)
#define BEBIT(x, n) BIT(x, (n) ^ 24)
#ifdef __OPTIMIZE_SIZE__
int filter(uint32_t const x);
#else
static inline int filter(uint32_t const x) {
uint32_t f;
@ -77,3 +80,4 @@ static inline int filter(uint32_t const x) {
return BIT(0xEC57E80A, f);
}
#endif
#endif

View file

@ -21,6 +21,19 @@
#include "crapto1.h"
#include "parity.h"
#ifdef __OPTIMIZE_SIZE__
int filter(uint32_t const x) {
uint32_t f;
f = 0xf22c0 >> (x & 0xf) & 16;
f |= 0x6c9c0 >> (x >> 4 & 0xf) & 8;
f |= 0x3c8b0 >> (x >> 8 & 0xf) & 4;
f |= 0x1e458 >> (x >> 12 & 0xf) & 2;
f |= 0x0d938 >> (x >> 16 & 0xf) & 1;
return BIT(0xEC57E80A, f);
}
#endif
#define SWAPENDIAN(x)\
(x = (x >> 8 & 0xff00ff) | (x & 0xff00ff) << 8, x = x >> 16 | x << 16)