LCOV - code coverage report
Current view: top level - include/net - af_unix.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 4 4 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef __LINUX_NET_AFUNIX_H
       2             : #define __LINUX_NET_AFUNIX_H
       3             : 
       4             : #include <linux/socket.h>
       5             : #include <linux/un.h>
       6             : #include <linux/mutex.h>
       7             : #include <net/sock.h>
       8             : 
       9             : extern void unix_inflight(struct file *fp);
      10             : extern void unix_notinflight(struct file *fp);
      11             : extern void unix_gc(void);
      12             : extern void wait_for_unix_gc(void);
      13             : 
      14             : #define UNIX_HASH_SIZE  256
      15             : 
      16           1 : extern unsigned int unix_tot_inflight;
      17           1 : 
      18             : struct unix_address {
      19             :         atomic_t        refcnt;
      20             :         int             len;
      21             :         unsigned        hash;
      22             :         struct sockaddr_un name[0];
      23             : };
      24           2 : 
      25             : struct unix_skb_parms {
      26             :         struct ucred            creds;          /* Skb credentials      */
      27             :         struct scm_fp_list      *fp;            /* Passed files         */
      28             : #ifdef CONFIG_SECURITY_NETWORK
      29           1 :         u32                     secid;          /* Security ID          */
      30             : #endif
      31             : };
      32             : 
      33             : #define UNIXCB(skb)     (*(struct unix_skb_parms*)&((skb)->cb))
      34             : #define UNIXCREDS(skb)  (&UNIXCB((skb)).creds)
      35             : #define UNIXSID(skb)    (&UNIXCB((skb)).secid)
      36             : 
      37             : #define unix_state_lock(s)      spin_lock(&unix_sk(s)->lock)
      38             : #define unix_state_unlock(s)    spin_unlock(&unix_sk(s)->lock)
      39             : #define unix_state_lock_nested(s) \
      40             :                                 spin_lock_nested(&unix_sk(s)->lock, \
      41             :                                 SINGLE_DEPTH_NESTING)
      42             : 
      43             : #ifdef __KERNEL__
      44             : /* The AF_UNIX socket */
      45             : struct unix_sock {
      46             :         /* WARNING: sk has to be the first member */
      47             :         struct sock             sk;
      48             :         struct unix_address     *addr;
      49             :         struct dentry           *dentry;
      50             :         struct vfsmount         *mnt;
      51             :         struct mutex            readlock;
      52             :         struct sock             *peer;
      53             :         struct sock             *other;
      54             :         struct list_head        link;
      55             :         atomic_long_t           inflight;
      56             :         spinlock_t              lock;
      57             :         unsigned int            gc_candidate : 1;
      58             :         unsigned int            gc_maybe_cycle : 1;
      59             :         wait_queue_head_t       peer_wait;
      60             : };
      61             : #define unix_sk(__sk) ((struct unix_sock *)__sk)
      62             : 
      63             : #ifdef CONFIG_SYSCTL
      64             : extern int unix_sysctl_register(struct net *net);
      65             : extern void unix_sysctl_unregister(struct net *net);
      66             : #else
      67             : static inline int unix_sysctl_register(struct net *net) { return 0; }
      68             : static inline void unix_sysctl_unregister(struct net *net) {}
      69             : #endif
      70             : #endif
      71             : #endif

Generated by: LCOV version 1.10