^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * can in net namespaces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #ifndef __NETNS_CAN_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define __NETNS_CAN_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/spinlock.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/android_kabi.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct can_dev_rcv_lists;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct can_pkg_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct can_rcv_lists_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) struct netns_can {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #if IS_ENABLED(CONFIG_PROC_FS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) struct proc_dir_entry *proc_dir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct proc_dir_entry *pde_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct proc_dir_entry *pde_reset_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct proc_dir_entry *pde_rcvlist_all;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct proc_dir_entry *pde_rcvlist_fil;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct proc_dir_entry *pde_rcvlist_inv;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) struct proc_dir_entry *pde_rcvlist_sff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct proc_dir_entry *pde_rcvlist_eff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) struct proc_dir_entry *pde_rcvlist_err;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct proc_dir_entry *bcmproc_dir;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* receive filters subscribed for 'all' CAN devices */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) struct can_dev_rcv_lists *rx_alldev_list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) spinlock_t rcvlists_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct timer_list stattimer; /* timer for statistics update */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) struct can_pkg_stats *pkg_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct can_rcv_lists_stats *rcv_lists_stats;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) /* CAN GW per-net gateway jobs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) struct hlist_head cgw_list;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) ANDROID_KABI_RESERVE(1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #endif /* __NETNS_CAN_H__ */