8 #ifndef __PSA_SERVICE_H__
9 #define __PSA_SERVICE_H__
26 #define PSA_POLL (0x00000000u)
31 #define PSA_BLOCK (0x80000000u)
36 #define PSA_WAIT_ANY (0xFFFFFFFFu)
41 #define PSA_DOORBELL (0x00000008u)
45 #define PSA_IPC_CONNECT (-1)
47 #define PSA_IPC_DISCONNECT (-2)
93 psa_signal_t
psa_wait(psa_signal_t signal_mask, uint32_t timeout);
156 void *buffer,
size_t num_bytes);
203 const void *buffer,
size_t num_bytes);
253 void psa_eoi(psa_signal_t irq_signal);
void psa_clear(void)
Clear the PSA_DOORBELL signal.
void psa_set_rhandle(psa_handle_t msg_handle, void *rhandle)
Associate some RoT Service private data with a client connection.
size_t psa_skip(psa_handle_t msg_handle, uint32_t invec_idx, size_t num_bytes)
Skip over part of a client input vector.
Standard error codes for the SPM and RoT Services.
size_t psa_read(psa_handle_t msg_handle, uint32_t invec_idx, void *buffer, size_t num_bytes)
Read a message parameter or part of a message parameter from a client input vector.
void psa_panic(void)
Terminate execution within the calling Secure Partition and will not return.
size_t in_size[PSA_MAX_IOVEC]
struct psa_msg_t psa_msg_t
void psa_write(psa_handle_t msg_handle, uint32_t outvec_idx, const void *buffer, size_t num_bytes)
Write a message response to a client output vector.
void psa_reply(psa_handle_t msg_handle, psa_status_t status)
Complete handling of a specific message and unblock the client.
psa_signal_t psa_wait(psa_signal_t signal_mask, uint32_t timeout)
Return the Secure Partition interrupt signals that have been asserted from a subset of signals provid...
void psa_eoi(psa_signal_t irq_signal)
Inform the SPM that an interrupt has been handled (end of interrupt).
size_t out_size[PSA_MAX_IOVEC]
psa_status_t psa_get(psa_signal_t signal, psa_msg_t *msg)
Retrieve the message which corresponds to a given RoT Service signal and remove the message from the ...
int32_t psa_status_t
Function return status.
void psa_notify(int32_t partition_id)
Send a PSA_DOORBELL signal to a specific Secure Partition.