summaryrefslogtreecommitdiff
path: root/include/ntif.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ntif.h')
-rw-r--r--include/ntif.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/include/ntif.h b/include/ntif.h
new file mode 100644
index 0000000..8377852
--- /dev/null
+++ b/include/ntif.h
@@ -0,0 +1,98 @@
+/* this is a hacked version of if.h from unix to contain the stuff we need only to build named (bind) with
+ the minimal amount of changes... by l. kahn */
+
+ /*
+ * Copyright (c) 1982, 1986 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+#ifndef _NET_IF_H
+#define _NET_IF_H
+
+
+/* #pragma ident "@(#)if.h 1.3 93/06/30 SMI"
+/* if.h 1.26 90/05/29 SMI; from UCB 7.1 6/4/86 */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Structures defining a network interface, providing a packet
+ * transport mechanism (ala level 0 of the PUP protocols).
+ *
+ * Each interface accepts output datagrams of a specified maximum
+ * length, and provides higher level routines with input datagrams
+ * received from its medium.
+ *
+ * Output occurs when the routine if_output is called, with three parameters:
+ * (*ifp->if_output)(ifp, m, dst)
+ * Here m is the mbuf chain to be sent and dst is the destination address.
+ * The output routine encapsulates the supplied datagram if necessary,
+ * and then transmits it on its medium.
+ *
+ * On input, each interface unwraps the data received by it, and either
+ * places it on the input queue of a internetwork datagram routine
+ * and posts the associated software interrupt, or passes the datagram to a raw
+ * packet input routine.
+ *
+ * Routines exist for locating interfaces by their addresses
+ * or for locating a interface on a certain network, as well as more general
+ * routing and gateway routines maintaining information used to locate
+ * interfaces. These routines live in the files if.c and route.c
+ */
+
+/*
+ * Structure defining a queue for a network interface.
+ *
+ * (Would like to call this struct ``if'', but C isn't PL/1.)
+ */
+/*
+ * Interface request structure used for socket
+ * ioctl's. All interface ioctl's must have parameter
+ * definitions which begin with ifr_name. The
+ * remainder may be interface specific.
+ */
+#ifdef FD_SETSIZE
+#undef FD_SETSIZE
+#endif
+#define FD_SETSIZE 512
+#include <winsock.h>
+typedef char *caddr_t;
+
+int get_winnt_interfaces();
+
+struct ifreq {
+#define IFNAMSIZ 16
+ char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
+ struct sockaddr ifru_addr;
+ char nt_mask[IFNAMSIZ]; /* new field to store mask returned from nt lookup l. kahn */
+
+#define ifr_addr ifru_addr /* address */
+#define ifr_mask nt_mask /* nt mask in character form */
+
+};
+
+/*
+ * Structure used in SIOCGIFCONF request.
+ * Used to retrieve interface configuration
+ * for machine (useful for programs which
+ * must know all networks accessible).
+ */
+struct ifconf {
+ int ifc_len; /* size of associated buffer */
+ union {
+ caddr_t ifcu_buf;
+ struct ifreq *ifcu_req;
+ } ifc_ifcu;
+#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
+#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NET_IF_H */
+