Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4577 → Rev 4578

/branches/network/uspace/srv/net/include/socket.h
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
 
/** @}