sun merge
[unix-history] / usr / src / sys / netinet / in.h
index 4da362b..10a7d77 100644 (file)
@@ -1,4 +1,4 @@
-/*     in.h    4.13    82/06/13        */
+/*     in.h    4.19    82/12/17        */
 
 /*
  * Constants and structures defined by the internet system,
 
 /*
  * Constants and structures defined by the internet system,
 #define        IPPORT_EXECSERVER       512
 #define        IPPORT_LOGINSERVER      513
 #define        IPPORT_CMDSERVER        514
 #define        IPPORT_EXECSERVER       512
 #define        IPPORT_LOGINSERVER      513
 #define        IPPORT_CMDSERVER        514
+#define        IPPORT_EFSSERVER        520
 
 /*
  * UNIX UDP sockets
  */
 #define        IPPORT_BIFFUDP          512
 #define        IPPORT_WHOSERVER        513
 
 /*
  * UNIX UDP sockets
  */
 #define        IPPORT_BIFFUDP          512
 #define        IPPORT_WHOSERVER        513
+#define        IPPORT_ROUTESERVER      520     /* 520+1 also used */
 
 /*
  * Ports < IPPORT_RESERVED are reserved for
 
 /*
  * Ports < IPPORT_RESERVED are reserved for
@@ -78,42 +80,30 @@ struct in_addr {
                u_long S_addr;
        } S_un;
 #define        s_addr  S_un.S_addr     /* can be used for most tcp & ip code */
                u_long S_addr;
        } S_un;
 #define        s_addr  S_un.S_addr     /* can be used for most tcp & ip code */
-#ifdef vax
 #define        s_host  S_un.S_un_b.s_b2        /* host on imp */
 #define        s_net   S_un.S_un_b.s_b1        /* network */
 #define        s_imp   S_un.S_un_w.s_w2        /* imp */
 #define        s_impno S_un.S_un_b.s_b4        /* imp # */
 #define        s_lh    S_un.S_un_b.s_b3        /* logical host */
 #define        s_host  S_un.S_un_b.s_b2        /* host on imp */
 #define        s_net   S_un.S_un_b.s_b1        /* network */
 #define        s_imp   S_un.S_un_w.s_w2        /* imp */
 #define        s_impno S_un.S_un_b.s_b4        /* imp # */
 #define        s_lh    S_un.S_un_b.s_b3        /* logical host */
-#endif
 };
 
 /*
 };
 
 /*
- * Macros for dealing with Class A/B/C network
- * numbers.  High 3 bits of uppermost byte indicates
- * how to interpret the remainder of the 32-bit
- * Internet address.  The macros may be used in time
- * time critical sections of code, while subroutine
- * versions also exist use in other places.
+ * Definitions of bits in internet address integers.
  */
  */
-#if vax || pdp11
-#define        IN_CLASSA       0x00000080
-#define        IN_CLASSA_NET   0x000000ff      /* 8 bits of net # */
-#define        IN_CLASSA_LNA   0xffffff00
-#define        IN_CLASSB       0x00000040
-#define        IN_CLASSB_NET   0x0000ffff      /* 16 bits of net # */
-#define        IN_CLASSB_LNA   0xffff0000
-#define        IN_CLASSC_NET   0x00ffffff      /* 24 bits of net # */
-#define        IN_CLASSC_LNA   0xff000000
-#endif
+#define        IN_CLASSA(i)            ((((long)(i))&0x80000000)==0)
+#define        IN_CLASSA_NET           0xff000000
+#define        IN_CLASSA_NSHIFT        24
+#define        IN_CLASSA_HOST          0x00ffffff
+
+#define        IN_CLASSB(i)            ((((long)(i))&0xc0000000)==0x80000000)
+#define        IN_CLASSB_NET           0xffff0000
+#define        IN_CLASSB_NSHIFT        16
+#define        IN_CLASSB_HOST          0x0000ffff
 
 
-#define        IN_NETOF(in) \
-       (((in).s_addr&IN_CLASSA) == 0 ? (in).s_addr&IN_CLASSA_NET : \
-               ((in).s_addr&IN_CLASSB) == 0 ? (in).s_addr&IN_CLASSB_NET : \
-                       (in).s_addr&IN_CLASSC_NET)
-#define        IN_LNAOF(in) \
-       (((in).s_addr&IN_CLASSA) == 0 ? (in).s_addr&IN_CLASSA_LNA : \
-               ((in).s_addr&IN_CLASSB) == 0 ? (in).s_addr&IN_CLASSB_LNA : \
-                       (in).s_addr&IN_CLASSC_LNA)
+#define        IN_CLASSC(i)            ((((long)(i))&0xc0000000)==0xc0000000)
+#define        IN_CLASSC_NET           0xffffff00
+#define        IN_CLASSC_NSHIFT        8
+#define        IN_CLASSC_HOST          0x000000ff
 
 #define        INADDR_ANY      0x00000000
 
 
 #define        INADDR_ANY      0x00000000
 
@@ -126,3 +116,18 @@ struct sockaddr_in {
        struct  in_addr sin_addr;
        char    sin_zero[8];
 };
        struct  in_addr sin_addr;
        char    sin_zero[8];
 };
+
+#if !defined(vax)
+/*
+ * Macros for number representation conversion.
+ */
+#define        ntohl(x)        (x)
+#define        ntohs(x)        (x)
+#define        htonl(x)        (x)
+#define        htons(x)        (x)
+#endif
+
+#ifdef KERNEL
+extern struct domain inetdomain;
+extern struct protosw inetsw[];
+#endif