# SMC invoke
Source: [https://docs.qualcomm.com/doc/80-70014-11/topic/smcinvoke.html](https://docs.qualcomm.com/doc/80-70014-11/topic/smcinvoke.html)
The secure monitor call (SMC) invoke is used to expose the services and interfaces
implemented in Qualcomm TEE to Linux clients. It provides identification information about
the requesting processes to Qualcomm TEE.
The SMC invoke is an object-oriented, capability-based framework that enables
communication between Linux clients, TZ, and the TZ applications, which use mini-kernel
(MINK) invoke objects.
During the SMC invoke process, the following objects are involved:
Table : Objects – SMC invoke
| Object | Owner environment | Description |
| --- | --- | --- |
| Remote objects | TZ execution environment | Linux obtains references to remote objects through the invoke
operations. For example, an AppLoader, which is a remote object. |
| Callback objects | Linux execution environment | Linux sends references of the required callback objects through the
invoke operations to TZ, which may invoke these objects as
needed. |
| Memory objects | Linux execution environment | These memory objects are useful for efficiently sharing large buffers
between TZ and Linux. |
The figure shows the SMC invoke architecture:

The SMC invoke has the following components:
- Linux kernel:
The SMC invoke driver in the kernel is responsible for transporting
user space requests between the TZ and the Linux user space clients. It exposes
the following input/output controls (IOCTL).
- `SMCINVOKE_IOCTL_INVOKE_REQ`
- `SMCINVOKE_IOCTL_ACCEPT_REQ`
- `SMCINVOKE_IOCTL_SERVER_REQ`
- `SMCINVOKE_IOCTL_ACK_LOCAL_OBJ`
- Linux user space:
The SMC invoke in the user space includes
libminkdescriptor.so and the SSGTZD daemon.
Table : SMC invoke modules
| Module | Description |
| --- | --- |
| `SMCInvoke client` | This client communicates with TAs in Qualcomm TEE through the SMC
invoke driver. |
| `TA client` | This client communicates with TZ applications through the SMC invoke
driver. |
| `Libminkdescriptor` |
libminkdescriptor to communicate with the