Subversion Repositories Kolibri OS

Rev

Rev 4257 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4248 esevece 1
#include 
1882 clevermous 2
 
4248 esevece 3
 
4
int socket(int domain, int type, int protocol)
5
{
6
  int __ret;
7
  __asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_OPENSF),"c"(domain),"d"(type),"S"(protocol));
8
  return __ret;
9
}
10
 
4249 esevece 11
int closesocket(int s)
4248 esevece 12
{
13
  int __ret;
14
  __asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_CLOSESF),"c"(s));
15
  return __ret;
16
}
17
 
18
 
19
int connect(int sockfd, const struct sockaddr *serv_addr, int addrlen)
20
{
21
  int __ret;
22
  __asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_CONNECTSF),"c"(sockfd),"d"(serv_addr),"S"(addrlen));
23
  return __ret;
24
}
25
 
26
int send(int s, const void *buf, int len, int flags)
27
{
28
  int __ret;
29
  __asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_SENDSF),"c"(s),"d"(buf),"S"(len),"D"(flags));
30
  return __ret;
31
}
32
 
33
int recv(int sockfd, void *buf, int len, int flags)
34
{
35
  int __ret;
36
  __asm__("int $0x40":"=a"(__ret):"a"(_SOCKETF),"b"(_RECEIVESF),"c"(sockfd),"d"(buf),"S"(len),"D"(flags));
37
  return __ret;
38
}
39
 
4282 esevece 40
 
41
 
42
 
43
 
4248 esevece 44
// --------------------------------------------------------------
45
 
1882 clevermous 46
__u32 __menuet__open_UDP_socket(__u32 local_port,__u32 remote_port,__u32 remote_ip)
47
{
48
 __u32 __ret;
49
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_open_UDP),
50
  "c"(local_port),"d"(remote_port),"S"(remote_ip));
51
 return __ret;
52
}
53
 
54
__u32 __menuet__open_TCP_socket(__u32 local_port,__u32 remote_port,__u32 remote_ip,int mode)
55
{
56
 __u32 __ret;
57
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_open_TCP),
58
  "c"(local_port),"d"(remote_port),"S"(remote_ip),"D"(mode));
59
 return __ret;
60
}
61
 
62
int __menuet__close_UDP_socket(int socket)
63
{
64
 int __ret;
65
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_close_UDP),
66
  "c"(socket));
67
 return __ret;
68
}
69
 
70
int __menuet__close_TCP_socket(int socket)
71
{
72
 int __ret;
73
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_close_TCP),
74
  "c"(socket));
75
 return __ret;
76
}
77
 
78
int __menuet__poll_socket(int sock)
79
{
80
 int __ret;
81
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_poll),
82
  "c"(sock));
83
 return __ret;
84
}
85
 
86
int __menuet__read_socket(int sock,__u8 * return_data)
87
{
88
 int data_remaining;
89
 __u8 data_byte;
90
 __asm__("int $0x40":"=a"(data_remaining),"=b"(data_byte):"a"(__NET_socket),
91
  "b"(__NET_sock_poll),"c"(sock));
92
 if(return_data) *return_data=data_byte;
93
 return data_remaining;
94
}
95
 
96
int __menuet__get_TCP_socket_status(int sock)
97
{
98
 int __ret;
99
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_get_status),
100
  "c"(sock));
101
 return __ret;
102
}
103
 
104
int __menuet__write_UDP_socket(int sock,int count,void * buffer)
105
{
106
 int __ret;
107
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_write_UDP),
108
  "c"(sock),"d"(count),"S"((__u32)buffer));
109
 return __ret;
110
}
111
 
112
int __menuet__write_TCP_socket(int sock,int count,void * buffer)
113
{
114
 int __ret;
115
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_write_TCP),
116
  "c"(sock),"d"(count),"S"((__u32)buffer));
117
 return __ret;
118
}
119
 
120
int __menuet__check_net_port_availability(int port)
121
{
122
 int __ret;
123
 __asm__("int $0x40":"=a"(__ret):"a"(__NET_socket),"b"(__NET_sock_check_port),
124
  "c"(port));
125
 return __ret;
126
}