LCOV - code coverage report
Current view: top level - zephyr/drivers/interrupt_controller - gicv3_its.h Coverage Total Hit
Test: new.info Lines: 5.9 % 17 1
Test Date: 2025-09-05 22:20:39

            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 2.0-1