Interface: Interface provided to NS side

These files provide a reference interface mplementation for integration
with OS running on the NS side. This has been tested to work with
RTX scheduler.
Modifications may be required while integrating other OS.

Change-Id: I4845584465c5df0bc574de31564a0789154c0dd5
Signed-off-by: Ashutosh Singh <ashutosh.singh@arm.com>
Co-Authored-By: Marc Moreno Berengue <marc.morenoberengue@arm.com>
Co-Authored-By: Antonio de Angelis <antonio.deangelis@arm.com>
diff --git a/interface/src/tfm_sst_svc_handler.c b/interface/src/tfm_sst_svc_handler.c
new file mode 100644
index 0000000..c10432e
--- /dev/null
+++ b/interface/src/tfm_sst_svc_handler.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2017, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <string.h>
+#include "tfm_ns_svc.h"
+#include "tfm_sst_veneers.h"
+#include "tfm_id_mngr.h"
+
+/* SVC function implementations */
+enum tfm_sst_err_t tfm_sst_svc_get_handle(uint16_t asset_uuid,
+                                          uint32_t* hdl)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_get_handle(app_id, asset_uuid, hdl);
+}
+
+enum tfm_sst_err_t tfm_sst_svc_create(uint16_t asset_uuid)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_create(app_id, asset_uuid);
+}
+
+enum tfm_sst_err_t tfm_sst_svc_get_attributes(uint32_t asset_handle,
+                                        struct tfm_sst_attribs_t* attrib_struct)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_get_attributes(app_id, asset_handle, attrib_struct);
+}
+
+enum tfm_sst_err_t tfm_sst_svc_read(uint32_t asset_handle,
+                                    struct tfm_sst_buf_t* data)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_read(app_id, asset_handle, data);
+}
+
+enum tfm_sst_err_t tfm_sst_svc_write(uint32_t asset_handle,
+                                     struct tfm_sst_buf_t* data)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_write(app_id, asset_handle, data);
+}
+
+enum tfm_sst_err_t tfm_sst_svc_delete(uint32_t asset_handle)
+{
+    uint32_t app_id;
+
+    app_id = tfm_sst_get_cur_id();
+
+    return tfm_sst_veneer_delete(app_id, asset_handle);
+}