Remove atomic_update parameter

Change in memory:
Flash: +24 bytes
SRAM: -0 byte
This commit is contained in:
Guðni Már Gilbert 2022-09-19 17:54:40 +00:00 committed by Yuri D'Elia
parent b2530eeb13
commit b1bee597aa

View file

@ -1,3 +1,4 @@
#include <util/atomic.h>
#include "cmdqueue.h" #include "cmdqueue.h"
#include "cardreader.h" #include "cardreader.h"
#include "ultralcd.h" #include "ultralcd.h"
@ -155,7 +156,7 @@ static bool cmdqueue_could_enqueue_front(size_t len_asked)
// len_asked does not contain the zero terminator size. // len_asked does not contain the zero terminator size.
// This function may update bufindw, therefore for the power panic to work, this function must be called // This function may update bufindw, therefore for the power panic to work, this function must be called
// with the interrupts disabled! // with the interrupts disabled!
static bool cmdqueue_could_enqueue_back(size_t len_asked, bool atomic_update = false) static bool cmdqueue_could_enqueue_back(size_t len_asked)
{ {
// MAX_CMD_SIZE has to accommodate the zero terminator. // MAX_CMD_SIZE has to accommodate the zero terminator.
if (len_asked >= MAX_CMD_SIZE) if (len_asked >= MAX_CMD_SIZE)
@ -186,11 +187,7 @@ static bool cmdqueue_could_enqueue_back(size_t len_asked, bool atomic_update = f
memset(cmdbuffer+bufindw, 0, sizeof(cmdbuffer)-bufindw); memset(cmdbuffer+bufindw, 0, sizeof(cmdbuffer)-bufindw);
// and point to the start. // and point to the start.
// Be careful! The bufindw needs to be changed atomically for the power panic & filament panic to work. // Be careful! The bufindw needs to be changed atomically for the power panic & filament panic to work.
if (atomic_update) ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { bufindw = 0; }
cli();
bufindw = 0;
if (atomic_update)
sei();
return true; return true;
} }
return false; return false;
@ -343,7 +340,7 @@ void repeatcommand_front()
void get_command() void get_command()
{ {
// Test and reserve space for the new command string. // Test and reserve space for the new command string.
if (! cmdqueue_could_enqueue_back(MAX_CMD_SIZE - 1, true)) if (! cmdqueue_could_enqueue_back(MAX_CMD_SIZE - 1))
return; return;
if (MYSERIAL.available() == RX_BUFFER_SIZE - 1) { //compare number of chars buffered in rx buffer with rx buffer size if (MYSERIAL.available() == RX_BUFFER_SIZE - 1) { //compare number of chars buffered in rx buffer with rx buffer size
@ -489,7 +486,7 @@ void get_command()
serial_count = 0; //clear buffer serial_count = 0; //clear buffer
// Don't call cmdqueue_could_enqueue_back if there are no characters waiting // Don't call cmdqueue_could_enqueue_back if there are no characters waiting
// in the queue, as this function will reserve the memory. // in the queue, as this function will reserve the memory.
if (MYSERIAL.available() == 0 || ! cmdqueue_could_enqueue_back(MAX_CMD_SIZE-1, true)) if (MYSERIAL.available() == 0 || ! cmdqueue_could_enqueue_back(MAX_CMD_SIZE-1))
return; return;
} // end of "end of line" processing } // end of "end of line" processing
else { else {
@ -587,7 +584,7 @@ void get_command()
if(card.eof()) break; if(card.eof()) break;
// The following line will reserve buffer space if available. // The following line will reserve buffer space if available.
if (! cmdqueue_could_enqueue_back(MAX_CMD_SIZE-1, true)) if (! cmdqueue_could_enqueue_back(MAX_CMD_SIZE-1))
return; return;
} }
else else