LCOV - code coverage report
Current view: top level - zephyr/net - canbus.h Hit Total Coverage
Test: new.info Lines: 7 7 100.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2019 Intel Corporation
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /** @file
       8             :  *  @brief CAN bus socket API definitions.
       9             :  */
      10             : 
      11             : #ifndef ZEPHYR_INCLUDE_NET_CANBUS_H_
      12             : #define ZEPHYR_INCLUDE_NET_CANBUS_H_
      13             : 
      14             : #include <zephyr/types.h>
      15             : #include <zephyr/net/net_ip.h>
      16             : #include <zephyr/net/net_if.h>
      17             : #include <zephyr/drivers/can.h>
      18             : 
      19             : #ifdef __cplusplus
      20             : extern "C" {
      21             : #endif
      22             : 
      23             : /**
      24             :  * CAN L2 network driver API.
      25             :  */
      26           1 : struct canbus_api {
      27             :         /**
      28             :          * The net_if_api must be placed in first position in this
      29             :          * struct so that we are compatible with network interface API.
      30             :          */
      31           1 :         struct net_if_api iface_api;
      32             : 
      33             :         /** Send a CAN packet by socket */
      34           1 :         int (*send)(const struct device *dev, struct net_pkt *pkt);
      35             : 
      36             :         /** Close the related CAN socket */
      37           1 :         void (*close)(const struct device *dev, int filter_id);
      38             : 
      39             :         /** Set socket CAN option */
      40           1 :         int (*setsockopt)(const struct device *dev, void *obj, int level,
      41             :                           int optname,
      42             :                           const void *optval, socklen_t optlen);
      43             : 
      44             :         /** Get socket CAN option */
      45           1 :         int (*getsockopt)(const struct device *dev, void *obj, int level,
      46             :                           int optname,
      47             :                           const void *optval, socklen_t *optlen);
      48             : };
      49             : 
      50             : /* Make sure that the network interface API is properly setup inside
      51             :  * CANBUS API struct (it is the first one).
      52             :  */
      53             : BUILD_ASSERT(offsetof(struct canbus_api, iface_api) == 0);
      54             : 
      55             : #ifdef __cplusplus
      56             : }
      57             : #endif
      58             : 
      59             : #endif /* ZEPHYR_INCLUDE_NET_CANBUS_H_ */

Generated by: LCOV version 1.14