From a2d41bbdb9aa2b265266462f6d0f0f88371d3e13 Mon Sep 17 00:00:00 2001 From: olivier Date: Wed, 31 Mar 2010 23:25:10 +0000 Subject: [PATCH] * Fixes all constant declarations according to sys/socket.h and netinet/in.h. git-svn-id: trunk@15102 - --- rtl/haiku/unxsockh.inc | 146 ++++++++++++++++++++++++++--------------- 1 file changed, 93 insertions(+), 53 deletions(-) diff --git a/rtl/haiku/unxsockh.inc b/rtl/haiku/unxsockh.inc index 283f7cb8b2..98e13f6151 100644 --- a/rtl/haiku/unxsockh.inc +++ b/rtl/haiku/unxsockh.inc @@ -2,6 +2,7 @@ This file is part of the Free Pascal run time library. (c) 2000-2003 by Marco van de Voort member of the Free Pascal development team. + (c) 2010 by Olivier Coursière. See the file COPYING.FPC, included in this distribution, for details about the copyright. @@ -17,10 +18,21 @@ Const {* * Address families. *} - AF_UNSPEC = 0; { unspecified } - AF_UNIX = 1; { standardized name for AF_LOCAL } - AF_LOCAL = AF_UNIX; { local to host (pipes, portals) } - AF_INET = 2; { internetwork: UDP, TCP, etc. } + AF_UNSPEC = 0; { unspecified } + AF_INET = 1; { internetwork: UDP, TCP, etc. } + AF_APPLETALK = 2; { Apple Talk } + AF_ROUTE = 3; { Internal Routing Protocol } + AF_LINK = 4; { Link layer interface } + AF_INET6 = 5; { IPv6 } + AF_DLI = 6; { DEC Direct data link interface } + AF_IPX = 7; { Novell Internet Protocol } + AF_NOTIFY = 8; { ??? } + AF_LOCAL = 9; { local to host (pipes, portals) } + AF_UNIX = AF_LOCAL; { standardized name for AF_LOCAL } + AF_BLUETOOTH = 10; { Bluetooth sockets } + AF_MAX = 11; + +(* Values not yet defined under Haiku (see sys/socket.h) AF_IMPLINK = 3; { arpanet imp addresses } AF_PUP = 4; { pup protocols: e.g. BSP } AF_CHAOS = 5; { mit CHAOS protocols } @@ -32,23 +44,17 @@ Const AF_CCITT = 10; { CCITT protocols, X.25 etc } AF_SNA = 11; { IBM SNA } AF_DECnet = 12; { DECnet } - AF_DLI = 13; { DEC Direct data link interface } AF_LAT = 14; { LAT } AF_HYLINK = 15; { NSC Hyperchannel } - AF_APPLETALK = 16; { Apple Talk } - AF_ROUTE = 17; { Internal Routing Protocol } - AF_LINK = 18; { Link layer interface } pseudo_AF_XTP = 19; { eXpress Transfer Protocol (no AF) } AF_COIP = 20; { connection-oriented IP, aka ST II } AF_CNT = 21; { Computer Network Technology } pseudo_AF_RTIP = 22; { Help Identify RTIP packets } - AF_IPX = 23; { Novell Internet Protocol } AF_SIP = 24; { Simple Internet Protocol } pseudo_AF_PIP = 25; { Help Identify PIP packets } AF_ISDN = 26; { Integrated Services Digital Network} AF_E164 = AF_ISDN; { CCITT E.164 recommendation } pseudo_AF_KEY = 27; { Internal key-management function } - AF_INET6 = 28; { IPv6 } AF_NATM = 29; { native ATM access } AF_ATM = 30; { ATM } pseudo_AF_HDRCMPLT = 31; { Used by BPF to not rewrite headers @@ -58,20 +64,26 @@ Const AF_SLOW = 33; { 802.3ad slow protocol } AF_SCLUSTER = 34; { Sitara cluster protocol } AF_ARP = 35; - AF_BLUETOOTH = 36; { Bluetooth sockets } AF_IEEE80211 = 37; { IEEE 802.11 protocol } - AF_MAX = 38; - +*) + { * Protocol families, same as address families for now. } const PF_UNSPEC = AF_UNSPEC; + PF_INET = AF_INET; + PF_ROUTE = AF_ROUTE; + PF_LINK = AF_LINK; + PF_INET6 = AF_INET6; PF_LOCAL = AF_LOCAL; { backward compatibility } PF_UNIX = PF_LOCAL; - PF_INET = AF_INET; + PF_BLUETOOTH = AF_BLUETOOTH; + PF_MAX = AF_MAX; + +(* Values not yet defined under Haiku (see sys/socket.h) PF_IMPLINK = AF_IMPLINK; PF_PUP = AF_PUP; PF_CHAOS = AF_CHAOS; @@ -87,8 +99,6 @@ Const PF_LAT = AF_LAT; PF_HYLINK = AF_HYLINK; PF_APPLETALK = AF_APPLETALK; - PF_ROUTE = AF_ROUTE; - PF_LINK = AF_LINK; { really just proto family, no AF } PF_XTP = pseudo_AF_XTP; PF_COIP = AF_COIP; @@ -100,47 +110,51 @@ Const PF_PIP = pseudo_AF_PIP; PF_ISDN = AF_ISDN; PF_KEY = pseudo_AF_KEY; - PF_INET6 = AF_INET6; PF_NATM = AF_NATM; PF_ATM = AF_ATM; PF_NETGRAPH = AF_NETGRAPH; PF_SLOW = AF_SLOW; PF_SCLUSTER = AF_SCLUSTER; PF_ARP = AF_ARP; - PF_BLUETOOTH = AF_BLUETOOTH; - PF_MAX = AF_MAX; - +*) SOCK_PACKET = 10; { Maximum queue length specifiable by listen. } - SOMAXCONN = 128; + SOMAXCONN = 32; - SOL_SOCKET = $FFFF; - SO_DEBUG = $0001; { turn on debugging info recording } - SO_ACCEPTCONN = $0002; { socket has had listen() } - SO_REUSEADDR = $0004; { allow local address reuse } - SO_KEEPALIVE = $0008; { keep connections alive } - SO_DONTROUTE = $0010; { just use interface addresses } - SO_BROADCAST = $0020; { permit sending of broadcast msgs } - SO_USELOOPBACK = $0040; { bypass hardware when possible } - SO_LINGER = $0080; { linger on close if data present } - SO_OOBINLINE = $0100; { leave received OOB data in line } - SO_REUSEPORT = $0200; { allow local address & port reuse } + SOL_SOCKET = -1; + + SO_ACCEPTCONN = $00000001; { socket has had listen() } + SO_BROADCAST = $00000002; { permit sending of broadcast msgs } + SO_DEBUG = $00000004; { turn on debugging info recording } + SO_DONTROUTE = $00000008; { just use interface addresses } + SO_KEEPALIVE = $00000010; { keep connections alive } + SO_OOBINLINE = $00000020; { leave received OOB data in line } + SO_REUSEADDR = $00000040; { allow local address reuse } + SO_REUSEPORT = $00000080; { allow local address & port reuse } + SO_USELOOPBACK = $00000100; { bypass hardware when possible } + SO_LINGER = $00000200; { linger on close if data present } + +(* Values not yet defined under Haiku (see sys/socket.h) SO_TIMESTAMP = $0400; { timestamp received dgram traffic } +*) { * Additional options, not kept in so_options. } - SO_SNDBUF =$1001; { send buffer size } - SO_RCVBUF =$1002; { receive buffer size } - SO_SNDLOWAT =$1003; { send low-water mark } - SO_RCVLOWAT =$1004; { receive low-water mark } - SO_SNDTIMEO =$1005; { send timeout } - SO_RCVTIMEO =$1006; { receive timeout } - SO_ERROR =$1007; { get error status and clear } - SO_TYPE =$1008; { get socket type } + SO_SNDBUF = $40000001; { send buffer size } + SO_SNDLOWAT = $40000003; { send low-water mark } + SO_SNDTIMEO = $40000005; { send timeout } + SO_RCVBUF = $40000002; { receive buffer size } + SO_RCVLOWAT = $40000004; { receive low-water mark } + SO_RCVTIMEO = $40000006; { receive timeout } + SO_ERROR = $40000007; { get error status and clear } + SO_TYPE = $40000008; { get socket type } + SO_NONBLOCK = $40000009; + SO_BINDTODEVICE = $4000000a; { binds the socket to a specific device index } + SO_PEERCRED = $4000000b; { get peer credentials, param: ucred } SHUT_RD =0; { shut down the reading side } @@ -275,12 +289,25 @@ Const IP_RECVRETOPTS = 6 ; { bool; receive IP opts for response } IP_RECVDSTADDR = 7 ; { bool; receive IP dst addr w/dgram } IP_SENDSRCADDR = IP_RECVDSTADDR; { cmsg_type to set src addr } - IP_RETOPTS = 8 ; { ip_opts; set/get IP options } + IP_RETOPTS = 8 ; { ip_opts; set/get IP options } IP_MULTICAST_IF = 9 ; { u_char; set/get IP multicast i/f } IP_MULTICAST_TTL = 10; { u_char; set/get IP multicast ttl } IP_MULTICAST_LOOP = 11; { u_char; set/get IP multicast loopback } IP_ADD_MEMBERSHIP = 12; { ip_mreq; add an IP group membership } IP_DROP_MEMBERSHIP = 13; { ip_mreq; drop an IP group membership } + + IP_BLOCK_SOURCE = 14; { ip_mreq_source } + IP_UNBLOCK_SOURCE = 15; { ip_mreq_source } + IP_ADD_SOURCE_MEMBERSHIP = 16; { ip_mreq_source } + IP_DROP_SOURCE_MEMBERSHIP = 17; { ip_mreq_source } + MCAST_JOIN_GROUP = 18; { group_req } + MCAST_BLOCK_SOURCE = 19; { group_source_req } + MCAST_UNBLOCK_SOURCE = 20; { group_source_req } + MCAST_LEAVE_GROUP = 21; { group_req } + MCAST_JOIN_SOURCE_GROUP = 22; { group_source_req } + MCAST_LEAVE_SOURCE_GROUP = 23; { group_source_req } + +(* Values not yet defined under Haiku (see netinet/in.h) IP_MULTICAST_VIF = 14; { set/get IP mcast virt. iface } IP_RSVP_ON = 15; { enable RSVP in kernel } IP_RSVP_OFF = 16; { disable RSVP in kernel } @@ -317,9 +344,13 @@ Const IPV6_SOCKOPT_RESERVED1 = 3 ; { reserved for future use } IPV6_UNICAST_HOPS = 4 ; { int; IP6 hops } - IPV6_MULTICAST_IF = 9 ; { u_int; setget IP6 multicast if } - IPV6_MULTICAST_HOPS = 10; { int; setget IP6 multicast hops } - IPV6_MULTICAST_LOOP = 11; { u_int; setget IP6 multicast loopback } +*) + + IPV6_MULTICAST_IF = 24; { u_int; setget IP6 multicast if } + IPV6_MULTICAST_HOPS = 25; { int; setget IP6 multicast hops } + IPV6_MULTICAST_LOOP = 26; { u_int; setget IP6 multicast loopback } + +(* Values not yet defined under Haiku (see netinet/in.h) IPV6_JOIN_GROUP = 12; { ip6_mreq; join a group membership } IPV6_LEAVE_GROUP = 13; { ip6_mreq; leave a group membership } IPV6_PORTRANGE = 14; { int; range to choose for unspec port } @@ -331,21 +362,30 @@ Const IPV6_DSTOPTS = 50; { ip6_dest; send dst option befor rthdr } IPV6_RTHDR = 51; { ip6_rthdr; send routing header } IPV6_PKTOPTIONS = 52; { buf/cmsghdr; set/get IPv6 options } +*) { Flags for send, recv etc. } - MSG_OOB = $0001; { Process out-of-band data} - MSG_PEEK = $0002; { Peek at incoming messages } - MSG_DONTROUTE = $0004; { Don't use local routing } - MSG_EOR = $0008; { End of record } - MSG_TRUNC = $0010; - MSG_CTRUNC = $0020; { Control data lost before delivery } - MSG_WAITALL = $0040; { Wait for a full request } - MSG_DONTWAIT = $0080; { Non-blocking I/O } - MSG_EOF = $0100; + MSG_OOB = $0001; { process out-of-band data} + MSG_PEEK = $0002; { peek at incoming messages } + MSG_DONTROUTE = $0004; { send without using routing tables } + MSG_EOR = $0008; { data completes record } + MSG_TRUNC = $0010; { data discarded before delivery } + MSG_CTRUNC = $0020; { control data lost before delivery } + MSG_WAITALL = $0040; { wait for full request or error } + MSG_DONTWAIT = $0080; { this message should be nonblocking } + MSG_BCAST = $0100; { this message rec'd as broadcast } + MSG_MCAST = $0200; { this message rec'd as multicast } + MSG_EOF = $0400; { data completes connection } + +(* Values not yet defined under Haiku (see sys/socket.h) MSG_NBIO = $4000; MSG_COMPAT = $8000; MSG_SOCALLBCK = $10000; MSG_NOSIGNAL = $20000; { Do not generate SIGPIPE } +*) + + { SOL_SOCKET control message types } + SCM_RIGHTS = $01; INVALID_SOCKET = -1; SOCKET_ERROR = -1;