#ifndef __LINUX_NET_AFUNIX_H #define __LINUX_NET_AFUNIX_H #include <linux/socket.h> #include <linux/un.h> #include <linux/mutex.h> #include <net/sock.h> void unix_inflight(struct user_struct *user, struct file *fp); void unix_notinflight(struct user_struct *user, struct file *fp); void unix_gc(void); void wait_for_unix_gc(void); struct sock *unix_get_socket(struct file *filp); struct sock *unix_peer_get(struct sock *); #define UNIX_HASH_SIZE 256 #define UNIX_HASH_BITS 8 extern unsigned int unix_tot_inflight; extern spinlock_t unix_table_lock; extern struct hlist_head unix_socket_table[2 * UNIX_HASH_SIZE]; struct unix_address { atomic_t refcnt; int len; unsigned int hash; struct sockaddr_un name[0]; }; struct unix_skb_parms { struct pid *pid; /* Skb credentials */ kuid_t uid; kgid_t gid; struct scm_fp_list *fp; /* Passed files */ #ifdef CONFIG_SECURITY_NETWORK u32 secid; /* Security ID */ #endif u32 consumed; }; #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb)) #define unix_state_lock(s) spin_lock(&unix_sk(s)->lock) #define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock) #define unix_state_lock_nested(s) \ spin_lock_nested(&unix_sk(s)->lock, \ SINGLE_DEPTH_NESTING) /* The AF_UNIX socket */ struct unix_sock { /* WARNING: sk has to be the first member */ struct sock sk; struct unix_address *addr; struct path path; struct mutex readlock; struct sock *peer; struct list_head link; atomic_long_t inflight; spinlock_t lock; unsigned char recursion_level; unsigned long gc_flags; #define UNIX_GC_CANDIDATE 0 #define UNIX_GC_MAYBE_CYCLE 1 struct socket_wq peer_wq; wait_queue_t peer_wake; };
static inline struct unix_sock *unix_sk(const struct sock *sk) { return (struct unix_sock *)sk; }Contributors
Person | Tokens | Prop | Commits | CommitProp | |
aaron conole | aaron conole | 19 | 82.61% | 1 | 33.33% |
david s. miller | david s. miller | 3 | 13.04% | 1 | 33.33% |
paul moore | paul moore | 1 | 4.35% | 1 | 33.33% |
Total | 23 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
pavel emelianov | pavel emelianov | 10 | 66.67% | 1 | 50.00% |
arnaldo carvalho de melo | arnaldo carvalho de melo | 5 | 33.33% | 1 | 50.00% |
Total | 15 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
arnaldo carvalho de melo | arnaldo carvalho de melo | 7 | 63.64% | 1 | 50.00% |
pavel emelianov | pavel emelianov | 4 | 36.36% | 1 | 50.00% |
Total | 11 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
pre-git | pre-git | 90 | 25.57% | 7 | 19.44% |
pavel emelianov | pavel emelianov | 65 | 18.47% | 4 | 11.11% |
eric dumazet | eric dumazet | 45 | 12.78% | 6 | 16.67% |
arnaldo carvalho de melo | arnaldo carvalho de melo | 42 | 11.93% | 2 | 5.56% |
david s. miller | david s. miller | 35 | 9.94% | 2 | 5.56% |
aaron conole | aaron conole | 19 | 5.40% | 1 | 2.78% |
hannes frederic sowa | hannes frederic sowa | 10 | 2.84% | 1 | 2.78% |
ingo molnar | ingo molnar | 10 | 2.84% | 2 | 5.56% |
eric w. biederman | eric w. biederman | 9 | 2.56% | 2 | 5.56% |
catherine zhang | catherine zhang | 9 | 2.56% | 2 | 5.56% |
dann frazier | dann frazier | 6 | 1.70% | 1 | 2.78% |
al viro | al viro | 3 | 0.85% | 2 | 5.56% |
rainer weikusat | rainer weikusat | 3 | 0.85% | 1 | 2.78% |
benjamin lahaise | benjamin lahaise | 3 | 0.85% | 1 | 2.78% |
miklos szeredi | miklos szeredi | 2 | 0.57% | 1 | 2.78% |
paul moore | paul moore | 1 | 0.28% | 1 | 2.78% |
Total | 352 | 100.00% | 36 | 100.00% |