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/include/tfm_ns_lock.h b/interface/include/tfm_ns_lock.h
new file mode 100644
index 0000000..7361aac
--- /dev/null
+++ b/interface/include/tfm_ns_lock.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2017, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#ifndef __TFM_NS_LOCK_H__
+#define __TFM_NS_LOCK_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include "tfm_ns_svc.h"
+
+/**
+ * \brief NS world, NS lock based dispatcher
+ *
+ * \details To be called from the SVC wrapper API interface
+ */
+uint32_t tfm_ns_lock_svc_dispatch(enum tfm_svc_num svc_num,
+                                  uint32_t arg0,
+                                  uint32_t arg1,
+                                  uint32_t arg2,
+                                  uint32_t arg3);
+
+/**
+ * \brief NS world, Init NS lock
+ *
+ * \details Needs to be called during non-secure app init
+ *          to initialize the TFM NS lock object
+ */
+uint32_t tfm_ns_lock_init();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TFM_NS_LOCK_H__ */