Annotation of 43BSD/sys/netinet/in.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1982, 1986 Regents of the University of California.
                      3:  * All rights reserved.  The Berkeley software License Agreement
                      4:  * specifies the terms and conditions for redistribution.
                      5:  *
                      6:  *     @(#)in.h        7.1 (Berkeley) 6/5/86
                      7:  */
                      8: 
                      9: /*
                     10:  * Constants and structures defined by the internet system,
                     11:  * Per RFC 790, September 1981.
                     12:  */
                     13: 
                     14: /*
                     15:  * Protocols
                     16:  */
                     17: #define        IPPROTO_IP              0               /* dummy for IP */
                     18: #define        IPPROTO_ICMP            1               /* control message protocol */
                     19: #define        IPPROTO_GGP             2               /* gateway^2 (deprecated) */
                     20: #define        IPPROTO_TCP             6               /* tcp */
                     21: #define        IPPROTO_EGP             8               /* exterior gateway protocol */
                     22: #define        IPPROTO_PUP             12              /* pup */
                     23: #define        IPPROTO_UDP             17              /* user datagram protocol */
                     24: #define        IPPROTO_IDP             22              /* xns idp */
                     25: 
                     26: #define        IPPROTO_RAW             255             /* raw IP packet */
                     27: #define        IPPROTO_MAX             256
                     28: 
                     29: 
                     30: /*
                     31:  * Ports < IPPORT_RESERVED are reserved for
                     32:  * privileged processes (e.g. root).
                     33:  * Ports > IPPORT_USERRESERVED are reserved
                     34:  * for servers, not necessarily privileged.
                     35:  */
                     36: #define        IPPORT_RESERVED         1024
                     37: #define        IPPORT_USERRESERVED     5000
                     38: 
                     39: /*
                     40:  * Link numbers
                     41:  */
                     42: #define        IMPLINK_IP              155
                     43: #define        IMPLINK_LOWEXPER        156
                     44: #define        IMPLINK_HIGHEXPER       158
                     45: 
                     46: /*
                     47:  * Internet address (a structure for historical reasons)
                     48:  */
                     49: struct in_addr {
                     50:        u_long s_addr;
                     51: };
                     52: 
                     53: /*
                     54:  * Definitions of bits in internet address integers.
                     55:  * On subnets, the decomposition of addresses to host and net parts
                     56:  * is done according to subnet mask, not the masks here.
                     57:  */
                     58: #define        IN_CLASSA(i)            (((long)(i) & 0x80000000) == 0)
                     59: #define        IN_CLASSA_NET           0xff000000
                     60: #define        IN_CLASSA_NSHIFT        24
                     61: #define        IN_CLASSA_HOST          0x00ffffff
                     62: #define        IN_CLASSA_MAX           128
                     63: 
                     64: #define        IN_CLASSB(i)            (((long)(i) & 0xc0000000) == 0x80000000)
                     65: #define        IN_CLASSB_NET           0xffff0000
                     66: #define        IN_CLASSB_NSHIFT        16
                     67: #define        IN_CLASSB_HOST          0x0000ffff
                     68: #define        IN_CLASSB_MAX           65536
                     69: 
                     70: #define        IN_CLASSC(i)            (((long)(i) & 0xc0000000) == 0xc0000000)
                     71: #define        IN_CLASSC_NET           0xffffff00
                     72: #define        IN_CLASSC_NSHIFT        8
                     73: #define        IN_CLASSC_HOST          0x000000ff
                     74: 
                     75: #define        INADDR_ANY              (u_long)0x00000000
                     76: #define        INADDR_BROADCAST        (u_long)0xffffffff      /* must be masked */
                     77: 
                     78: /*
                     79:  * Socket address, internet style.
                     80:  */
                     81: struct sockaddr_in {
                     82:        short   sin_family;
                     83:        u_short sin_port;
                     84:        struct  in_addr sin_addr;
                     85:        char    sin_zero[8];
                     86: };
                     87: 
                     88: /*
                     89:  * Options for use with [gs]etsockopt at the IP level.
                     90:  */
                     91: #define        IP_OPTIONS      1               /* set/get IP per-packet options */
                     92: 
                     93: #if !defined(vax) && !defined(ntohl) && !defined(lint)
                     94: /*
                     95:  * Macros for number representation conversion.
                     96:  */
                     97: #define        ntohl(x)        (x)
                     98: #define        ntohs(x)        (x)
                     99: #define        htonl(x)        (x)
                    100: #define        htons(x)        (x)
                    101: #endif
                    102: 
                    103: #if !defined(ntohl) && (defined(vax) || defined(lint))
                    104: u_short        ntohs(), htons();
                    105: u_long ntohl(), htonl();
                    106: #endif
                    107: 
                    108: #ifdef KERNEL
                    109: extern struct domain inetdomain;
                    110: extern struct protosw inetsw[];
                    111: struct in_addr in_makeaddr();
                    112: u_long in_netof(), in_lnaof();
                    113: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.