Update from Steve Perkins
[ppp.git] / linux / bsd_comp.c
index d622bff2641e0b18e2a6ad0842b4c145af606bf2..952b32f504649dff2afb52cc571a62d3b3bf9590 100644 (file)
 /*
  * This version is for use with contiguous buffers on Linux-derived systems.
  *
- *  ==FILEVERSION 5==
+ *  ==FILEVERSION 970607==
  *
  *  NOTE TO MAINTAINERS:
- *     If you modify this file at all, increment the number above.
+ *     If you modify this file at all, please set the number above to the
+ *     date of the modification as YYMMDD (year month day).
  *     bsd_comp.c is shipped with a PPP distribution as well as with
  *     the kernel; if everyone increases the FILEVERSION number above,
  *     then scripts can do the right thing when deciding whether to
 #error This file must be compiled as a module.
 #endif
 
+#include <linux/version.h>
 #include <linux/module.h>
-
-#include <endian.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/interrupt.h>
 #include <linux/ptrace.h>
+#include <linux/malloc.h>
 #include <linux/ioport.h>
 #include <linux/in.h>
-#include <linux/malloc.h>
+
+#undef VERSION
+/* a nice define to generate linux version numbers */
+#define VERSION(major,minor,patch) (((((major)<<8)+(minor))<<8)+(patch))
+
+#if LINUX_VERSION_CODE >= VERSION(2,1,4)
+#include <linux/vmalloc.h>
+#endif
+
 #include <linux/tty.h>
 #include <linux/errno.h>
 #include <linux/sched.h>       /* to get the struct task_struct */
@@ -76,7 +85,7 @@
 
 #include <asm/system.h>
 #include <asm/bitops.h>
-#include <asm/segment.h>
+#include <asm/byteorder.h>
 
 #include <linux/if.h>
 
 
 #include <linux/ppp_defs.h>
 
-#ifdef NEW_SKBUFF
-#include <linux/netprotocol.h>
-#endif
-
-#include <linux/ip.h>
-#include <linux/tcp.h>
-#include <linux/if_arp.h>
-
 #undef   PACKETPTR
 #define  PACKETPTR 1
 #include <linux/ppp-comp.h>
@@ -141,14 +142,16 @@ struct bsd_dict {
     union {                            /* hash value */
        unsigned long   fcode;
        struct {
-#ifndef BIG_ENDIAN_BITFIELD /* Little endian order */
+#if defined(__LITTLE_ENDIAN)           /* Little endian order */
            unsigned short      prefix; /* preceding code */
            unsigned char       suffix; /* last character of new code */
            unsigned char       pad;
-#else /* Big endian order */
+#elif defined(__BIG_ENDIAN)            /* Big endian order */
            unsigned char       pad;
            unsigned char       suffix; /* last character of new code */
            unsigned short      prefix; /* preceding code */
+#else
+#error Endianness not defined...
 #endif
        } hs;
     } f;