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