Adding support for new stack to Menuet Lib
git-svn-id: svn://kolibrios.org@4248 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,4 +1,55 @@
|
||||
#include<menuet/net.h>
|
||||
#include <menuet/net.h>
|
||||
|
||||
|
||||
unsigned long inet_addr(char *cp)
|
||||
{
|
||||
// Adapted from here http://stackoverflow.com/a/1684635
|
||||
unsigned long __ret;
|
||||
unsigned int c1,c2,c3,c4;
|
||||
sscanf(cp, "%d.%d.%d.%d", &c1,&c2,&c3,&c4);
|
||||
__ret = (unsigned long)c4+c3*256+c2*256*256+c1*256*256*256;
|
||||
return htonl(__ret);
|
||||
}
|
||||
|
||||
int socket(int domain, int type, int protocol)
|
||||
{
|
||||
int __ret;
|
||||
__asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_OPENSF),"c"(domain),"d"(type),"S"(protocol));
|
||||
return __ret;
|
||||
}
|
||||
|
||||
int close_socket(int s)
|
||||
{
|
||||
int __ret;
|
||||
__asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_CLOSESF),"c"(s));
|
||||
return __ret;
|
||||
}
|
||||
|
||||
|
||||
int connect(int sockfd, const struct sockaddr *serv_addr, int addrlen)
|
||||
{
|
||||
int __ret;
|
||||
__asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_CONNECTSF),"c"(sockfd),"d"(serv_addr),"S"(addrlen));
|
||||
return __ret;
|
||||
}
|
||||
|
||||
int send(int s, const void *buf, int len, int flags)
|
||||
{
|
||||
int __ret;
|
||||
__asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_SENDSF),"c"(s),"d"(buf),"S"(len),"D"(flags));
|
||||
return __ret;
|
||||
}
|
||||
|
||||
int recv(int sockfd, void *buf, int len, int flags)
|
||||
{
|
||||
int __ret;
|
||||
__asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_RECEIVESF),"c"(sockfd),"d"(buf),"S"(len),"D"(flags));
|
||||
return __ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
__u32 __menuet__open_UDP_socket(__u32 local_port,__u32 remote_port,__u32 remote_ip)
|
||||
{
|
||||
|
Reference in New Issue
Block a user