added watt32 headers and brought the DOS version up to parity with UNIX
[oftp] / libs / watt32 / net / if_atm.h
diff --git a/libs/watt32/net/if_atm.h b/libs/watt32/net/if_atm.h
new file mode 100644 (file)
index 0000000..d06d53f
--- /dev/null
@@ -0,0 +1,110 @@
+/*!\file net/if_atm.h
+ * ATM definitions.
+ */
+
+/*      $NetBSD: if_atm.h,v 1.7 1996/11/09 23:02:27 chuck Exp $       */
+
+/*
+ *
+ * Copyright (c) 1996 Charles D. Cranor and Washington University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Charles D. Cranor and
+ *     Washington University.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * net/if_atm.h
+ */
+
+#ifndef __NET_IF_ATM_H
+#define __NET_IF_ATM_H
+
+#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
+#define RTALLOC1(A,B)          rtalloc1((A),(B))
+#elif defined(__FreeBSD__)
+#define RTALLOC1(A,B)          rtalloc1((A),(B),0UL)
+#endif
+
+#include <sys/packon.h>
+
+/*
+ * pseudo header for packet transmission
+ */
+
+struct atm_pseudohdr {
+  u_int8_t atm_ph[4];  /* flags+VPI+VCI1(msb)+VCI2(lsb) */
+};
+
+#define ATM_PH_FLAGS(X)        ((X)->atm_ph[0])
+#define ATM_PH_VPI(X)  ((X)->atm_ph[1])
+#define ATM_PH_VCI(X)  ((((X)->atm_ph[2]) << 8) | ((X)->atm_ph[3]))
+#define ATM_PH_SETVCI(X,V) { \
+       (X)->atm_ph[2] = ((V) >> 8) & 0xff; \
+       (X)->atm_ph[3] = ((V) & 0xff); \
+}
+
+#define ATM_PH_AAL5    0x01    /* use AAL5? (0 == aal0) */
+#define ATM_PH_LLCSNAP 0x02    /* use the LLC SNAP encoding (iff aal5) */
+
+#define ATM_PH_DRIVER7  0x40   /* reserve for driver's use */
+#define ATM_PH_DRIVER8  0x80   /* reserve for driver's use */
+
+#define ATMMTU         9180    /* ATM MTU size for IP */
+                               /* XXX: could be 9188 with LLC/SNAP according
+                                       to comer */
+
+/* user's ioctl hook for raw atm mode */
+#define SIOCRAWATM     _IOWR('a', 122, int)    /* set driver's raw mode */
+
+/* atm_pseudoioctl: turns on and off RX VCIs  [for internal use only!] */
+struct atm_pseudoioctl {
+  struct atm_pseudohdr aph;
+  void *rxhand;
+};
+#define SIOCATMENA     _IOWR('a', 123, struct atm_pseudoioctl) /* enable */
+#define SIOCATMDIS     _IOWR('a', 124, struct atm_pseudoioctl) /* disable */
+
+/*
+ * XXX forget all the garbage in if_llc.h and do it the easy way
+ */
+
+#define ATMLLC_HDR "\252\252\3\0\0\0"
+struct atmllc {
+  u_int8_t llchdr[6];  /* aa.aa.03.00.00.00 */
+  u_int8_t type[2];    /* "ethernet" type */
+};
+
+#include <sys/packoff.h>
+
+/* ATM_LLC macros: note type code in host byte order */
+#define ATM_LLC_TYPE(X) (((X)->type[0] << 8) | ((X)->type[1]))
+#define ATM_LLC_SETTYPE(X,V) { \
+       (X)->type[1] = ((V) >> 8) & 0xff; \
+       (X)->type[0] = ((V) & 0xff); \
+}
+
+#endif