L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
L4::Arm_smccc Class Reference

Wrapper for function calls that follow the ARM SMC/HVC calling convention. More...

#include <arm_smccc>

Inherits L4::Kobject_0t< Derived, PROTO, S_DEMAND >.

+ Collaboration diagram for L4::Arm_smccc:

Public Member Functions

l4_msgtag_t call (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)
 ARM SMC/HVC function call.
 

Detailed Description

Wrapper for function calls that follow the ARM SMC/HVC calling convention.

See l4_arm_smccc_call() for the corresponding C interface.

Definition at line 24 of file arm_smccc.

Member Function Documentation

◆ call()

l4_msgtag_t L4::Arm_smccc::call ( 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 
)

ARM SMC/HVC function call.

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.

The documentation for this class was generated from the following file: