Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
gicv3_its.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 BayLibre, SAS
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
16#ifndef ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_
17#define ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_
18
19typedef unsigned int (*its_api_alloc_intid_t)(const struct device *dev);
20typedef int (*its_api_setup_deviceid_t)(const struct device *dev, uint32_t device_id,
21 unsigned int nites);
22typedef int (*its_api_map_intid_t)(const struct device *dev, uint32_t device_id,
23 uint32_t event_id, unsigned int intid);
24typedef int (*its_api_send_int_t)(const struct device *dev, uint32_t device_id, uint32_t event_id);
25
26__subsystem struct its_driver_api {
31};
32
33static inline int its_alloc_intid(const struct device *dev)
34{
35 const struct its_driver_api *api =
36 (const struct its_driver_api *)dev->api;
37
38 return api->alloc_intid(dev);
39}
40
41static inline int its_setup_deviceid(const struct device *dev, uint32_t device_id,
42 unsigned int nites)
43{
44 const struct its_driver_api *api =
45 (const struct its_driver_api *)dev->api;
46
47 return api->setup_deviceid(dev, device_id, nites);
48}
49
50static inline int its_map_intid(const struct device *dev, uint32_t device_id,
51 uint32_t event_id, unsigned int intid)
52{
53 const struct its_driver_api *api =
54 (const struct its_driver_api *)dev->api;
55
56 return api->map_intid(dev, device_id, event_id, intid);
57}
58
59static inline int its_send_int(const struct device *dev, uint32_t device_id, uint32_t event_id)
60{
61 const struct its_driver_api *api =
62 (const struct its_driver_api *)dev->api;
63
64 return api->send_int(dev, device_id, event_id);
65}
66
67#endif /* ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_ */
static int its_setup_deviceid(const struct device *dev, uint32_t device_id, unsigned int nites)
Definition: gicv3_its.h:41
int(* its_api_map_intid_t)(const struct device *dev, uint32_t device_id, uint32_t event_id, unsigned int intid)
Definition: gicv3_its.h:22
int(* its_api_send_int_t)(const struct device *dev, uint32_t device_id, uint32_t event_id)
Definition: gicv3_its.h:24
int(* its_api_setup_deviceid_t)(const struct device *dev, uint32_t device_id, unsigned int nites)
Definition: gicv3_its.h:20
unsigned int(* its_api_alloc_intid_t)(const struct device *dev)
Definition: gicv3_its.h:19
static int its_alloc_intid(const struct device *dev)
Definition: gicv3_its.h:33
static int its_send_int(const struct device *dev, uint32_t device_id, uint32_t event_id)
Definition: gicv3_its.h:59
static int its_map_intid(const struct device *dev, uint32_t device_id, uint32_t event_id, unsigned int intid)
Definition: gicv3_its.h:50
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
Runtime device structure (in ROM) per driver instance.
Definition: device.h:450
const void * api
Definition: device.h:456
Definition: gicv3_its.h:26
its_api_map_intid_t map_intid
Definition: gicv3_its.h:29
its_api_setup_deviceid_t setup_deviceid
Definition: gicv3_its.h:28
its_api_send_int_t send_int
Definition: gicv3_its.h:30
its_api_alloc_intid_t alloc_intid
Definition: gicv3_its.h:27