summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.osdl.org>2003-09-03 18:47:07 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-09-03 18:47:07 -0700
commit155f364cc3b3b20043c35ec8e2a944cce35f1297 (patch)
tree3466a20f8882096da7e9a432d7c4053bdcd84768 /include
parentf7d85523b4f52ecdbefd9c2834d8e5474958e5a7 (diff)
parenta587017c337cc45fbb4eee26a80656af37150c19 (diff)
Merge bk://kernel.bkbits.net/davem/net-2.5
into home.osdl.org:/home/torvalds/v2.5/linux
Diffstat (limited to 'include')
-rw-r--r--include/linux/if_frad.h4
-rw-r--r--include/linux/netdevice.h4
-rw-r--r--include/net/profile.h312
3 files changed, 4 insertions, 316 deletions
diff --git a/include/linux/if_frad.h b/include/linux/if_frad.h
index 975aad03d762..3d9fc5d43803 100644
--- a/include/linux/if_frad.h
+++ b/include/linux/if_frad.h
@@ -155,9 +155,11 @@ struct frhdr
struct dlci_local
{
struct net_device_stats stats;
- struct net_device *slave;
+ struct net_device *master;
+ struct net_device *slave;
struct dlci_conf config;
int configured;
+ struct list_head list;
/* callback function */
void (*receive)(struct sk_buff *skb, struct net_device *);
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index dfc1aa47f35c..c99e53fed30e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -37,9 +37,6 @@
#ifdef __KERNEL__
#include <linux/config.h>
-#ifdef CONFIG_NET_PROFILE
-#include <net/profile.h>
-#endif
struct divert_blk;
struct vlan_group;
@@ -498,6 +495,7 @@ extern struct net_device loopback_dev; /* The loopback */
extern struct net_device *dev_base; /* All devices */
extern rwlock_t dev_base_lock; /* Device list lock */
+extern void probe_old_netdevs(void);
extern int netdev_boot_setup_add(char *name, struct ifmap *map);
extern int netdev_boot_setup_check(struct net_device *dev);
extern struct net_device *dev_getbyhwaddr(unsigned short type, char *hwaddr);
diff --git a/include/net/profile.h b/include/net/profile.h
deleted file mode 100644
index fd6a3b346990..000000000000
--- a/include/net/profile.h
+++ /dev/null
@@ -1,312 +0,0 @@
-#include <linux/config.h> /* for CONFIG_NET_PROFILE */
-#ifndef _NET_PROFILE_H_
-#define _NET_PROFILE_H_ 1
-
-#ifdef CONFIG_NET_PROFILE
-
-#include <linux/types.h>
-#include <linux/time.h>
-#include <linux/kernel.h>
-#include <asm/system.h>
-
-#ifdef CONFIG_X86_TSC
-#include <asm/msr.h>
-#endif
-
-struct net_profile_slot
-{
- char id[16];
- struct net_profile_slot *next;
- struct timeval entered;
- struct timeval accumulator;
- struct timeval irq;
- int hits;
- int active;
- int underflow;
-};
-
-extern atomic_t net_profile_active;
-extern struct timeval net_profile_adjust;
-extern void net_profile_irq_adjust(struct timeval *entered, struct timeval* leaved);
-
-#ifdef CONFIG_X86_TSC
-
-static inline void net_profile_stamp(struct timeval *pstamp)
-{
- rdtsc(pstamp->tv_usec, pstamp->tv_sec);
-}
-
-static inline void net_profile_accumulate(struct timeval *entered,
- struct timeval *leaved,
- struct timeval *acc)
-{
- __asm__ __volatile__ ("subl %2,%0\n\t"
- "sbbl %3,%1\n\t"
- "addl %4,%0\n\t"
- "adcl %5,%1\n\t"
- "subl net_profile_adjust+4,%0\n\t"
- "sbbl $0,%1\n\t"
- : "=r" (acc->tv_usec), "=r" (acc->tv_sec)
- : "g" (entered->tv_usec), "g" (entered->tv_sec),
- "g" (leaved->tv_usec), "g" (leaved->tv_sec),
- "0" (acc->tv_usec), "1" (acc->tv_sec));
-}
-
-static inline void net_profile_sub(struct timeval *sub,
- struct timeval *acc)
-{
- __asm__ __volatile__ ("subl %2,%0\n\t"
- "sbbl %3,%1\n\t"
- : "=r" (acc->tv_usec), "=r" (acc->tv_sec)
- : "g" (sub->tv_usec), "g" (sub->tv_sec),
- "0" (acc->tv_usec), "1" (acc->tv_sec));
-}
-
-static inline void net_profile_add(struct timeval *add,
- struct timeval *acc)
-{
- __asm__ __volatile__ ("addl %2,%0\n\t"
- "adcl %3,%1\n\t"
- : "=r" (acc->tv_usec), "=r" (acc->tv_sec)
- : "g" (add->tv_usec), "g" (add->tv_sec),
- "0" (acc->tv_usec), "1" (acc->tv_sec));
-}
-
-
-#elif defined (__alpha__)
-
-extern __u32 alpha_lo;
-extern long alpha_hi;
-
-/* On alpha cycle counter has only 32 bits :-( :-( */
-
-static inline void net_profile_stamp(struct timeval *pstamp)
-{
- __u32 result;
- __asm__ __volatile__ ("rpcc %0" : "r="(result));
- if (result <= alpha_lo)
- alpha_hi++;
- alpha_lo = result;
- pstamp->tv_sec = alpha_hi;
- pstamp->tv_usec = alpha_lo;
-}
-
-static inline void net_profile_accumulate(struct timeval *entered,
- struct timeval *leaved,
- struct timeval *acc)
-{
- time_t usecs = acc->tv_usec + leaved->tv_usec - entered->tv_usec
- - net_profile_adjust.tv_usec;
- time_t secs = acc->tv_sec + leaved->tv_sec - entered->tv_sec;
-
- if (usecs >= 0x100000000L) {
- usecs -= 0x100000000L;
- secs++;
- } else if (usecs < -0x100000000L) {
- usecs += 0x200000000L;
- secs -= 2;
- } else if (usecs < 0) {
- usecs += 0x100000000L;
- secs--;
- }
- acc->tv_sec = secs;
- acc->tv_usec = usecs;
-}
-
-static inline void net_profile_sub(struct timeval *entered,
- struct timeval *leaved)
-{
- time_t usecs = leaved->tv_usec - entered->tv_usec;
- time_t secs = leaved->tv_sec - entered->tv_sec;
-
- if (usecs < 0) {
- usecs += 0x100000000L;
- secs--;
- }
- leaved->tv_sec = secs;
- leaved->tv_usec = usecs;
-}
-
-static inline void net_profile_add(struct timeval *entered, struct timeval *leaved)
-{
- time_t usecs = leaved->tv_usec + entered->tv_usec;
- time_t secs = leaved->tv_sec + entered->tv_sec;
-
- if (usecs >= 0x100000000L) {
- usecs -= 0x100000000L;
- secs++;
- }
- leaved->tv_sec = secs;
- leaved->tv_usec = usecs;
-}
-
-
-#else
-
-static inline void net_profile_stamp(struct timeval *pstamp)
-{
- /* Not "fast" counterpart! On architectures without
- cpu clock "fast" routine is absolutely useless in this
- situation. do_gettimeofday still says something on slow-slow-slow
- boxes, though it eats more cpu time than the subject of
- investigation :-) :-)
- */
- do_gettimeofday(pstamp);
-}
-
-static inline void net_profile_accumulate(struct timeval *entered,
- struct timeval *leaved,
- struct timeval *acc)
-{
- time_t usecs = acc->tv_usec + leaved->tv_usec - entered->tv_usec
- - net_profile_adjust.tv_usec;
- time_t secs = acc->tv_sec + leaved->tv_sec - entered->tv_sec;
-
- if (usecs >= 1000000) {
- usecs -= 1000000;
- secs++;
- } else if (usecs < -1000000) {
- usecs += 2000000;
- secs -= 2;
- } else if (usecs < 0) {
- usecs += 1000000;
- secs--;
- }
- acc->tv_sec = secs;
- acc->tv_usec = usecs;
-}
-
-static inline void net_profile_sub(struct timeval *entered,
- struct timeval *leaved)
-{
- time_t usecs = leaved->tv_usec - entered->tv_usec;
- time_t secs = leaved->tv_sec - entered->tv_sec;
-
- if (usecs < 0) {
- usecs += 1000000;
- secs--;
- }
- leaved->tv_sec = secs;
- leaved->tv_usec = usecs;
-}
-
-static inline void net_profile_add(struct timeval *entered, struct timeval *leaved)
-{
- time_t usecs = leaved->tv_usec + entered->tv_usec;
- time_t secs = leaved->tv_sec + entered->tv_sec;
-
- if (usecs >= 1000000) {
- usecs -= 1000000;
- secs++;
- }
- leaved->tv_sec = secs;
- leaved->tv_usec = usecs;
-}
-
-
-
-#endif
-
-static inline void net_profile_enter(struct net_profile_slot *s)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
- if (s->active++ == 0) {
- net_profile_stamp(&s->entered);
- atomic_inc(&net_profile_active);
- }
- restore_flags(flags);
-}
-
-static inline void net_profile_leave_irq(struct net_profile_slot *s)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
- if (--s->active <= 0) {
- if (s->active == 0) {
- struct timeval curr_pstamp;
- net_profile_stamp(&curr_pstamp);
- net_profile_accumulate(&s->entered, &curr_pstamp, &s->accumulator);
- if (!atomic_dec_and_test(&net_profile_active))
- net_profile_irq_adjust(&s->entered, &curr_pstamp);
- } else {
- s->underflow++;
- }
- }
- s->hits++;
- restore_flags(flags);
-}
-
-static inline void net_profile_leave(struct net_profile_slot *s)
-{
- unsigned long flags;
- save_flags(flags);
- cli();
- if (--s->active <= 0) {
- if (s->active == 0) {
- struct timeval curr_pstamp;
- net_profile_stamp(&curr_pstamp);
- net_profile_accumulate(&s->entered, &curr_pstamp, &s->accumulator);
- atomic_dec(&net_profile_active);
- } else {
- s->underflow++;
- }
- }
- s->hits++;
- restore_flags(flags);
-}
-
-
-#define NET_PROFILE_ENTER(slot) net_profile_enter(&net_prof_##slot)
-#define NET_PROFILE_LEAVE(slot) net_profile_leave(&net_prof_##slot)
-#define NET_PROFILE_LEAVE_IRQ(slot) net_profile_leave_irq(&net_prof_##slot)
-
-#define NET_PROFILE_SKB_CLEAR(skb) ({ \
- skb->pstamp.tv_usec = 0; \
-})
-
-#define NET_PROFILE_SKB_INIT(skb) ({ \
- net_profile_stamp(&skb->pstamp); \
-})
-
-#define NET_PROFILE_SKB_PASSED(skb, slot) ({ \
- if (skb->pstamp.tv_usec) { \
- struct timeval cur_pstamp = skb->pstamp; \
- net_profile_stamp(&skb->pstamp); \
- net_profile_accumulate(&cur_pstamp, &skb->pstamp, &net_prof_##slot.accumulator); \
- net_prof_##slot.hits++; \
- }})
-
-#define NET_PROFILE_DECL(slot) \
- extern struct net_profile_slot net_prof_##slot;
-
-#define NET_PROFILE_DEFINE(slot) \
- struct net_profile_slot net_prof_##slot = { #slot, };
-
-#define NET_PROFILE_REGISTER(slot) net_profile_register(&net_prof_##slot)
-#define NET_PROFILE_UNREGISTER(slot) net_profile_unregister(&net_prof_##slot)
-
-extern int net_profile_init(void);
-extern int net_profile_register(struct net_profile_slot *);
-extern int net_profile_unregister(struct net_profile_slot *);
-
-#else
-
-#define NET_PROFILE_ENTER(slot) do { /* nothing */ } while(0)
-#define NET_PROFILE_LEAVE(slot) do { /* nothing */ } while(0)
-#define NET_PROFILE_LEAVE_IRQ(slot) do { /* nothing */ } while(0)
-#define NET_PROFILE_SKB_CLEAR(skb) do { /* nothing */ } while(0)
-#define NET_PROFILE_SKB_INIT(skb) do { /* nothing */ } while(0)
-#define NET_PROFILE_SKB_PASSED(skb, slot) do { /* nothing */ } while(0)
-#define NET_PROFILE_DECL(slot)
-#define NET_PROFILE_DEFINE(slot)
-#define NET_PROFILE_REGISTER(slot) do { /* nothing */ } while(0)
-#define NET_PROFILE_UNREGISTER(slot) do { /* nothing */ } while(0)
-
-#endif
-
-#endif