Added np mode stuff to support demand-dialling
[ppp.git] / modules / bsd-comp.c
index c342d98c64d427932ed15f34d85578bde1ebb650..a9cf15be8f4a56faf9d4683e509c394c03d7fcf7 100644 (file)
 
 /*
  * This version is for use with STREAMS under SunOS 4.x,
- * DEC Alpha OSF/1, and AIX 4.x.
+ * DEC Alpha OSF/1, AIX 4.x, and SVR4 systems including Solaris 2.
  *
- * $Id: bsd-comp.c,v 1.9 1995/04/28 06:13:56 paulus Exp $
+ * $Id: bsd-comp.c,v 1.17 1995/12/11 02:57:48 paulus Exp $
  */
 
-#ifdef __aix4__
+#ifdef AIX4
 #include <net/net_globals.h>
 #endif
 #include <sys/param.h>
 #include <net/if.h>
 #include <net/ppp_defs.h>
 #include <net/ppp_str.h>
+#include "ppp_mod.h"
 
-#ifdef sun
-#include <sys/kmem_alloc.h>
-#define ALLOCATE(n)    kmem_alloc((n), KMEM_NOSLEEP)
-#define FREE(p, n)     kmem_free((p), (n))
+#ifdef SVR4
+#include <sys/byteorder.h>
+#ifndef _BIG_ENDIAN
+#define BSD_LITTLE_ENDIAN
 #endif
-
-#ifdef __osf__
-#include <kern/kalloc.h>
-#define ALLOCATE(n)    kalloc((n))
-#define FREE(p, n)     kfree((p), (n))
 #endif
 
-#ifdef __aix4__
-#define ALLOCATE(n)    xmalloc((n), 0, pinned_heap)
-#define FREE(p, n)     xmfree((p), pinned_heap)
+#ifdef OSF1
+#undef FIRST
+#undef LAST
+#define BSD_LITTLE_ENDIAN
 #endif
 
 #define PACKETPTR      mblk_t *
 #include <net/ppp-comp.h>
 
+#if DO_BSD_COMPRESS
+
 /*
  * PPP "BSD compress" compression
  *  The differences between this compression and the classic BSD LZW
@@ -146,7 +145,7 @@ struct bsd_db {
 };
 
 #define BSD_OVHD       2               /* BSD compress overhead/packet */
-#define BSD_INIT_BITS  MIN_BSD_BITS
+#define BSD_INIT_BITS  BSD_MIN_BITS
 
 static void    *bsd_comp_alloc __P((u_char *options, int opt_len));
 static void    *bsd_decomp_alloc __P((u_char *options, int opt_len));
@@ -361,7 +360,7 @@ bsd_alloc(options, opt_len, decomp)
 
     maxmaxcode = MAXCODE(bits);
     newlen = sizeof(*db) + (hsize-1) * (sizeof(db->dict[0]));
-    db = (struct bsd_db *) ALLOCATE(newlen);
+    db = (struct bsd_db *) ALLOC_NOSLEEP(newlen);
     if (!db)
        return NULL;
     bzero(db, sizeof(*db) - sizeof(db->dict));
@@ -369,7 +368,7 @@ bsd_alloc(options, opt_len, decomp)
     if (!decomp) {
        db->lens = NULL;
     } else {
-       db->lens = (u_short *) ALLOCATE((maxmaxcode+1) * sizeof(db->lens[0]));
+       db->lens = (u_short *) ALLOC_NOSLEEP((maxmaxcode+1) * sizeof(db->lens[0]));
        if (!db->lens) {
            FREE(db, newlen);
            return NULL;
@@ -1109,3 +1108,4 @@ bsd_decompress(state, cmsg, dmpp)
     *dmpp = mret;
     return DECOMP_OK;
 }
+#endif /* DO_BSD_COMPRESS */