in.h

来自「Ibmstb02500 miniboot 源码」· C头文件 代码 · 共 207 行

H
207
字号
/* openbios/include/netinet/in.h, redbios, redbios_iii_1.0 3/23/98 11:41:34 *//*-----------------------------------------------------------------------------+||       This source code has been made available to you by IBM on an AS-IS|       basis.  Anyone receiving this source is licensed under IBM|       copyrights to use it in any way he or she deems fit, including|       copying it, modifying it, compiling it, and redistributing it either|       with or without modifications.  No license under IBM patents or|       patent applications is to be implied by the copyright license.||       Any user of this software should understand that IBM cannot provide|       technical support for this software and will not be responsible for|       any consequences resulting from the use of this software.||       Any person who transfers this source code or any derivative work|       must include the IBM copyright notice, this paragraph, and the|       preceding two paragraphs in the transferred software.||       COPYRIGHT   I B M   CORPORATION 1995|       LICENSED MATERIAL  -  PROGRAM PROPERTY OF I B M+-----------------------------------------------------------------------------*//*-----------------------------------------------------------------------------+||  File Name:   in.h||  Function:    Constants and structures defined by the internet system,|               Per RFC 790, September 1981.||  Author:      BSD 4.3.2 Reno.||  Change Activity-||  Date        Description of Change                                       BY|  ---------   ---------------------                                       ---|  18-Nov-92   Created                                                     MPT|  12-Jan-94   1.00 first version after code review                        MPT|+-----------------------------------------------------------------------------*//* * Copyright (c) 1982, 1986, 1990 Regents of the University of California. * 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 the University of *      California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. * *      @(#)in.h        7.11 (Berkeley) 4/20/91 *//* * Constants and structures defined by the internet system, * Per RFC 790, September 1981. */#ifndef _netinet_in_h_#define _netinet_in_h_#include <types.h>/* * Protocols */#define IPPROTO_IP              0               /* dummy for IP */#define IPPROTO_ICMP            1               /* control message protocol */#define IPPROTO_GGP             3               /* gateway^2 (deprecated) */#define IPPROTO_TCP             6               /* tcp */#define IPPROTO_EGP             8               /* exterior gateway protocol */#define IPPROTO_PUP             12              /* pup */#define IPPROTO_UDP             17              /* user datagram protocol */#define IPPROTO_IDP             22              /* xns idp */#define IPPROTO_TP              29              /* tp-4 w/ class negotiation */#define IPPROTO_EON             80              /* ISO cnlp */#define IPPROTO_RAW             255             /* raw IP packet */#define IPPROTO_MAX             256/* * Local port number conventions: * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). * Ports > IPPORT_USERRESERVED are reserved * for servers, not necessarily privileged. */#define IPPORT_RESERVED         1024#define IPPORT_USERRESERVED     5000/* * Internet address (a structure for historical reasons) */struct in_addr {        u_long s_addr;};/* * Definitions of bits in internet address integers. * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. */#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_CLASSA_MAX           128#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_CLASSB_MAX           65536#define IN_CLASSC(i)            (((long)(i) & 0xe0000000) == 0xc0000000)#define IN_CLASSC_NET           0xffffff00#define IN_CLASSC_NSHIFT        8#define IN_CLASSC_HOST          0x000000ff#define IN_CLASSD(i)            (((long)(i) & 0xf0000000) == 0xe0000000)#define IN_MULTICAST(i)         IN_CLASSD(i)#define IN_EXPERIMENTAL(i)      (((long)(i) & 0xe0000000) == 0xe0000000)#define IN_BADCLASS(i)          (((long)(i) & 0xf0000000) == 0xf0000000)#define INADDR_ANY              (u_long)0x00000000#define INADDR_BROADCAST        (u_long)0xffffffff      /* must be masked */#ifndef KERNEL#define INADDR_NONE             0xffffffff              /* -1 return */#endif#define IN_LOOPBACKNET          127                     /* official! *//* * Socket address, internet style. *///#ifdef __GNUC__//#pragma pack(1)//#endifstruct sockaddr_in {        u_char  sin_len;        u_char  sin_family;        u_short sin_port;        struct  in_addr sin_addr;        char    sin_zero[8];};/* * Structure used to describe IP options. * Used to store options internally, to pass them to a process, * or to restore options retrieved earlier. * The ip_dst is used for the first-hop gateway when using a source route * (this gets put into the header proper). */struct ip_opts {        struct  in_addr ip_dst;         /* first hop, 0 w/o src rt */        char    ip_opts[40];            /* actually variable in size */};//#ifdef __GNUC__//#pragma pack()//#endif/* * Options for use with [gs]etsockopt at the IP level. * First word of comment is data type; bool is stored in int. */#define IP_OPTIONS      1       /* buf/ip_opts; set/get IP per-packet options */#define IP_HDRINCL      2       /* int; header is included with data (raw) */#define IP_TOS          3       /* int; IP type of service and precedence */#define IP_TTL          4       /* int; IP time to live */#define IP_RECVOPTS     5       /* bool; receive all IP options w/datagram */#define IP_RECVRETOPTS  6       /* bool; receive IP options for response */#define IP_RECVDSTADDR  7       /* bool; receive IP dst addr w/datagram */#define IP_RETOPTS      8       /* ip_opts; set/get IP per-packet options */#ifdef KERNELstruct  in_addr in_makeaddr();u_long  in_netof(), in_lnaof();#endif#endif  /* _netinet_in_h_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?