inet_frag.h

来自「linux 内核源代码」· C头文件 代码 · 共 68 行

H
68
字号
#ifndef __NET_FRAG_H__#define __NET_FRAG_H__struct inet_frag_queue {	struct hlist_node	list;	struct list_head	lru_list;   /* lru list member */	spinlock_t		lock;	atomic_t		refcnt;	struct timer_list	timer;      /* when will this queue expire? */	struct sk_buff		*fragments; /* list of received fragments */	ktime_t			stamp;	int			len;        /* total length of orig datagram */	int			meat;	__u8			last_in;    /* first/last segment arrived? */#define COMPLETE		4#define FIRST_IN		2#define LAST_IN			1};#define INETFRAGS_HASHSZ		64struct inet_frags_ctl {	int high_thresh;	int low_thresh;	int timeout;	int secret_interval;};struct inet_frags {	struct list_head	lru_list;	struct hlist_head	hash[INETFRAGS_HASHSZ];	rwlock_t		lock;	u32			rnd;	int			nqueues;	int			qsize;	atomic_t		mem;	struct timer_list	secret_timer;	struct inet_frags_ctl	*ctl;	unsigned int		(*hashfn)(struct inet_frag_queue *);	void			(*constructor)(struct inet_frag_queue *q,						void *arg);	void			(*destructor)(struct inet_frag_queue *);	void			(*skb_free)(struct sk_buff *);	int			(*match)(struct inet_frag_queue *q,						void *arg);	void			(*frag_expire)(unsigned long data);};void inet_frags_init(struct inet_frags *);void inet_frags_fini(struct inet_frags *);void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f);void inet_frag_destroy(struct inet_frag_queue *q,				struct inet_frags *f, int *work);int inet_frag_evictor(struct inet_frags *f);struct inet_frag_queue *inet_frag_find(struct inet_frags *f, void *key,		unsigned int hash);static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f){	if (atomic_dec_and_test(&q->refcnt))		inet_frag_destroy(q, f, NULL);}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?