Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sip_svc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022-2023, Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_SIP_SVC_H_
8#define ZEPHYR_INCLUDE_SIP_SVC_H_
9
43#include <zephyr/kernel.h>
46
47#define SIP_SVC_CLIENT_ST_INVALID 0
48#define SIP_SVC_CLIENT_ST_IDLE 1
49#define SIP_SVC_CLIENT_ST_OPEN 2
50#define SIP_SVC_CLIENT_ST_ABORT 3
51
59typedef void (*sip_svc_cb_fn)(uint32_t c_token, struct sip_svc_response *res);
60
78
95int sip_svc_unregister(void *ctrl, uint32_t c_token);
96
119int sip_svc_open(void *ctrl, uint32_t c_token, k_timeout_t k_timeout);
120
135int sip_svc_close(void *ctrl, uint32_t c_token, struct sip_svc_request *pre_close_req);
136
163int sip_svc_send(void *ctrl, uint32_t c_token, struct sip_svc_request *req, sip_svc_cb_fn cb);
164
176void *sip_svc_get_priv_data(void *ctrl, uint32_t c_token);
177
186void *sip_svc_get_controller(char *method);
187
188#endif /* ZEPHYR_INCLUDE_SIP_SVC_H_ */
Public kernel APIs.
void * sip_svc_get_controller(char *method)
get the ARM SiP service handle
void(* sip_svc_cb_fn)(uint32_t c_token, struct sip_svc_response *res)
ARM sip service callback function prototype for response after completion.
Definition sip_svc.h:59
void * sip_svc_get_priv_data(void *ctrl, uint32_t c_token)
Get the address pointer to the client private data.
uint32_t sip_svc_register(void *ctrl, void *priv_data)
Register a client on ARM SiP service.
int sip_svc_unregister(void *ctrl, uint32_t c_token)
Unregister a client on ARM SiP service.
int sip_svc_close(void *ctrl, uint32_t c_token, struct sip_svc_request *pre_close_req)
Client requests to close the channel on ARM SiP services.
int sip_svc_open(void *ctrl, uint32_t c_token, k_timeout_t k_timeout)
Client requests to open a channel on ARM SiP service.
int sip_svc_send(void *ctrl, uint32_t c_token, struct sip_svc_request *req, sip_svc_cb_fn cb)
Client requests to send a SMC/HVC call to EL3/EL2.
Arm SiP services communication protocol between service provider and client.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Kernel timeout type.
Definition sys_clock.h:65
SiP Service communication protocol request format.
Definition sip_svc_proto.h:133
SiP Services service communication protocol response format.
Definition sip_svc_proto.h:177
void * priv_data
Definition sip_svc_proto.h:185