mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 15:44:04 +02:00
ArmPkg/Include: Add ArmSvcLib header file.
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 <achin.gupta@arm.com> Signed-off-by: Supreeth Venkatesh <supreeth.venkatesh@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
parent
aed68ed6be
commit
4d163696f2
@ -39,6 +39,7 @@
|
|||||||
DefaultExceptionHandlerLib|Include/Library/DefaultExceptionHandlerLib.h
|
DefaultExceptionHandlerLib|Include/Library/DefaultExceptionHandlerLib.h
|
||||||
ArmDisassemblerLib|Include/Library/ArmDisassemblerLib.h
|
ArmDisassemblerLib|Include/Library/ArmDisassemblerLib.h
|
||||||
ArmGicArchLib|Include/Library/ArmGicArchLib.h
|
ArmGicArchLib|Include/Library/ArmGicArchLib.h
|
||||||
|
ArmSvcLib|Include/Library/ArmSvcLib.h
|
||||||
|
|
||||||
[Guids.common]
|
[Guids.common]
|
||||||
gArmTokenSpaceGuid = { 0xBB11ECFE, 0x820F, 0x4968, { 0xBB, 0xA6, 0xF7, 0x6A, 0xFE, 0x30, 0x25, 0x96 } }
|
gArmTokenSpaceGuid = { 0xBB11ECFE, 0x820F, 0x4968, { 0xBB, 0xA6, 0xF7, 0x6A, 0xFE, 0x30, 0x25, 0x96 } }
|
||||||
|
46
ArmPkg/Include/Library/ArmSvcLib.h
Normal file
46
ArmPkg/Include/Library/ArmSvcLib.h
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user