LCOV - code coverage report
Current view: top level - zephyr/drivers/interrupt_controller - gicv3_its.h Hit Total Coverage
Test: new.info Lines: 1 17 5.9 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2021 BayLibre, SAS
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief Driver for ARM Generic Interrupt Controller V3 Interrupt Translation Service
      10             :  *
      11             :  * The Generic Interrupt Controller (GIC) Interrupt Translation Service translates an input
      12             :  * EventID from a device, identified by its DeviceID, determines a corresponding INTID for
      13             :  * this input and the target Redistributor and, through this, the target PE for that INTID.
      14             :  */
      15             : 
      16             : #ifndef ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_
      17             : #define ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_
      18             : 
      19           0 : typedef unsigned int (*its_api_alloc_intid_t)(const struct device *dev);
      20           0 : typedef int (*its_api_setup_deviceid_t)(const struct device *dev, uint32_t device_id,
      21             :                                         unsigned int nites);
      22           0 : typedef int (*its_api_map_intid_t)(const struct device *dev, uint32_t device_id,
      23             :                                    uint32_t event_id, unsigned int intid);
      24           0 : typedef int (*its_api_send_int_t)(const struct device *dev, uint32_t device_id, uint32_t event_id);
      25           0 : typedef uint32_t (*its_api_get_msi_addr_t)(const struct device *dev);
      26             : 
      27           0 : __subsystem struct its_driver_api {
      28           0 :         its_api_alloc_intid_t alloc_intid;
      29           0 :         its_api_setup_deviceid_t setup_deviceid;
      30           0 :         its_api_map_intid_t map_intid;
      31           0 :         its_api_send_int_t send_int;
      32           0 :         its_api_get_msi_addr_t get_msi_addr;
      33             : };
      34             : 
      35           0 : static inline int its_alloc_intid(const struct device *dev)
      36             : {
      37             :         const struct its_driver_api *api =
      38             :                 (const struct its_driver_api *)dev->api;
      39             : 
      40             :         return api->alloc_intid(dev);
      41             : }
      42             : 
      43           0 : static inline int its_setup_deviceid(const struct device *dev, uint32_t device_id,
      44             :                                      unsigned int nites)
      45             : {
      46             :         const struct its_driver_api *api =
      47             :                 (const struct its_driver_api *)dev->api;
      48             : 
      49             :         return api->setup_deviceid(dev, device_id, nites);
      50             : }
      51             : 
      52           0 : static inline int its_map_intid(const struct device *dev, uint32_t device_id,
      53             :                                 uint32_t event_id, unsigned int intid)
      54             : {
      55             :         const struct its_driver_api *api =
      56             :                 (const struct its_driver_api *)dev->api;
      57             : 
      58             :         return api->map_intid(dev, device_id, event_id, intid);
      59             : }
      60             : 
      61           0 : static inline int its_send_int(const struct device *dev, uint32_t device_id, uint32_t event_id)
      62             : {
      63             :         const struct its_driver_api *api =
      64             :                 (const struct its_driver_api *)dev->api;
      65             : 
      66             :         return api->send_int(dev, device_id, event_id);
      67             : }
      68             : 
      69           0 : static inline uint32_t its_get_msi_addr(const struct device *dev)
      70             : {
      71             :         const struct its_driver_api *api =
      72             :                 (const struct its_driver_api *)dev->api;
      73             : 
      74             :         return api->get_msi_addr(dev);
      75             : }
      76             : 
      77             : #endif /* ZEPHYR_INCLUDE_DRIVERS_GICV3_ITS_H_ */

Generated by: LCOV version 1.14