From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id 422A021ECCB23 for ; Wed, 20 Sep 2017 12:45:30 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5EC5E80D; Wed, 20 Sep 2017 12:48:36 -0700 (PDT) Received: from u201365.usa.Arm.com (bc-c3-3-14.eu.iaas.arm.com [10.6.43.238]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4AE773F483; Wed, 20 Sep 2017 12:48:35 -0700 (PDT) From: Supreeth Venkatesh To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, Supreeth Venkatesh , Achin Gupta Date: Wed, 20 Sep 2017 20:48:13 +0100 Message-Id: <20170920194813.43665-4-supreeth.venkatesh@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170920194813.43665-1-supreeth.venkatesh@arm.com> References: <20170920194813.43665-1-supreeth.venkatesh@arm.com> Subject: [Patch v2 3/3] ArmPkg/Include: Add ArmSvcLib header file. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Sep 2017 19:45:30 -0000 ArmSvcLib header file to specify the SVC arguments structure and function prototype to trigger an SVC call. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Achin Gupta Signed-off-by: Supreeth Venkatesh --- ArmPkg/Include/Library/ArmSvcLib.h | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 ArmPkg/Include/Library/ArmSvcLib.h diff --git a/ArmPkg/Include/Library/ArmSvcLib.h b/ArmPkg/Include/Library/ArmSvcLib.h new file mode 100644 index 0000000000..77a60b3679 --- /dev/null +++ b/ArmPkg/Include/Library/ArmSvcLib.h @@ -0,0 +1,46 @@ +/** @file +* +* Copyright (c) 2016 - 2017, 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_SVC_LIB__ +#define __ARM_SVC_LIB__ + +/** + * The size of the SVC arguments are different between AArch64 and AArch32. + * The native size is used for the arguments. + */ +typedef struct { + UINTN Arg0; + UINTN Arg1; + UINTN Arg2; + UINTN Arg3; + UINTN Arg4; + UINTN Arg5; + UINTN Arg6; + UINTN Arg7; +} ARM_SVC_ARGS; + +/** + Trigger an SVC call + + SVC calls can take up to 7 arguments and return up to 4 return values. + Therefore, the 4 first fields in the ARM_SVC_ARGS structure are used + for both input and output values. + +**/ +VOID +ArmCallSvc ( + IN OUT ARM_SVC_ARGS *Args + ); + +#endif -- 2.14.1