summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg/Include
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-26 10:59:50 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-26 10:59:50 +0000
commiteac42a514b8bfd5d6273d673d8d24a424b579d1c (patch)
treee0bd754fabf1f427003eeed5187a322b6aec07fd /ArmPlatformPkg/Include
parenta12da33bc1cd7a29f3333b94467eb3803bf4d927 (diff)
downloadedk2-platforms-eac42a514b8bfd5d6273d673d8d24a424b579d1c.tar.xz
ArmPlatformPkg/ArmSmcLib: Added helper library to make SMC call to the Secure World
This library adds C-wrapper around the SMC instruction and allows to pass parameters to the Secure World. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13133 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPlatformPkg/Include')
-rw-r--r--ArmPlatformPkg/Include/Library/ArmSmcLib.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/ArmPlatformPkg/Include/Library/ArmSmcLib.h b/ArmPlatformPkg/Include/Library/ArmSmcLib.h
new file mode 100644
index 0000000000..ff946f2dea
--- /dev/null
+++ b/ArmPlatformPkg/Include/Library/ArmSmcLib.h
@@ -0,0 +1,44 @@
+/** @file
+*
+* Copyright (c) 2012, ARM Limited. All rights reserved.
+*
+* This program and the accompanying materials
+* are licensed and made available under the terms and conditions of the BSD License
+* which accompanies this distribution. The full text of the license may be found at
+* http://opensource.org/licenses/bsd-license.php
+*
+* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#ifndef __ARM_SMC_LIB__
+#define __ARM_SMC_LIB__
+
+VOID
+ArmCallSmc (
+ IN OUT UINTN *Rx
+ );
+
+VOID
+ArmCallSmcArg1 (
+ IN OUT UINTN *Rx,
+ IN OUT UINTN *Arg1
+ );
+
+VOID
+ArmCallSmcArg2 (
+ IN OUT UINTN *Rx,
+ IN OUT UINTN *Arg1,
+ IN OUT UINTN *Arg2
+ );
+
+VOID
+ArmCallSmcArg3 (
+ IN OUT UINTN *Rx,
+ IN OUT UINTN *Arg1,
+ IN OUT UINTN *Arg2,
+ IN OUT UINTN *Arg3
+ );
+
+#endif