26,18 → 26,24 |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
|
/** @addtogroup net |
/** @addtogroup socket |
* @{ |
*/ |
|
/** @file |
* Common socket constants. |
* Based on the linux src/include/linux/socket.h header file. |
* Socket application program interface (API). |
* This is a part of the network application library. |
* Based on the linux src/include/linux/socket.h header file and BSD socket interface. |
*/ |
|
#ifndef __NET_SOCKET_H__ |
#define __NET_SOCKET_H__ |
|
#include <sys/types.h> |
|
#include "in.h" |
#include "inet.h" |
|
/* Supported address families. */ |
/** Unspecified address family. |
*/ |
172,7 → 178,7 |
#define AF_MAX 34 |
|
/* Protocol families, same as address families. */ |
/* |
|
#define PF_UNSPEC AF_UNSPEC |
#define PF_UNIX AF_UNIX |
#define PF_LOCAL AF_LOCAL |
207,9 → 213,9 |
#define PF_IUCV AF_IUCV |
#define PF_RXRPC AF_RXRPC |
#define PF_MAX AF_MAX |
*/ |
|
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */ |
/*#define SOL_IP 0 |
#define SOL_IP 0 |
#define SOL_ICMP 1 |
#define SOL_TCP 6 |
#define SOL_UDP 17 |
216,8 → 222,8 |
#define SOL_IPV6 41 |
#define SOL_ICMPV6 58 |
#define SOL_SCTP 132 |
#define SOL_UDPLITE 136 *//* UDP-Lite (RFC 3828) */ |
/*#define SOL_RAW 255 |
#define SOL_UDPLITE 136 /* UDP-Lite (RFC 3828) */ |
#define SOL_RAW 255 |
#define SOL_IPX 256 |
#define SOL_AX25 257 |
#define SOL_ATALK 258 |
226,9 → 232,9 |
#define SOL_DECNET 261 |
#define SOL_X25 262 |
#define SOL_PACKET 263 |
#define SOL_ATM 264 *//* ATM layer (cell level) */ |
/*#define SOL_AAL 265 *//* ATM Adaption Layer (packet level) */ |
/*#define SOL_IRDA 266 |
#define SOL_ATM 264 /* ATM layer (cell level) */ |
#define SOL_AAL 265 /* ATM Adaption Layer (packet level) */ |
#define SOL_IRDA 266 |
#define SOL_NETBEUI 267 |
#define SOL_LLC 268 |
#define SOL_DCCP 269 |
237,12 → 243,45 |
#define SOL_RXRPC 272 |
#define SOL_PPPOL2TP 273 |
#define SOL_BLUETOOTH 274 |
*/ |
|
// |
/* * IPX options. |
*/ |
//#define IPX_TYPE 1 |
|
/** Socket type type definition. |
*/ |
typedef enum sock_type{ |
/** Stream (connection oriented) socket. |
*/ |
SOCK_STREAM = 1, |
/** Datagram (connectionless oriented) socket. |
*/ |
SOCK_DGRAM = 2, |
/** Raw socket. |
*/ |
SOCK_RAW = 3 |
} sock_type_t; |
|
typedef int32_t socklen_t; |
|
int socket( int domain, int type, int protocol ); |
int bind( int socket_id, const struct sockaddr * my_addr, socklen_t addrlen ); |
int listen( int socket_id, int backlog ); |
int accept( int socket_id, struct sockaddr * cliaddr, socklen_t * addrlen ); |
int connect( int socket_id, const struct sockaddr * serv_addr, socklen_t addrlen ); |
|
int closesocket( int socket_id ); |
|
int send( int socket_id, void * data, size_t datalength, int flags ); |
int sendto( int socket_id, const void * data, size_t datalength, int flags, const struct sockaddr * toaddr, socklen_t addrlen ); |
|
int recv( int socket_id, void * data, size_t datalength, int flags ); |
int recvfrom( int socket_id, void * data, size_t datalength, int flags, struct sockaddr * fromaddr, socklen_t * addrlen ); |
|
int getsockopt( int socket_id, int level, int optname, void * value, size_t * optlen ); |
int setsockopt( int socket_id, int level, int optname, const void * value, size_t optlen ); |
|
#endif |
|
/** @} |