Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
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
15
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);
25typedef uint32_t (*its_api_get_msi_addr_t)(const struct device *dev);
26
34
35static inline int its_alloc_intid(const struct device *dev)
36{
37 return DEVICE_API_GET(its, dev)->alloc_intid(dev);
38}
39
40static inline int its_setup_deviceid(const struct device *dev, uint32_t device_id,
41 unsigned int nites)
42{
43 return DEVICE_API_GET(its, dev)->setup_deviceid(dev, device_id, nites);
44}
45
46static inline int its_map_intid(const struct device *dev, uint32_t device_id,
47 uint32_t event_id, unsigned int intid)
48{
49 return DEVICE_API_GET(its, dev)->map_intid(dev, device_id, event_id, intid);
50}
51
52static inline int its_send_int(const struct device *dev, uint32_t device_id, uint32_t event_id)
53{
54 return DEVICE_API_GET(its, dev)->send_int(dev, device_id, event_id);
55}
56
57static inline uint32_t its_get_msi_addr(const struct device *dev)
58{
59 return DEVICE_API_GET(its, dev)->get_msi_addr(dev);
60}
61
62#endif /* ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_ */
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1375
static int its_setup_deviceid(const struct device *dev, uint32_t device_id, unsigned int nites)
Definition gicv3_its.h:40
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:35
static int its_send_int(const struct device *dev, uint32_t device_id, uint32_t event_id)
Definition gicv3_its.h:52
static int its_map_intid(const struct device *dev, uint32_t device_id, uint32_t event_id, unsigned int intid)
Definition gicv3_its.h:46
uint32_t(* its_api_get_msi_addr_t)(const struct device *dev)
Definition gicv3_its.h:25
static uint32_t its_get_msi_addr(const struct device *dev)
Definition gicv3_its.h:57
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Definition gicv3_its.h:27
its_api_map_intid_t map_intid
Definition gicv3_its.h:30
its_api_setup_deviceid_t setup_deviceid
Definition gicv3_its.h:29
its_api_get_msi_addr_t get_msi_addr
Definition gicv3_its.h:32
its_api_send_int_t send_int
Definition gicv3_its.h:31
its_api_alloc_intid_t alloc_intid
Definition gicv3_its.h:28