Add overflow flag checking

This is to ensure that we check for and flag buffer overflow flag from
the BIOS.

The logic should be:

```
1. BIOS_switch ^ BMC_switch == 0 → No overflow incident
  a. CONTINUE
2. BIOS_switch ^ BMC_switch == 1 → an unlogged overflow incident has occurred
  b. Log the overflow incident
  c. Toggle the BMC overflow flag
```

Tested: Added unit test

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I25c50a8de93900480413389d7d2a89b9be4b5643
diff --git a/include/buffer.hpp b/include/buffer.hpp
index 06e282f..95154de 100644
--- a/include/buffer.hpp
+++ b/include/buffer.hpp
@@ -109,6 +109,11 @@
     virtual std::vector<uint8_t> readUeLogFromReservedRegion() = 0;
 
     /**
+     * Check for overflow and ackknolwedge if not acked yet
+     */
+    virtual bool checkForOverflowAndAcknowledge() = 0;
+
+    /**
      * Read the buffer header from shared buffer
      */
     virtual void readBufferHeader() = 0;
@@ -191,6 +196,7 @@
                     uint16_t ueRegionSize,
                     const std::array<uint32_t, 4>& magicNumber) override;
     std::vector<uint8_t> readUeLogFromReservedRegion() override;
+    bool checkForOverflowAndAcknowledge() override;
     void readBufferHeader() override;
     struct CircularBufferHeader getCachedBufferHeader() const override;
     void updateReadPtr(const uint32_t newReadPtr) override;