Merge of branches/team/network/new_stack - not yet complete as SVN does only support
replacing files when merging when you don't have deleted them manually (for some reason, it only works as part of the merge operation, and we didn't copy the whole tree to have "a fresh start" - next time we know better, at least if SVN still suffers from that same limitation). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18456 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
#include <OS.h>
|
||||
#include <sys/types.h>
|
||||
#include <inttypes.h>
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _SYS_FILE_H
|
||||
#define _SYS_FILE_H
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#endif
|
||||
@@ -1,40 +0,0 @@
|
||||
/**
|
||||
* @file sys/filio.h
|
||||
* @brief ioctl() definitions for file descriptor operations
|
||||
*/
|
||||
|
||||
#ifndef _SYS_FILIO_H
|
||||
#define _SYS_FILIO_H
|
||||
/**
|
||||
* @defgroup IOCTL_filio sys/filio.h
|
||||
* @brief ioctl() definitions for file descriptor operations
|
||||
* @ingroup OpenBeOS_POSIX
|
||||
* @ingroup IOCTL
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include <sys/ioccom.h>
|
||||
|
||||
/** @def FIOCLEX set close on exec
|
||||
* @ref FD_CLOEXEC */
|
||||
#define FIOCLEX _IO('f', 1)
|
||||
/** @def FIONCLEX remove close on exec flag
|
||||
* @ref FD_CLOEXEC*/
|
||||
#define FIONCLEX _IO('f', 2)
|
||||
/** @def FIBMAP get logical block
|
||||
* @note this is not yet implemented on OpenBeOS */
|
||||
#define FIBMAP _IOWR('f', 122, void *)
|
||||
/** @def FIOASYNC set/clear async I/O */
|
||||
#define FIOASYNC _IOW('f', 123, int)
|
||||
/** @def FIOGETOWN get owner */
|
||||
#define FIOGETOWN _IOR('f', 123, int)
|
||||
/** @def FIOSETOWN set owner */
|
||||
#define FIOSETOWN _IOW('f', 123, int)
|
||||
/** @def FIONBIO set/clear non-blocking I/O */
|
||||
#define FIONBIO _IOW('f', 126, int)
|
||||
/** @def FIONREAD get number of bytes available to read */
|
||||
#define FIONREAD _IOW('f', 127, int)
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif /* _SYS_FILIO_H */
|
||||
@@ -1,80 +0,0 @@
|
||||
/**
|
||||
* @file sys/ioccom.h
|
||||
* @brief Definitions & maros common to ioctl
|
||||
*/
|
||||
|
||||
#ifndef _SYS_IOCCOM_H
|
||||
#define _SYS_IOCCOM_H
|
||||
|
||||
/**
|
||||
* @defgroup IOCTL_common sys/ioccom.h
|
||||
* @brief Definitions & maros common to ioctl()
|
||||
* @ingroup OpenBeOS_POSIX
|
||||
* @ingroup IOCTL
|
||||
* Ioctl values passed as the command (2nd) variable have the
|
||||
* command encoded in the lower word and the size of any parameters
|
||||
* in the upper word (in or out).
|
||||
* The high 3 bits are used to encode whether it's in or out.
|
||||
* Due to this you can't just give an ioctl value, you need to encode
|
||||
* it using macros described in
|
||||
* @ref IOCTL_macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup IOCTL_parm ioctl() parameter definitions
|
||||
* @ingroup IOCTL_common
|
||||
* @{
|
||||
*/
|
||||
/** @def IOC_VOID */
|
||||
#define IOC_VOID (ulong)0x20000000
|
||||
/** @def IOC_OUT ioctl expects data (output) */
|
||||
#define IOC_OUT (ulong)0x40000000
|
||||
/** @def IOC_IN ioctl passes a value in */
|
||||
#define IOC_IN (ulong)0x80000000
|
||||
/** @def IOC_INOUT ioctl passes data in and out */
|
||||
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
||||
/** @def IOC_DIRMASK */
|
||||
#define IOC_DIRMASK (ulong)0xe0000000
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @defgroup IOCTL_macros IOCTL macros
|
||||
* These should be used to define the values passed in as cmd to
|
||||
* ioctl()
|
||||
* @ingroup IOCTL_common
|
||||
* @{
|
||||
*/
|
||||
/** @def IOCPARM_MASK mask used to for following macros */
|
||||
#define IOCPARM_MASK 0x1fff
|
||||
/** @def IOCPARM_LEN(x) length of the data passed as param */
|
||||
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
|
||||
/** @def IOCBASECMD(x) the base command encoded in the ioctl value */
|
||||
#define IOCBASECMD(x) ((x) & ~(IOCPARM_MASK << 16))
|
||||
/** @def IOCGROUP(x) which group of ioctl() commands does this belong to? */
|
||||
#define IOCGROUP(x) (((x) >> 8) & 0xff)
|
||||
/** @def IOCPARM_MAX Maximum size of parameter that can be passed (20 bytes) */
|
||||
#define IOCPARM_MAX 20
|
||||
|
||||
/**
|
||||
* @defgroup IOCTL_createmacros macro's to create ioctl() values
|
||||
* @brief these macro's should be used to create new ioctl() values
|
||||
* @ingroup IOCTL_common
|
||||
* @{
|
||||
*/
|
||||
/** @def _IOC(inout, group, num , len) create a new ioctl */
|
||||
#define _IOC(inout, group, num, len) \
|
||||
(inout | ((len & IOCPARM_MASK)<<16) | ((group) << 8) | (num))
|
||||
/** @def _IO(g,n) create a new void ioctl for group g, number n */
|
||||
#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)
|
||||
/** @def _IOR(g,n,t) create a ioctl() that reads a value of type t*/
|
||||
#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))
|
||||
/** @def _IOW(g,n,t) ioctl() that writes value of type t, group g, number n */
|
||||
#define _IOW(g,n,t) _IOC(IOC_IN , (g), (n), sizeof(t))
|
||||
/** @def _IOWR(g,n,t) ioctl() that reads/writes value of type t
|
||||
* @note this isn't _IORW as this causes name conflicts on some systems */
|
||||
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
|
||||
/** @} */
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif /* _SYS_IOCCOM_H */
|
||||
@@ -1,39 +1,12 @@
|
||||
/**
|
||||
* @file sys/ioctl.h
|
||||
* @brief I/O control functions
|
||||
/*
|
||||
* Copyright 2006, Haiku Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef _SYS_IOCTL_H
|
||||
#define _SYS_IOCTL_H
|
||||
|
||||
/**
|
||||
* @defgroup IOCTL sys/ioctl.h
|
||||
* @brief I/O control functions
|
||||
* @ingroup OpenBeOS_POSIX
|
||||
* @{
|
||||
*/
|
||||
/* These only work on sockets for now */
|
||||
#define FIONBIO 0xbe000000
|
||||
#define FIONREAD 0xbe000001
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <sys/ioccom.h>
|
||||
#include <sys/filio.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#ifndef _KERNEL_MODE
|
||||
/** @fn int ioctl(int fd, ulong cmd, ...)
|
||||
* Manipulates the characteristics of the affected descriptor. May be used
|
||||
* on all forms of descriptor, including sockets and pipes. cmd should be one
|
||||
* of the values given in
|
||||
* @ref IOCTL_cmds
|
||||
*/
|
||||
int ioctl(int, ulong, ...);
|
||||
#endif /* !_KERNEL_MODE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
#endif /* _SYS_IOCTL_H */
|
||||
#endif /* _SYS_IOCTL_H */
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
/*
|
||||
* Copyright 2002-2006, Haiku Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _SYS_SELECT_H
|
||||
#define _SYS_SELECT_H
|
||||
/*
|
||||
** Distributed under the terms of the OpenBeOS License.
|
||||
*/
|
||||
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
+88
-224
@@ -1,68 +1,47 @@
|
||||
/* sys/socket.h */
|
||||
|
||||
|
||||
/*
|
||||
* Copyright 2002-2006, Haiku Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _SYS_SOCKET_H
|
||||
#define _SYS_SOCKET_H
|
||||
|
||||
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/uio.h>
|
||||
|
||||
#if __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef uint32_t socklen_t;
|
||||
|
||||
/* These are the address/protocol families we'll be using... */
|
||||
/* NB these should be added to as required... */
|
||||
|
||||
/* If we want to have Binary compatability we may need to alter these
|
||||
* to agree with the Be versions...
|
||||
*/
|
||||
#define AF_UNSPEC 0
|
||||
#define AF_INET 1
|
||||
#define AF_LOCAL 2
|
||||
#define AF_UNIX AF_LOCAL /* for compatability */
|
||||
#define AF_ROUTE 3
|
||||
#define AF_LINK 4
|
||||
#define AF_INET6 5
|
||||
#define AF_IPX 7
|
||||
#define AF_IMPLINK 20
|
||||
|
||||
#define AF_MAX 24
|
||||
/* Address families */
|
||||
#define AF_UNSPEC 0
|
||||
#define AF_INET 1
|
||||
#define AF_APPLETALK 2
|
||||
#define AF_ROUTE 3
|
||||
#define AF_LINK 4
|
||||
#define AF_INET6 5
|
||||
#define AF_DLI 6
|
||||
#define AF_IPX 7
|
||||
#define AF_NOTIFY 8
|
||||
#define AF_LOCAL 9
|
||||
#define AF_UNIX AF_LOCAL
|
||||
#define AF_MAX 10
|
||||
|
||||
/* Protocol families, deprecated */
|
||||
#define PF_UNSPEC AF_UNSPEC
|
||||
#define PF_INET AF_INET
|
||||
#define PF_ROUTE AF_ROUTE
|
||||
#define PF_LINK AF_LINK
|
||||
#define PF_INET6 AF_INET6
|
||||
#define PF_IPX AF_IPX
|
||||
#define PF_IMPLINK AF_IMPLINK
|
||||
#define PF_INET6 AF_INET6
|
||||
|
||||
/* Types of socket we can create (eventually) */
|
||||
#ifndef BUILDING_R5_LIBNET
|
||||
#define SOCK_STREAM 1
|
||||
#define SOCK_DGRAM 2
|
||||
#define SOCK_RAW 3
|
||||
#define SOCK_MISC 255
|
||||
#else /* BUILDING_R5_LIBNET */
|
||||
/* XXX: HACK: we use socket emulation for libnet.so */
|
||||
#define SOCK_DGRAM 10
|
||||
#define SOCK_STREAM 11
|
||||
#define SOCK_RAW 12
|
||||
#define SOCK_MISC 255
|
||||
#define SOCK_NATIVE_STREAM 1
|
||||
#define SOCK_NATIVE_DGRAM 2
|
||||
#define SOCK_NATIVE_RAW 3
|
||||
#define SOCK_NATIVE_MISC 255
|
||||
#endif /* BUILDING_R5_LIBNET */
|
||||
/* Socket types */
|
||||
#define SOCK_STREAM 1
|
||||
#define SOCK_DGRAM 2
|
||||
#define SOCK_RAW 3
|
||||
#define SOCK_MISC 255
|
||||
|
||||
/*
|
||||
* Option flags per-socket.
|
||||
*/
|
||||
#define SOL_SOCKET 0xffffffff
|
||||
/* Socket options for SOL_SOCKET level */
|
||||
#define SOL_SOCKET -1
|
||||
|
||||
#define SO_ACCEPTCONN 0x00000001 /* socket has had listen() */
|
||||
#define SO_BROADCAST 0x00000002 /* permit sending of broadcast msgs */
|
||||
@@ -75,9 +54,6 @@ typedef uint32_t socklen_t;
|
||||
#define SO_USELOOPBACK 0x00000100 /* bypass hardware when possible */
|
||||
#define SO_LINGER 0x00000200 /* linger on close if data present */
|
||||
|
||||
/*
|
||||
* Additional options, not kept in so_options.
|
||||
*/
|
||||
#define SO_SNDBUF 0x40000001 /* send buffer size */
|
||||
#define SO_SNDLOWAT 0x40000002 /* send low-water mark */
|
||||
#define SO_SNDTIMEO 0x40000003 /* send timeout */
|
||||
@@ -86,206 +62,94 @@ typedef uint32_t socklen_t;
|
||||
#define SO_RCVTIMEO 0x40000006 /* receive timeout */
|
||||
#define SO_ERROR 0x40000007 /* get error status and clear */
|
||||
#define SO_TYPE 0x40000008 /* get socket type */
|
||||
|
||||
/* not handled by OpenBeOS */
|
||||
#define SO_NONBLOCK 0x40000009
|
||||
#define SO_BINDTODEVICE 0x4000000a
|
||||
|
||||
/* only defined in OpenBeOS */
|
||||
#define SO_NETPROC 0x00001020 /* multiplex; network processing */
|
||||
|
||||
/*
|
||||
* These are the valid values for the "how" field used by shutdown(2).
|
||||
*/
|
||||
/* Shutdown options */
|
||||
#define SHUT_RD 0
|
||||
#define SHUT_WR 1
|
||||
#define SHUT_RDWR 2
|
||||
/* for BONE compatibility */
|
||||
#define SHUTDOWN_RECV SHUT_RD
|
||||
#define SHUTDOWN_SEND SHUT_WR
|
||||
#define SHUTDOWN_BOTH SHUT_RDWR
|
||||
|
||||
#define SOMAXCONN 32 /* Max listen queue for a socket */
|
||||
|
||||
struct linger {
|
||||
int l_onoff;
|
||||
int l_linger;
|
||||
int l_onoff;
|
||||
int l_linger;
|
||||
};
|
||||
|
||||
struct sockaddr {
|
||||
uint8_t sa_len;
|
||||
uint8_t sa_family;
|
||||
uint8_t sa_data[30];
|
||||
uint8_t sa_len;
|
||||
uint8_t sa_family;
|
||||
uint8_t sa_data[30];
|
||||
};
|
||||
|
||||
/* this can hold ANY sockaddr we care to throw at it! */
|
||||
struct sockaddr_storage {
|
||||
uint8_t ss_len; /* total length */
|
||||
uint8_t ss_family; /* address family */
|
||||
uint8_t __ss_pad1[6]; /* align to quad */
|
||||
uint64_t __ss_pad2; /* force alignment for stupid compilers */
|
||||
uint8_t __ss_pad3[240]; /* pad to a total of 256 bytes */
|
||||
uint8_t ss_len; /* total length */
|
||||
uint8_t ss_family; /* address family */
|
||||
uint8_t __ss_pad1[6]; /* align to quad */
|
||||
uint64_t __ss_pad2; /* force alignment for stupid compilers */
|
||||
uint8_t __ss_pad3[112]; /* pad to a total of 128 bytes */
|
||||
};
|
||||
|
||||
struct sockproto {
|
||||
uint16_t sp_family;
|
||||
uint16_t sp_protocol;
|
||||
};
|
||||
|
||||
#define CTL_NET 4
|
||||
|
||||
#define CTL_NET_NAMES { \
|
||||
{ 0, 0 }, \
|
||||
{ "unix", CTLTYPE_NODE }, \
|
||||
{ "inet", CTLTYPE_NODE }, \
|
||||
{ "implink", CTLTYPE_NODE }, \
|
||||
{ "pup", CTLTYPE_NODE }, \
|
||||
{ "chaos", CTLTYPE_NODE }, \
|
||||
{ "xerox_ns", CTLTYPE_NODE }, \
|
||||
{ "iso", CTLTYPE_NODE }, \
|
||||
{ "emca", CTLTYPE_NODE }, \
|
||||
{ "datakit", CTLTYPE_NODE }, \
|
||||
{ "ccitt", CTLTYPE_NODE }, \
|
||||
{ "ibm_sna", CTLTYPE_NODE }, \
|
||||
{ "decnet", CTLTYPE_NODE }, \
|
||||
{ "dec_dli", CTLTYPE_NODE }, \
|
||||
{ "lat", CTLTYPE_NODE }, \
|
||||
{ "hylink", CTLTYPE_NODE }, \
|
||||
{ "appletalk", CTLTYPE_NODE }, \
|
||||
{ "route", CTLTYPE_NODE }, \
|
||||
{ "link_layer", CTLTYPE_NODE }, \
|
||||
{ "xtp", CTLTYPE_NODE }, \
|
||||
{ "coip", CTLTYPE_NODE }, \
|
||||
{ "cnt", CTLTYPE_NODE }, \
|
||||
{ "rtip", CTLTYPE_NODE }, \
|
||||
{ "ipx", CTLTYPE_NODE }, \
|
||||
{ "inet6", CTLTYPE_NODE }, \
|
||||
{ "pip", CTLTYPE_NODE }, \
|
||||
{ "isdn", CTLTYPE_NODE }, \
|
||||
{ "natm", CTLTYPE_NODE }, \
|
||||
{ "encap", CTLTYPE_NODE }, \
|
||||
{ "sip", CTLTYPE_NODE }, \
|
||||
{ "key", CTLTYPE_NODE }, \
|
||||
}
|
||||
|
||||
/*
|
||||
* PF_ROUTE - Routing table
|
||||
*
|
||||
* Three additional levels are defined:
|
||||
* Fourth: address family, 0 is wildcard
|
||||
* Fifth: type of info, defined below
|
||||
* Sixth: flag(s) to mask with for NET_RT_FLAGS
|
||||
*/
|
||||
#define NET_RT_DUMP 1 /* dump; may limit to a.f. */
|
||||
#define NET_RT_FLAGS 2 /* by flags, e.g. RESOLVING */
|
||||
#define NET_RT_IFLIST 3 /* survey interface list */
|
||||
#define NET_RT_MAXID 4
|
||||
|
||||
#define CTL_NET_RT_NAMES { \
|
||||
{ 0, 0 }, \
|
||||
{ "dump", CTLTYPE_STRUCT }, \
|
||||
{ "flags", CTLTYPE_STRUCT }, \
|
||||
{ "iflist", CTLTYPE_STRUCT }, \
|
||||
}
|
||||
|
||||
/* Max listen queue for a socket */
|
||||
#define SOMAXCONN 5 /* defined as 128 in OpenBSD */
|
||||
|
||||
struct msghdr {
|
||||
char * msg_name; /* address we're using (optional) */
|
||||
uint msg_namelen; /* length of address */
|
||||
struct iovec *msg_iov; /* scatter/gather array we'll use */
|
||||
uint msg_iovlen; /* # elements in msg_iov */
|
||||
char * msg_control; /* extra data */
|
||||
uint msg_controllen; /* length of extra data */
|
||||
int msg_flags; /* flags */
|
||||
char *msg_name; /* address we're using (optional) */
|
||||
socklen_t msg_namelen; /* length of address */
|
||||
struct iovec *msg_iov; /* scatter/gather array we'll use */
|
||||
int msg_iovlen; /* # elements in msg_iov */
|
||||
char *msg_control; /* extra data */
|
||||
socklen_t msg_controllen; /* length of extra data */
|
||||
int msg_flags; /* flags */
|
||||
};
|
||||
|
||||
/* Defines used in msghdr structure. */
|
||||
#define MSG_OOB 0x1 /* process out-of-band data */
|
||||
#define MSG_PEEK 0x2 /* peek at incoming message */
|
||||
#define MSG_DONTROUTE 0x4 /* send without using routing tables */
|
||||
#define MSG_EOR 0x8 /* data completes record */
|
||||
#define MSG_TRUNC 0x10 /* data discarded before delivery */
|
||||
#define MSG_CTRUNC 0x20 /* control data lost before delivery */
|
||||
#define MSG_WAITALL 0x40 /* wait for full request or error */
|
||||
#define MSG_DONTWAIT 0x80 /* this message should be nonblocking */
|
||||
#define MSG_BCAST 0x100 /* this message rec'd as broadcast */
|
||||
#define MSG_MCAST 0x200 /* this message rec'd as multicast */
|
||||
/* not defind in OpenBeOS */
|
||||
#define MSG_EOF 0x400 /* data completes connection */
|
||||
|
||||
/* Flags for the msghdr.msg_flags field */
|
||||
#define MSG_OOB 0x0001 /* process out-of-band data */
|
||||
#define MSG_PEEK 0x0002 /* peek at incoming message */
|
||||
#define MSG_DONTROUTE 0x0004 /* send without using routing tables */
|
||||
#define MSG_EOR 0x0008 /* data completes record */
|
||||
#define MSG_TRUNC 0x0010 /* data discarded before delivery */
|
||||
#define MSG_CTRUNC 0x0020 /* control data lost before delivery */
|
||||
#define MSG_WAITALL 0x0040 /* wait for full request or error */
|
||||
#define MSG_DONTWAIT 0x0080 /* this message should be nonblocking */
|
||||
#define MSG_BCAST 0x0100 /* this message rec'd as broadcast */
|
||||
#define MSG_MCAST 0x0200 /* this message rec'd as multicast */
|
||||
#define MSG_EOF 0x0400 /* data completes connection */
|
||||
|
||||
struct cmsghdr {
|
||||
uint cmsg_len;
|
||||
int cmsg_level;
|
||||
int cmsg_type;
|
||||
/* there now follows uchar[] cmsg_data */
|
||||
socklen_t cmsg_len;
|
||||
int cmsg_level;
|
||||
int cmsg_type;
|
||||
/* data follows */
|
||||
};
|
||||
|
||||
|
||||
#define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */
|
||||
#define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */
|
||||
#define SIOCSLOWAT _IOW('s', 2, int) /* set low watermark */
|
||||
#define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */
|
||||
#define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */
|
||||
#if __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SIOCADDRT _IOW('r', 10, struct ortentry) /* add route */
|
||||
#define SIOCDELRT _IOW('r', 11, struct ortentry) /* delete route */
|
||||
|
||||
#define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */
|
||||
#define OSIOCGIFADDR _IOWR('i', 13, struct ifreq) /* get ifnet address */
|
||||
#define SIOCGIFADDR _IOWR('i', 33, struct ifreq) /* get ifnet address */
|
||||
#define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */
|
||||
#define OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq) /* get p-p address */
|
||||
#define SIOCGIFDSTADDR _IOWR('i', 34, struct ifreq) /* get p-p address */
|
||||
#define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */
|
||||
#define SIOCGIFFLAGS _IOWR('i', 17, struct ifreq) /* get ifnet flags */
|
||||
#define OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq) /* get broadcast addr */
|
||||
#define SIOCGIFBRDADDR _IOWR('i', 35, struct ifreq) /* get broadcast addr */
|
||||
#define SIOCSIFBRDADDR _IOW('i', 19, struct ifreq) /* set broadcast addr */
|
||||
#define OSIOCGIFCONF _IOWR('i', 20, struct ifconf) /* get ifnet list */
|
||||
#define SIOCGIFCONF _IOWR('i', 36, struct ifconf) /* get ifnet list */
|
||||
#define OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq) /* get net addr mask */
|
||||
#define SIOCGIFNETMASK _IOWR('i', 37, struct ifreq) /* get net addr mask */
|
||||
#define SIOCSIFNETMASK _IOW('i', 22, struct ifreq) /* set net addr mask */
|
||||
#define SIOCGIFMETRIC _IOWR('i', 23, struct ifreq) /* get IF metric */
|
||||
#define SIOCSIFMETRIC _IOW('i', 24, struct ifreq) /* set IF metric */
|
||||
#define SIOCDIFADDR _IOW('i', 25, struct ifreq) /* delete IF addr */
|
||||
#define SIOCAIFADDR _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */
|
||||
#define SIOCGIFDATA _IOWR('i', 27, struct ifreq) /* get if_data */
|
||||
|
||||
#define SIOCGIFMTU _IOWR('i', 126, struct ifreq) /* get ifnet MTU */
|
||||
#define SIOCSIFMTU _IOW('i', 127, struct ifreq) /* set ifnet MTU */
|
||||
|
||||
#define SIOCADDMULTI _IOW('i', 49, struct ifreq) /* add m'cast addr */
|
||||
#define SIOCDELMULTI _IOW('i', 50, struct ifreq) /* del m'cast addr */
|
||||
|
||||
|
||||
#ifndef _KERNEL_MODE
|
||||
/* Function declarations */
|
||||
int socket (int, int, int);
|
||||
int socketpair(int domain, int type, int protocol, int socket_vector[2]);
|
||||
int bind(int, const struct sockaddr *, socklen_t);
|
||||
int connect(int, const struct sockaddr *, socklen_t);
|
||||
int listen(int, int);
|
||||
int accept(int, struct sockaddr *, socklen_t *);
|
||||
int closesocket(int);
|
||||
int shutdown(int sock, int how);
|
||||
|
||||
ssize_t send(int, const void *, size_t, int);
|
||||
ssize_t recv(int, void *, size_t, int);
|
||||
ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t);
|
||||
ssize_t recvfrom(int, void *, size_t, int, struct sockaddr *, socklen_t *);
|
||||
|
||||
int setsockopt(int, int, int, const void *, socklen_t);
|
||||
int getsockopt(int, int, int, void *, socklen_t *);
|
||||
int getpeername(int, struct sockaddr *, socklen_t *);
|
||||
int getsockname(int, struct sockaddr *, socklen_t *);
|
||||
#endif /* _KERNEL_MODE */
|
||||
int accept(int socket, struct sockaddr *address, socklen_t *_addressLength);
|
||||
int bind(int socket, const struct sockaddr *address, socklen_t addressLength);
|
||||
int connect(int socket, const struct sockaddr *address, socklen_t addressLength);
|
||||
int getpeername(int socket, struct sockaddr *address, socklen_t *_addressLength);
|
||||
int getsockname(int socket, struct sockaddr *address, socklen_t *_addressLength);
|
||||
int getsockopt(int socket, int level, int option, void *value, socklen_t *_length);
|
||||
int listen(int socket, int backlog);
|
||||
ssize_t recv(int socket, void *buffer, size_t length, int flags);
|
||||
ssize_t recvfrom(int socket, void *buffer, size_t bufferLength, int flags,
|
||||
struct sockaddr *address, socklen_t *_addressLength);
|
||||
ssize_t recvmsg(int socket, struct msghdr *message, int flags);
|
||||
ssize_t send(int socket, const void *buffer, size_t length, int flags);
|
||||
ssize_t sendmsg(int socket, const struct msghdr *message, int flags);
|
||||
ssize_t sendto(int socket, const void *message, size_t length, int flags,
|
||||
const struct sockaddr *address, socklen_t addressLength);
|
||||
int setsockopt(int socket, int level, int option, const void *value, socklen_t length);
|
||||
int shutdown(int socket, int how);
|
||||
int socket(int domain, int type, int protocol);
|
||||
int sockatmark(int socket);
|
||||
int socketpair(int domain, int type, int protocol, int socketVector[2]);
|
||||
|
||||
#if __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* _SYS_SOCKET_H */
|
||||
#endif
|
||||
|
||||
#endif /* _SYS_SOCKET_H */
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright 2002-2006, Haiku Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _SYS_SOCKIO_H
|
||||
#define _SYS_SOCKIO_H
|
||||
|
||||
|
||||
enum {
|
||||
SIOCADDRT = 8900, /* add route */
|
||||
SIOCDELRT, /* delete route */
|
||||
SIOCSIFADDR, /* set interface address */
|
||||
SIOCGIFADDR, /* get interface address */
|
||||
SIOCSIFDSTADDR, /* set point-to-point address */
|
||||
SIOCGIFDSTADDR, /* get point-to-point address */
|
||||
SIOCSIFFLAGS, /* set interface flags */
|
||||
SIOCGIFFLAGS, /* get interface flags */
|
||||
SIOCGIFBRDADDR, /* get broadcast address */
|
||||
SIOCSIFBRDADDR, /* set broadcast address */
|
||||
SIOCGIFCOUNT, /* count interfaces */
|
||||
SIOCGIFCONF, /* get interface list */
|
||||
SIOCGIFINDEX, /* interface name -> index */
|
||||
SIOCGIFNAME, /* interface index -> name */
|
||||
SIOCGIFNETMASK, /* get net address mask */
|
||||
SIOCSIFNETMASK, /* set net address mask */
|
||||
SIOCGIFMETRIC, /* get interface metric */
|
||||
SIOCSIFMETRIC, /* set interface metric */
|
||||
SIOCDIFADDR, /* delete interface address */
|
||||
SIOCAIFADDR, /* configure interface alias */
|
||||
SIOCADDMULTI, /* add multicast address */
|
||||
SIOCDELMULTI, /* delete multicast address */
|
||||
SIOCGIFMTU, /* get interface MTU */
|
||||
SIOCSIFMTU, /* set interface MTU */
|
||||
SIOCSIFMEDIA, /* set net media */
|
||||
SIOCGIFMEDIA, /* get net media */
|
||||
|
||||
SIOCGRTSIZE, /* get route table size */
|
||||
SIOCGRTTABLE, /* get route table */
|
||||
|
||||
SIOCGIFSTATS, /* get interface stats */
|
||||
SIOCGIFPARAM, /* get interface parameter */
|
||||
SIOCGIFTYPE, /* get interface type */
|
||||
|
||||
SIOCSPACKETCAP, /* Start capturing packets on an interface */
|
||||
SIOCCPACKETCAP, /* Stop capturing packets on an interface */
|
||||
|
||||
SIOCSHIWAT, /* set high watermark */
|
||||
SIOCGHIWAT, /* get high watermark */
|
||||
SIOCSLOWAT, /* set low watermark */
|
||||
SIOCGLOWAT, /* get low watermark */
|
||||
SIOCATMARK, /* at out-of-band mark? */
|
||||
SIOCSPGRP, /* set process group */
|
||||
SIOCGPGRP /* get process group */
|
||||
};
|
||||
|
||||
#endif /* _SYS_SOCKIO_H */
|
||||
@@ -1,8 +1,9 @@
|
||||
/*
|
||||
* Copyright 2002-2006, Haiku Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _SYS_UIO_H
|
||||
#define _SYS_UIO_H
|
||||
/*
|
||||
** Distributed under the terms of the Haiku License.
|
||||
*/
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
Reference in New Issue
Block a user