L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
arm_smccc.h File Reference

ARM secure monitor call functions. More...

#include <l4/sys/types.h>
#include <l4/sys/utcb.h>
#include <l4/sys/ipc.h>
+ Include dependency graph for arm_smccc.h:

Go to the source code of this file.

Functions

l4_msgtag_t l4_arm_smccc_call (l4_cap_idx_t pfc, l4_umword_t func, l4_umword_t in0, l4_umword_t in1, l4_umword_t in2, l4_umword_t in3, l4_umword_t in4, l4_umword_t in5, l4_umword_t *out0, l4_umword_t *out1, l4_umword_t *out2, l4_umword_t *out3, l4_umword_t client_id) L4_NOTHROW
 C interface for calling the ARM secure monitor, see L4::Arm_smccc::call() for the C++ interface.
 

Detailed Description

ARM secure monitor call functions.

Definition in file arm_smccc.h.

Function Documentation

◆ l4_arm_smccc_call()

l4_msgtag_t l4_arm_smccc_call ( l4_cap_idx_t  pfc,
l4_umword_t  func,
l4_umword_t  in0,
l4_umword_t  in1,
l4_umword_t  in2,
l4_umword_t  in3,
l4_umword_t  in4,
l4_umword_t  in5,
l4_umword_t out0,
l4_umword_t out1,
l4_umword_t out2,
l4_umword_t out3,
l4_umword_t  client_id 
)
inline

C interface for calling the ARM secure monitor, see L4::Arm_smccc::call() for the C++ interface.

Parameters
pfcCapability of the SMC kernel object.

The input parameters consist of a function identifier, 6 arguments and a client id. Results are returned in 4 output parameters.

Parameters
funcFunction identifier.
  • Bit 31 has to be set: This marks the call as Fast Call. Yielding Calls (bit 31 unset) are rejected by the kernel.
  • Bit 30 defines the calling convention:
  • Bit 30 == 1: 64-bit calling convention.
  • Bit 30 == 0: 32-bit calling convention.
  • Bits 24..29 determine the service call ID. Only service IDs >= 0x30000000 (Trusted Application Calls and Trusted OS Calls) are allowed.
[in]in0First input parameter.
[in]in1Second input parameter.
[in]in2Third input parameter.
[in]in3Fourth input parameter.
[in]in4Fifth input parameter.
[in]in5Sixth input parameter.
[out]out0First output parameter.
[out]out1Second output parameter.
[out]out2Third output parameter.
[out]out3Fourth output parameter.
[in]client_idClient ID. According to the specification, this value might be ignored by certain functions.
Return values
-L4_ENOSYSEither bit 31 of the function call not set or service ID < 0x30000000.
-L4_EINVALInvalid number of parameters.
<0Other L4 error.
0Success.

Definition at line 43 of file arm_smccc.h.

References l4_utcb().

+ Here is the call graph for this function: