home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue2 / SDL.ARC / !unixlib / source / clib / bits / h / in < prev    next >
Encoding:
Text File  |  2004-09-05  |  3.9 KB  |  108 lines

  1. /****************************************************************************
  2.  *
  3.  * $Source: /usr/local/cvsroot/gccsdk/unixlib/source/clib/bits/in.h,v $
  4.  * $Date: 2004/06/12 08:59:47 $
  5.  * $Revision: 1.2 $
  6.  * $State: Exp $
  7.  * $Author: peter $
  8.  *
  9.  ***************************************************************************/
  10.  
  11. /* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
  12.    This file is part of the GNU C Library.
  13.  
  14.    The GNU C Library is free software; you can redistribute it and/or
  15.    modify it under the terms of the GNU Lesser General Public
  16.    License as published by the Free Software Foundation; either
  17.    version 2.1 of the License, or (at your option) any later version.
  18.  
  19.    The GNU C Library is distributed in the hope that it will be useful,
  20.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  22.    Lesser General Public License for more details.
  23.  
  24.    You should have received a copy of the GNU Lesser General Public
  25.    License along with the GNU C Library; if not, write to the Free
  26.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27.    02111-1307 USA.  */
  28.  
  29. /* Generic version.  */
  30.  
  31. #ifndef __NETINET_IN_H
  32. # error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
  33. #endif
  34.  
  35. /* Link numbers.  */
  36. #define    IMPLINK_IP        155
  37. #define    IMPLINK_LOWEXPER    156
  38. #define    IMPLINK_HIGHEXPER    158
  39.  
  40.  
  41. /* Options for use with `getsockopt' and `setsockopt' at the IP level.
  42.    The first word in the comment at the right is the data type used;
  43.    "bool" means a boolean value stored in an `int'.  */
  44. #define    IP_OPTIONS    1    /* ip_opts; IP per-packet options.  */
  45. #define    IP_HDRINCL    2    /* int; Header is included with data.  */
  46. #define    IP_TOS        3    /* int; IP type of service and precedence.  */
  47. #define    IP_TTL        4    /* int; IP time to live.  */
  48. #define    IP_RECVOPTS    5    /* bool; Receive all IP options w/datagram.  */
  49. #define    IP_RECVRETOPTS    6    /* bool; Receive IP options for response.  */
  50. #define    IP_RECVDSTADDR    7    /* bool; Receive IP dst addr w/datagram.  */
  51. #define    IP_RETOPTS    8    /* ip_opts; Set/get IP per-packet options.  */
  52. #define IP_MULTICAST_IF 9    /* in_addr; set/get IP multicast i/f */
  53. #define IP_MULTICAST_TTL 10    /* u_char; set/get IP multicast ttl */
  54. #define IP_MULTICAST_LOOP 11    /* i_char; set/get IP multicast loopback */
  55. #define IP_ADD_MEMBERSHIP 12    /* ip_mreq; add an IP group membership */
  56. #define IP_DROP_MEMBERSHIP 13    /* ip_mreq; drop an IP group membership */
  57.  
  58. /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
  59.    The `ip_dst' field is used for the first-hop gateway when using a
  60.    source route (this gets put into the header proper).  */
  61. struct ip_opts
  62.   {
  63.     struct in_addr ip_dst;    /* First hop; zero without source route.  */
  64. #ifndef __cplusplus
  65.     char ip_opts[40];        /* Actually variable in size.  */
  66. #else
  67.     char Ip_opts[40];
  68. #endif
  69.   };
  70.  
  71. /* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
  72. struct ip_mreq
  73.   {
  74.     struct in_addr imr_multiaddr;    /* IP multicast address of group */
  75.     struct in_addr imr_interface;    /* local IP address of interface */
  76.   };
  77.  
  78. /* IPV6 socket options.  */
  79. #define IPV6_ADDRFORM        1
  80. #define IPV6_RXINFO        2
  81. #define IPV6_RXHOPOPTS        3
  82. #define IPV6_RXDSTOPTS        4
  83. #define IPV6_RTHDR        5
  84. #define IPV6_PKTOPTIONS        6
  85. #define IPV6_CHECKSUM        7
  86. #define IPV6_HOPLIMIT        8
  87.  
  88. #define IPV6_TXINFO        IPV6_RXINFO
  89. #define SCM_SRCINFO        IPV6_TXINFO
  90. #define SCM_SRCRT        IPV6_RXSRCRT
  91.  
  92. #define IPV6_UNICAST_HOPS    16
  93. #define IPV6_MULTICAST_IF    17
  94. #define IPV6_MULTICAST_HOPS    18
  95. #define IPV6_MULTICAST_LOOP    19
  96. #define IPV6_JOIN_GROUP        20
  97. #define IPV6_LEAVE_GROUP    21
  98.  
  99. /* Obsolete synonyms for the above.  */
  100. #define IPV6_ADD_MEMBERSHIP    IPV6_JOIN_GROUP
  101. #define IPV6_DROP_MEMBERSHIP    IPV6_LEAVE_GROUP
  102.  
  103. /* Routing header options for IPv6.  */
  104. #define IPV6_RTHDR_LOOSE    0    /* Hop doesn't need to be neighbour. */
  105. #define IPV6_RTHDR_STRICT    1    /* Hop must be a neighbour.  */
  106.  
  107. #define IPV6_RTHDR_TYPE_0    0    /* IPv6 Routing header type 0.  */
  108.