Increment version to 0.25

Also insert the TOSA file identifier in the flatbuffer.

Reports a warning if the identifier is not present when loading.

Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Change-Id: I1cd4a9cc78e898ba5015e29be1c65cb640dd6a00
diff --git a/include/tosa_generated.h b/include/tosa_generated.h
index f3fab51..799a3e7 100644
--- a/include/tosa_generated.h
+++ b/include/tosa_generated.h
@@ -2021,7 +2021,7 @@
     return GetField<int32_t>(VT__MAJOR, 0);
   }
   int32_t _minor() const {
-    return GetField<int32_t>(VT__MINOR, 24);
+    return GetField<int32_t>(VT__MINOR, 25);
   }
   int32_t _patch() const {
     return GetField<int32_t>(VT__PATCH, 0);
@@ -2047,7 +2047,7 @@
     fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
   }
   void add__minor(int32_t _minor) {
-    fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 24);
+    fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 25);
   }
   void add__patch(int32_t _patch) {
     fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
@@ -2070,7 +2070,7 @@
 inline flatbuffers::Offset<Version> CreateVersion(
     flatbuffers::FlatBufferBuilder &_fbb,
     int32_t _major = 0,
-    int32_t _minor = 24,
+    int32_t _minor = 25,
     int32_t _patch = 0,
     bool _draft = true) {
   VersionBuilder builder_(_fbb);
diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py
index cd86777..929aebd 100644
--- a/python/serializer/tosa_serializer.py
+++ b/python/serializer/tosa_serializer.py
@@ -39,6 +39,10 @@
     TOSA_VERSION_PATCH,
     TOSA_VERSION_DRAFT,
 ]
+
+# File identifier needs to be kept in sync with schema/tosa.fbs
+TOSA_GRAPH_IDENTIFIER = b"\x54\x4F\x53\x41"
+
 # With the way flatc generates its python types, there is no programatic way
 # to get string names for the integer types.  Manually maintain a string table
 # here.
@@ -703,7 +707,7 @@
         TosaGraph.AddBlocks(builder, fbv_bb)
         graph = TosaGraph.End(builder)
 
-        self.builder.Finish(graph)
+        self.builder.Finish(graph, TOSA_GRAPH_IDENTIFIER)
         return self.builder.Output()
 
     def writeJson(self, tosa_filename):
diff --git a/python/tosa/Version.py b/python/tosa/Version.py
index 95df414..27dea53 100644
--- a/python/tosa/Version.py
+++ b/python/tosa/Version.py
@@ -36,7 +36,7 @@
         o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
         if o != 0:
             return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
-        return 24
+        return 25
 
     # Version
     def _patch(self):
@@ -54,7 +54,7 @@
 
 def VersionStart(builder): builder.StartObject(4)
 def VersionAdd_major(builder, Major): builder.PrependInt32Slot(0, Major, 0)
-def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 24)
+def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 25)
 def VersionAdd_patch(builder, Patch): builder.PrependInt32Slot(2, Patch, 0)
 def VersionAdd_draft(builder, Draft): builder.PrependBoolSlot(3, Draft, 1)
 def VersionEnd(builder): return builder.EndObject()
diff --git a/schema/tosa.fbs b/schema/tosa.fbs
index f519d1c..b0b219f 100644
--- a/schema/tosa.fbs
+++ b/schema/tosa.fbs
@@ -282,7 +282,7 @@
 
 table Version {
   _major: int32 = 0;
-  _minor: int32 = 24;
+  _minor: int32 = 25;
   _patch: int32 = 0;
   _draft: bool = true;
 }
diff --git a/src/tosa_serialization_handler.cpp b/src/tosa_serialization_handler.cpp
index bd2cbb4..32725a0 100644
--- a/src/tosa_serialization_handler.cpp
+++ b/src/tosa_serialization_handler.cpp
@@ -436,6 +436,10 @@
 
 tosa_err_t TosaSerializationHandler::Deserialize(const uint8_t* buf)
 {
+    if (!TosaGraphBufferHasIdentifier(buf))
+    {
+        printf("WARNING: TOSA file does not have TOSA file identifier\n");
+    }
     auto fb_tosa_graph   = GetTosaGraph(buf);
     auto fb_tosa_version = fb_tosa_graph->version();
     auto fb_tosa_blocks  = fb_tosa_graph->blocks();
@@ -846,7 +850,7 @@
         CreateVersion(_builder, TOSA_VERSION_MAJOR, TOSA_VERSION_MINOR, TOSA_VERSION_PATCH, TOSA_VERSION_DRAFT);
 
     auto fb_graph = CreateTosaGraph(_builder, fb_version, fb_blocks);
-    _builder.Finish(fb_graph);
+    _builder.Finish(fb_graph, TosaGraphIdentifier());
 
     return TOSA_OK;
 }