aboutsummaryrefslogtreecommitdiff
path: root/lib/sprt/sprt_client_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sprt/sprt_client_private.h')
-rw-r--r--lib/sprt/sprt_client_private.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/sprt/sprt_client_private.h b/lib/sprt/sprt_client_private.h
new file mode 100644
index 000000000..57d8dc5a2
--- /dev/null
+++ b/lib/sprt/sprt_client_private.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2018, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef SPRT_CLIENT_PRIVATE_H
+#define SPRT_CLIENT_PRIVATE_H
+
+#include <stdint.h>
+
+struct svc_args {
+ u_register_t arg0;
+ u_register_t arg1;
+ u_register_t arg2;
+ u_register_t arg3;
+ u_register_t arg4;
+ u_register_t arg5;
+ u_register_t arg6;
+ u_register_t arg7;
+};
+
+/*
+ * Invoke an SVC call.
+ *
+ * The arguments to pass through the SVC call must be stored in the svc_args
+ * structure. The return values of the SVC call will be stored in the same
+ * structure (overriding the input arguments).
+ *
+ * Returns the first return value. It is equivalent to args.arg0 but is also
+ * provided as the return value for convenience.
+ */
+u_register_t sprt_client_svc(struct svc_args *args);
+
+#endif /* SPRT_CLIENT_PRIVATE_H */