Subversion Repositories HelenOS

Compare Revisions

No changes between revisions

Ignore whitespace Rev 4575 → Rev 4578

/branches/network/uspace/srv/net/include/netdb.h
0,0 → 1,78
/*
* Copyright (c) 2009 Lukas Mejdrech
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
/** @addtogroup netdb
* @{
*/
 
/** @file
* Structures and interfaces according to the BSD netdb.h file.
*/
 
#ifndef __NET_NETDB_H__
#define __NET_NETDB_H__
 
#include <sys/types.h>
 
/** Structure returned by network data base library.
* All addresses are supplied in host order, and returned in network order (suitable for use in system calls).
*/
struct hostent {
/** Official host name.
*/
char * h_name;
/** Alias list.
*/
char ** h_aliases;
/** Host address type.
*/
int h_addrtype;
/** Address length.
*/
int h_length;
/** List of addresses from name server.
*/
char ** h_addr_list;
/** Address, for backward compatiblity.
*/
#define h_addr h_addr_list[ 0 ]
};
 
#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
#define NO_DATA 4 /* Valid name, no data record of requested type */
#define NO_ADDRESS NO_DATA /* no address, look for MX record */
 
struct hostent * gethostbyaddr( const void * address, int len, int type );
struct hostent * gethostbyname( const char * name );
 
#endif
 
/** @}
*/
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/branches/network/uspace/srv/net/include/socket_errno.h
0,0 → 1,92
/*
* Copyright (c) 2009 Lukas Mejdrech
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
/** @addtogroup net
* @{
*/
 
/** @file
* Socket error codes.
* Based on BSD.
*/
 
#ifndef __NET_SOCKET_ERR_H__
#define __NET_SOCKET_ERR_H__
 
#include <errno.h>
 
////#define EINTR (-10004)
////#define EBADF (-10009)
//#define EACCES (-10013)
//#define EFAULT (-10014)
////#define EINVAL (-10022)
////#define EMFILE (-10024)
//#define EWOULDBLOCK (-10035)
/** If any API function is called while a blocking function is in progress.
*/
//#define EINPROGRESS (-10036)
//#define EALREADY (-10037)
#define ENOTSOCK (-10038)
//#define EDESTADDRREQ (-10039)
//#define EMSGSIZE (-10040)
//#define EPROTOTYPE (-10041)
//#define ENOPROTOOPT (-10042)
#define EPROTONOSUPPORT (-10043)
#define ESOCKTNOSUPPORT (-10044)
//#define EOPNOTSUPP (-10045)
#define EPFNOSUPPORT (-10046)
#define EAFNOSUPPORT (-10047)
#define EADDRINUSE (-10048)
//#define EADDRNOTAVAIL (-10049)
/** May be reported at any time if the implementation detects an underlying failure.
*/
//#define ENETDOWN (-10050)
//#define ENETUNREACH (-10051)
//#define ENETRESET (-10052)
//#define ECONNABORTED (-10053)
//#define ECONNRESET (-10054)
//#define ENOBUFS (-10055)
//#define EISCONN (-10056)
//#define ENOTCONN (-10057)
//#define ESHUTDOWN (-10058)
//#define ETOOMANYREFS (-10059)
//#define ETIMEDOUT (-10060)
//#define ECONNREFUSED (-10061)
//#define ELOOP (-10062)
////#define ENAMETOOLONG (-10063)
//#define EHOSTDOWN (-10064)
//#define EHOSTUNREACH (-10065)
//#define HOST_NOT_FOUND (-11001)
//#define TRY_AGAIN (-11002)
//#define NO_RECOVERY (-11003)
#define NO_DATA (-11004)
 
#endif
 
/** @}
*/
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/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
 
/** @}