LCOV - code coverage report
Current view: top level - zephyr/devicetree - ordinals.h Coverage Total Hit
Test: new.info Lines: 100.0 % 8 8
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2020 Nordic Semiconductor ASA
       3              :  * SPDX-License-Identifier: Apache-2.0
       4              :  */
       5              : 
       6              : #ifndef ZEPHYR_INCLUDE_DEVICETREE_ORDINALS_H_
       7              : #define ZEPHYR_INCLUDE_DEVICETREE_ORDINALS_H_
       8              : 
       9              : /**
      10              :  * @file
      11              :  * @brief Devicetree node dependency ordinals
      12              :  */
      13              : 
      14              : /**
      15              :  * @defgroup devicetree-dep-ord Dependency tracking
      16              :  * @ingroup devicetree
      17              :  * @{
      18              :  */
      19              : 
      20              : /**
      21              :  * @brief Get a node's dependency ordinal
      22              :  * @param node_id Node identifier
      23              :  * @return the node's dependency ordinal as an integer literal
      24              :  */
      25            1 : #define DT_DEP_ORD(node_id) DT_CAT(node_id, _ORD)
      26              : 
      27              : /**
      28              :  * @brief Get a node's dependency ordinal in string sortable form
      29              :  * @param node_id Node identifier
      30              :  * @return the node's dependency ordinal as a zero-padded integer literal
      31              :  */
      32            1 : #define DT_DEP_ORD_STR_SORTABLE(node_id) DT_CAT(node_id, _ORD_STR_SORTABLE)
      33              : 
      34              : /**
      35              :  * @brief Get a list of dependency ordinals of a node's direct dependencies
      36              :  *
      37              :  * There is a comma after each ordinal in the expansion, **including**
      38              :  * the last one:
      39              :  *
      40              :  *     DT_REQUIRES_DEP_ORDS(my_node) // required_ord_1, ..., required_ord_n,
      41              :  *
      42              :  * The one case DT_REQUIRES_DEP_ORDS() expands to nothing is when
      43              :  * given the root node identifier @p DT_ROOT as argument. The root has
      44              :  * no direct dependencies; every other node at least depends on its
      45              :  * parent.
      46              :  *
      47              :  * @param node_id Node identifier
      48              :  * @return a list of dependency ordinals, with each ordinal followed
      49              :  *         by a comma (<tt>,</tt>), or an empty expansion
      50              :  */
      51            1 : #define DT_REQUIRES_DEP_ORDS(node_id) DT_CAT(node_id, _REQUIRES_ORDS)
      52              : 
      53              : /**
      54              :  * @brief Get a list of dependency ordinals of what depends directly on a node
      55              :  *
      56              :  * There is a comma after each ordinal in the expansion, **including**
      57              :  * the last one:
      58              :  *
      59              :  *     DT_SUPPORTS_DEP_ORDS(my_node) // supported_ord_1, ..., supported_ord_n,
      60              :  *
      61              :  * DT_SUPPORTS_DEP_ORDS() may expand to nothing. This happens when @p node_id
      62              :  * refers to a leaf node that nothing else depends on.
      63              :  *
      64              :  * @param node_id Node identifier
      65              :  * @return a list of dependency ordinals, with each ordinal followed
      66              :  *         by a comma (<tt>,</tt>), or an empty expansion
      67              :  */
      68            1 : #define DT_SUPPORTS_DEP_ORDS(node_id) DT_CAT(node_id, _SUPPORTS_ORDS)
      69              : 
      70              : /**
      71              :  * @brief Get a DT_DRV_COMPAT instance's dependency ordinal
      72              :  *
      73              :  * Equivalent to DT_DEP_ORD(DT_DRV_INST(inst)).
      74              :  *
      75              :  * @param inst instance number
      76              :  * @return The instance's dependency ordinal
      77              :  */
      78            1 : #define DT_INST_DEP_ORD(inst) DT_DEP_ORD(DT_DRV_INST(inst))
      79              : 
      80              : /**
      81              :  * @brief Get a list of dependency ordinals of a DT_DRV_COMPAT instance's
      82              :  *        direct dependencies
      83              :  *
      84              :  * Equivalent to DT_REQUIRES_DEP_ORDS(DT_DRV_INST(inst)).
      85              :  *
      86              :  * @param inst instance number
      87              :  * @return a list of dependency ordinals for the nodes the instance depends
      88              :  *         on directly
      89              :  */
      90            1 : #define DT_INST_REQUIRES_DEP_ORDS(inst) DT_REQUIRES_DEP_ORDS(DT_DRV_INST(inst))
      91              : 
      92              : /**
      93              :  * @brief Get a list of dependency ordinals of what depends directly on a
      94              :  *        DT_DRV_COMPAT instance
      95              :  *
      96              :  * Equivalent to DT_SUPPORTS_DEP_ORDS(DT_DRV_INST(inst)).
      97              :  *
      98              :  * @param inst instance number
      99              :  * @return a list of node identifiers for the nodes that depend directly
     100              :  *         on the instance
     101              :  */
     102            1 : #define DT_INST_SUPPORTS_DEP_ORDS(inst) DT_SUPPORTS_DEP_ORDS(DT_DRV_INST(inst))
     103              : 
     104              : /**
     105              :  * @}
     106              :  */
     107              : 
     108              : #endif  /* ZEPHYR_INCLUDE_DEVICETREE_ORDINALS_H_ */
        

Generated by: LCOV version 2.0-1