summaryrefslogtreecommitdiff
path: root/pfinet/linux/skbuff.h
diff options
context:
space:
mode:
Diffstat (limited to 'pfinet/linux/skbuff.h')
-rw-r--r--pfinet/linux/skbuff.h286
1 files changed, 0 insertions, 286 deletions
diff --git a/pfinet/linux/skbuff.h b/pfinet/linux/skbuff.h
deleted file mode 100644
index 817f89d7..00000000
--- a/pfinet/linux/skbuff.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Definitions for the 'struct sk_buff' memory handlers.
- *
- * Authors:
- * Alan Cox, <gw4pts@gw4pts.ampr.org>
- * Florian La Roche, <rzsfl@rz.uni-sb.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-#ifndef _LINUX_SKBUFF_H
-#define _LINUX_SKBUFF_H
-#include <linux/malloc.h>
-#include <linux/wait.h>
-#include <linux/time.h>
-#include <linux/config.h>
-
-#undef CONFIG_SKB_CHECK
-
-#define HAVE_ALLOC_SKB /* For the drivers to know */
-
-
-#define FREE_READ 1
-#define FREE_WRITE 0
-
-
-struct sk_buff_head {
- struct sk_buff * volatile next;
- struct sk_buff * volatile prev;
-#if CONFIG_SKB_CHECK
- int magic_debug_cookie;
-#endif
-};
-
-
-struct sk_buff {
- struct sk_buff * volatile next;
- struct sk_buff * volatile prev;
-#if CONFIG_SKB_CHECK
- int magic_debug_cookie;
-#endif
- struct sk_buff * volatile link3;
- struct sock *sk;
- volatile unsigned long when; /* used to compute rtt's */
- struct timeval stamp;
- struct device *dev;
- struct sk_buff *mem_addr;
- union {
- struct tcphdr *th;
- struct ethhdr *eth;
- struct iphdr *iph;
- struct udphdr *uh;
- unsigned char *raw;
- unsigned long seq;
- } h;
- struct iphdr *ip_hdr; /* For IPPROTO_RAW */
- unsigned long mem_len;
- unsigned long len;
- unsigned long fraglen;
- struct sk_buff *fraglist; /* Fragment list */
- unsigned long truesize;
- unsigned long saddr;
- unsigned long daddr;
- unsigned long raddr; /* next hop addr */
- volatile char acked,
- used,
- free,
- arp;
- unsigned char tries,lock,localroute,pkt_type;
-#define PACKET_HOST 0 /* To us */
-#define PACKET_BROADCAST 1
-#define PACKET_MULTICAST 2
-#define PACKET_OTHERHOST 3 /* Unmatched promiscuous */
- unsigned short users; /* User count - see datagram.c (and soon seqpacket.c/stream.c) */
- unsigned short pkt_class; /* For drivers that need to cache the packet type with the skbuff (new PPP) */
-#ifdef CONFIG_SLAVE_BALANCING
- unsigned short in_dev_queue;
-#endif
- unsigned long padding[0];
- unsigned char data[0];
-};
-
-#define SK_WMEM_MAX 32767
-#define SK_RMEM_MAX 32767
-
-#ifdef CONFIG_SKB_CHECK
-#define SK_FREED_SKB 0x0DE2C0DE
-#define SK_GOOD_SKB 0xDEC0DED1
-#define SK_HEAD_SKB 0x12231298
-#endif
-
-#ifdef __KERNEL__
-/*
- * Handling routines are only of interest to the kernel
- */
-
-#include <asm/system.h>
-
-#if 0
-extern void print_skb(struct sk_buff *);
-#endif
-extern void kfree_skb(struct sk_buff *skb, int rw);
-extern void skb_queue_head_init(struct sk_buff_head *list);
-extern void skb_queue_head(struct sk_buff_head *list,struct sk_buff *buf);
-extern void skb_queue_tail(struct sk_buff_head *list,struct sk_buff *buf);
-extern struct sk_buff * skb_dequeue(struct sk_buff_head *list);
-extern void skb_insert(struct sk_buff *old,struct sk_buff *newsk);
-extern void skb_append(struct sk_buff *old,struct sk_buff *newsk);
-extern void skb_unlink(struct sk_buff *buf);
-extern struct sk_buff * skb_peek_copy(struct sk_buff_head *list);
-extern struct sk_buff * alloc_skb(unsigned int size, int priority);
-extern void kfree_skbmem(struct sk_buff *skb, unsigned size);
-extern struct sk_buff * skb_clone(struct sk_buff *skb, int priority);
-extern void skb_device_lock(struct sk_buff *skb);
-extern void skb_device_unlock(struct sk_buff *skb);
-extern void dev_kfree_skb(struct sk_buff *skb, int mode);
-extern int skb_device_locked(struct sk_buff *skb);
-/*
- * Peek an sk_buff. Unlike most other operations you _MUST_
- * be careful with this one. A peek leaves the buffer on the
- * list and someone else may run off with it. For an interrupt
- * type system cli() peek the buffer copy the data and sti();
- */
-static __inline__ struct sk_buff *skb_peek(struct sk_buff_head *list_)
-{
- struct sk_buff *list = (struct sk_buff *)list_;
- return (list->next != list)? list->next : NULL;
-}
-
-#if CONFIG_SKB_CHECK
-extern int skb_check(struct sk_buff *skb,int,int, char *);
-#define IS_SKB(skb) skb_check((skb), 0, __LINE__,__FILE__)
-#define IS_SKB_HEAD(skb) skb_check((skb), 1, __LINE__,__FILE__)
-#else
-#define IS_SKB(skb)
-#define IS_SKB_HEAD(skb)
-
-extern __inline__ void skb_queue_head_init(struct sk_buff_head *list)
-{
- list->prev = (struct sk_buff *)list;
- list->next = (struct sk_buff *)list;
-}
-
-/*
- * Insert an sk_buff at the start of a list.
- */
-
-extern __inline__ void skb_queue_head(struct sk_buff_head *list_,struct sk_buff *newsk)
-{
- unsigned long flags;
- struct sk_buff *list = (struct sk_buff *)list_;
-
- save_flags(flags);
- cli();
- newsk->next = list->next;
- newsk->prev = list;
- newsk->next->prev = newsk;
- newsk->prev->next = newsk;
- restore_flags(flags);
-}
-
-/*
- * Insert an sk_buff at the end of a list.
- */
-
-extern __inline__ void skb_queue_tail(struct sk_buff_head *list_, struct sk_buff *newsk)
-{
- unsigned long flags;
- struct sk_buff *list = (struct sk_buff *)list_;
-
- save_flags(flags);
- cli();
-
- newsk->next = list;
- newsk->prev = list->prev;
-
- newsk->next->prev = newsk;
- newsk->prev->next = newsk;
-
- restore_flags(flags);
-}
-
-/*
- * Remove an sk_buff from a list. This routine is also interrupt safe
- * so you can grab read and free buffers as another process adds them.
- */
-
-extern __inline__ struct sk_buff *skb_dequeue(struct sk_buff_head *list_)
-{
- long flags;
- struct sk_buff *result;
- struct sk_buff *list = (struct sk_buff *)list_;
-
- save_flags(flags);
- cli();
-
- result = list->next;
- if (result == list) {
- restore_flags(flags);
- return NULL;
- }
-
- result->next->prev = list;
- list->next = result->next;
-
- result->next = NULL;
- result->prev = NULL;
-
- restore_flags(flags);
-
- return result;
-}
-
-/*
- * Insert a packet before another one in a list.
- */
-
-extern __inline__ void skb_insert(struct sk_buff *old, struct sk_buff *newsk)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
- newsk->next = old;
- newsk->prev = old->prev;
- old->prev = newsk;
- newsk->prev->next = newsk;
-
- restore_flags(flags);
-}
-
-/*
- * Place a packet after a given packet in a list.
- */
-
-extern __inline__ void skb_append(struct sk_buff *old, struct sk_buff *newsk)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
-
- newsk->prev = old;
- newsk->next = old->next;
- newsk->next->prev = newsk;
- old->next = newsk;
-
- restore_flags(flags);
-}
-
-/*
- * Remove an sk_buff from its list. Works even without knowing the list it
- * is sitting on, which can be handy at times. It also means that THE LIST
- * MUST EXIST when you unlink. Thus a list must have its contents unlinked
- * _FIRST_.
- */
-
-extern __inline__ void skb_unlink(struct sk_buff *skb)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
-
- if(skb->prev && skb->next)
- {
- skb->next->prev = skb->prev;
- skb->prev->next = skb->next;
- skb->next = NULL;
- skb->prev = NULL;
- }
- restore_flags(flags);
-}
-
-#endif
-
-extern struct sk_buff * skb_recv_datagram(struct sock *sk,unsigned flags,int noblock, int *err);
-extern int datagram_select(struct sock *sk, int sel_type, select_table *wait);
-extern void skb_copy_datagram(struct sk_buff *from, int offset, char *to,int size);
-extern void skb_free_datagram(struct sk_buff *skb);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SKBUFF_H */