Multiple persistent object manipulation

xtest 6014 is introduced. It highlights an issue when persistent
objects are manipulated in a loop.
cf. https://github.com/OP-TEE/optee_os/issues/798

Signed-off-by: Pascal Brand <pascal.brand@st.com>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: Joakim Bech <joakim.bech@linaro.org> (QEMU)
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/ta/storage/include/storage.h b/ta/storage/include/storage.h
index a736197..d5609d2 100644
--- a/ta/storage/include/storage.h
+++ b/ta/storage/include/storage.h
@@ -48,5 +48,6 @@
 TEE_Result ta_storage_cmd_next_enum(uint32_t param_types, TEE_Param params[4]);
 TEE_Result ta_storage_cmd_key_in_persistent(uint32_t param_types,
 					    TEE_Param params[4]);
+TEE_Result ta_storage_cmd_loop(uint32_t param_types, TEE_Param params[4]);
 
 #endif /*STORAGE_H */
diff --git a/ta/storage/include/ta_storage.h b/ta/storage/include/ta_storage.h
index ecaf541..abc6119 100644
--- a/ta/storage/include/ta_storage.h
+++ b/ta/storage/include/ta_storage.h
@@ -31,21 +31,22 @@
 #define TA_STORAGE_UUID { 0xb689f2a7, 0x8adf, 0x477a, \
 	{ 0x9f, 0x99, 0x32, 0xe9, 0x0c, 0x0a, 0xd0, 0xa2 } }
 
-#define TA_STORAGE_CMD_OPEN           0
-#define TA_STORAGE_CMD_CLOSE          1
-#define TA_STORAGE_CMD_READ           2
-#define TA_STORAGE_CMD_WRITE          3
-#define TA_STORAGE_CMD_CREATE         4
-#define TA_STORAGE_CMD_SEEK           5
-#define TA_STORAGE_CMD_UNLINK         6
-#define TA_STORAGE_CMD_RENAME         7
-#define TA_STORAGE_CMD_TRUNC          8
-#define TA_STORAGE_CMD_ALLOC_ENUM     9
-#define TA_STORAGE_CMD_FREE_ENUM      10
-#define TA_STORAGE_CMD_RESET_ENUM     11
-#define TA_STORAGE_CMD_START_ENUM     12
-#define TA_STORAGE_CMD_NEXT_ENUM      13
-#define TA_STORAGE_CMD_CREATE_OVERWRITE	14
-#define TA_STORAGE_CMD_KEY_IN_PERSISTENT 15
+#define TA_STORAGE_CMD_OPEN			0
+#define TA_STORAGE_CMD_CLOSE			1
+#define TA_STORAGE_CMD_READ			2
+#define TA_STORAGE_CMD_WRITE			3
+#define TA_STORAGE_CMD_CREATE			4
+#define TA_STORAGE_CMD_SEEK			5
+#define TA_STORAGE_CMD_UNLINK			6
+#define TA_STORAGE_CMD_RENAME			7
+#define TA_STORAGE_CMD_TRUNC			8
+#define TA_STORAGE_CMD_ALLOC_ENUM		9
+#define TA_STORAGE_CMD_FREE_ENUM		10
+#define TA_STORAGE_CMD_RESET_ENUM		11
+#define TA_STORAGE_CMD_START_ENUM		12
+#define TA_STORAGE_CMD_NEXT_ENUM		13
+#define TA_STORAGE_CMD_CREATE_OVERWRITE		14
+#define TA_STORAGE_CMD_KEY_IN_PERSISTENT	15
+#define TA_STORAGE_CMD_LOOP			16
 
 #endif /*TA_SKELETON_H */