Zephyr API
4.4.99
A Scalable Open Source RTOS
Toggle main menu visibility
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_SIP_SVC_H_
8
#define ZEPHYR_INCLUDE_SIP_SVC_SIP_SVC_H_
9
42
43
#include <
zephyr/kernel.h
>
44
#include <zephyr/arch/arm64/arm-smccc.h>
45
#include <
zephyr/drivers/sip_svc/sip_svc_proto.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
59
typedef
void (*
sip_svc_cb_fn
)(
uint32_t
c_token,
struct
sip_svc_response
*res);
60
77
uint32_t
sip_svc_register
(
void
*ctrl,
void
*
priv_data
);
78
95
int
sip_svc_unregister
(
void
*ctrl,
uint32_t
c_token);
96
119
int
sip_svc_open
(
void
*ctrl,
uint32_t
c_token,
k_timeout_t
k_timeout);
120
135
int
sip_svc_close
(
void
*ctrl,
uint32_t
c_token,
struct
sip_svc_request
*pre_close_req);
136
163
int
sip_svc_send
(
void
*ctrl,
uint32_t
c_token,
struct
sip_svc_request
*req,
sip_svc_cb_fn
cb);
164
176
void
*
sip_svc_get_priv_data
(
void
*ctrl,
uint32_t
c_token);
177
186
void
*
sip_svc_get_controller
(
char
*method);
187
188
#endif
/* ZEPHYR_INCLUDE_SIP_SVC_SIP_SVC_H_ */
kernel.h
Public kernel APIs.
sip_svc_get_controller
void * sip_svc_get_controller(char *method)
get the ARM SiP service handle
sip_svc_cb_fn
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
sip_svc_get_priv_data
void * sip_svc_get_priv_data(void *ctrl, uint32_t c_token)
Get the address pointer to the client private data.
sip_svc_register
uint32_t sip_svc_register(void *ctrl, void *priv_data)
Register a client on ARM SiP service.
sip_svc_unregister
int sip_svc_unregister(void *ctrl, uint32_t c_token)
Unregister a client on ARM SiP service.
sip_svc_close
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.
sip_svc_open
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.
sip_svc_send
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.
sip_svc_proto.h
Arm SiP services communication protocol between service provider and client.
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
k_timeout_t
Kernel timeout type.
Definition
clock.h:65
sip_svc_request
SiP Service communication protocol request format.
Definition
sip_svc_proto.h:133
sip_svc_response
SiP Services service communication protocol response format.
Definition
sip_svc_proto.h:177
sip_svc_response::priv_data
void * priv_data
Definition
sip_svc_proto.h:185
zephyr
sip_svc
sip_svc.h
Generated on
for Zephyr API by
1.17.0