LCOV - code coverage report
Current view: top level - include/net - raw.h (source / functions) Hit Total Coverage
Test: gcov_data_raspi2_qemu_modules_combined.info Lines: 1 2 50.0 %
Date: 2020-09-30 20:25:01 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0-or-later */
       2                 :            : /*
       3                 :            :  * INET         An implementation of the TCP/IP protocol suite for the LINUX
       4                 :            :  *              operating system.  INET is implemented using the  BSD Socket
       5                 :            :  *              interface as the means of communication with the user level.
       6                 :            :  *
       7                 :            :  *              Definitions for the RAW-IP module.
       8                 :            :  *
       9                 :            :  * Version:     @(#)raw.h       1.0.2   05/07/93
      10                 :            :  *
      11                 :            :  * Author:      Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
      12                 :            :  */
      13                 :            : #ifndef _RAW_H
      14                 :            : #define _RAW_H
      15                 :            : 
      16                 :            : #include <net/inet_sock.h>
      17                 :            : #include <net/protocol.h>
      18                 :            : #include <linux/icmp.h>
      19                 :            : 
      20                 :            : extern struct proto raw_prot;
      21                 :            : 
      22                 :            : extern struct raw_hashinfo raw_v4_hashinfo;
      23                 :            : struct sock *__raw_v4_lookup(struct net *net, struct sock *sk,
      24                 :            :                              unsigned short num, __be32 raddr,
      25                 :            :                              __be32 laddr, int dif, int sdif);
      26                 :            : 
      27                 :            : int raw_abort(struct sock *sk, int err);
      28                 :            : void raw_icmp_error(struct sk_buff *, int, u32);
      29                 :            : int raw_local_deliver(struct sk_buff *, int);
      30                 :            : 
      31                 :            : int raw_rcv(struct sock *, struct sk_buff *);
      32                 :            : 
      33                 :            : #define RAW_HTABLE_SIZE MAX_INET_PROTOS
      34                 :            : 
      35                 :            : struct raw_hashinfo {
      36                 :            :         rwlock_t lock;
      37                 :            :         struct hlist_head ht[RAW_HTABLE_SIZE];
      38                 :            : };
      39                 :            : 
      40                 :            : #ifdef CONFIG_PROC_FS
      41                 :            : int raw_proc_init(void);
      42                 :            : void raw_proc_exit(void);
      43                 :            : 
      44                 :            : struct raw_iter_state {
      45                 :            :         struct seq_net_private p;
      46                 :            :         int bucket;
      47                 :            : };
      48                 :            : 
      49                 :            : static inline struct raw_iter_state *raw_seq_private(struct seq_file *seq)
      50                 :            : {
      51                 :          0 :         return seq->private;
      52                 :            : }
      53                 :            : void *raw_seq_start(struct seq_file *seq, loff_t *pos);
      54                 :            : void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos);
      55                 :            : void raw_seq_stop(struct seq_file *seq, void *v);
      56                 :            : #endif
      57                 :            : 
      58                 :            : int raw_hash_sk(struct sock *sk);
      59                 :            : void raw_unhash_sk(struct sock *sk);
      60                 :            : void raw_init(void);
      61                 :            : 
      62                 :            : struct raw_sock {
      63                 :            :         /* inet_sock has to be the first member */
      64                 :            :         struct inet_sock   inet;
      65                 :            :         struct icmp_filter filter;
      66                 :            :         u32                ipmr_table;
      67                 :            : };
      68                 :            : 
      69                 :            : static inline struct raw_sock *raw_sk(const struct sock *sk)
      70                 :            : {
      71                 :            :         return (struct raw_sock *)sk;
      72                 :            : }
      73                 :            : 
      74                 :            : static inline bool raw_sk_bound_dev_eq(struct net *net, int bound_dev_if,
      75                 :            :                                        int dif, int sdif)
      76                 :            : {
      77                 :            : #if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV)
      78                 :       1706 :         return inet_bound_dev_eq(!!net->ipv4.sysctl_raw_l3mdev_accept,
      79                 :            :                                  bound_dev_if, dif, sdif);
      80                 :            : #else
      81                 :            :         return inet_bound_dev_eq(true, bound_dev_if, dif, sdif);
      82                 :            : #endif
      83                 :            : }
      84                 :            : 
      85                 :            : #endif  /* _RAW_H */

Generated by: LCOV version 1.14