/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 |
/** @} |