Add tosa identification numbers

Signed-off-by: Frederick Liardet <frederick.liardet@arm.com>
Change-Id: Idc5668fb01dc8dd657beb911d2cb9295f9275ac6
diff --git a/python/tosa_serializer.py b/python/tosa_serializer.py
index 6915c83..b11f9cd 100644
--- a/python/tosa_serializer.py
+++ b/python/tosa_serializer.py
@@ -60,6 +60,9 @@
     "FLOAT",
 ]
 
+# File identifier needs to be kept in sync with schema/tosa.fbs
+TOSA_GRAPH_IDENTIFIER = b"\x54\x4F\x53\x41"
+
 ByteMask = np.uint64(0xFF)
 
 
@@ -713,7 +716,7 @@
         TosaGraph.TosaGraphAddBlocks(builder, fbv_bb)
         graph = TosaGraph.TosaGraphEnd(builder)
 
-        self.builder.Finish(graph)
+        self.builder.Finish(graph, TOSA_GRAPH_IDENTIFIER)
         return self.builder.Output()
 
     def writeJson(self, tosa_filename):
diff --git a/src/tosa_serialization_handler.cpp b/src/tosa_serialization_handler.cpp
index 547c3db..6799d71 100644
--- a/src/tosa_serialization_handler.cpp
+++ b/src/tosa_serialization_handler.cpp
@@ -354,6 +354,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();
@@ -764,7 +768,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;
 }