File: Socket.c

package info (click to toggle)
mlton 20041109-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 18,212 kB
  • ctags: 58,085
  • sloc: ansic: 10,386; makefile: 1,178; sh: 1,139; pascal: 256; asm: 97
file content (95 lines) | stat: -rw-r--r-- 2,767 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "platform.h"

Int Socket_accept (Int s, Char *addr, Int *addrlen) {
	MLton_initSockets ();
	return accept (s, (struct sockaddr*)addr, (socklen_t*)addrlen);
}

Int Socket_bind (Int s, Char *addr, Int addrlen) {
	MLton_initSockets ();
	return bind (s, (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_close(Int s) {
	return close(s);
}

Int Socket_connect (Int s, Char *addr, Int addrlen) {
	MLton_initSockets ();
	return connect (s, (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_familyOfAddr(Char *addr) {
	return ((struct sockaddr*)addr)->sa_family;
}

Int Socket_listen (Int s, Int backlog) {
	MLton_initSockets ();
	return listen (s, backlog);
}

Int Socket_recv (Int s, Char *msg, Int start, Int len, Word flags) {
	MLton_initSockets ();
	return recv (s, (void*)((char *)msg + start), (size_t)len, flags);
}

Int Socket_recvFrom (Int s, Char *msg, Int start, Int len, Word flags,
                    Char* addr, Int *addrlen) {
	MLton_initSockets ();
	return recvfrom (s, (void*)((char *)msg + start), (size_t)len, flags,
	                        (struct sockaddr*)addr, (socklen_t*)addrlen);
}

Int Socket_send (Int s, Char *msg, Int start, Int len, Word flags) {
	MLton_initSockets ();
	return send (s, (void*)((char *)msg + start), (size_t)len, flags);
}

Int Socket_sendTo (Int s, Char *msg, Int start, Int len, Word flags,
                  Char* addr, Int addrlen) {
	MLton_initSockets ();
	return sendto (s, (void*)((char *)msg + start), (size_t)len, flags,
                      (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_shutdown (Int s, Int how) {
	MLton_initSockets ();
	return shutdown (s, how);
}

Int GenericSock_socket (Int domain, Int type, Int protocol) {
	MLton_initSockets ();
	return socket (domain, type, protocol);
}

Int Socket_socketPair (Int domain, Int type, Int protocol, Int sv[2]) {
	MLton_initSockets ();
	return socketpair (domain, type, protocol, (int*)sv);
}

Int Socket_Ctl_getSockOpt (Int s, Int level, Int optname, Char *optval,
				 Int *optlen) {
	MLton_initSockets ();
	return getsockopt (s, level, optname, (void*)optval, (socklen_t*)optlen);
}

Int Socket_Ctl_setSockOpt (Int s, Int level, Int optname, Char *optval, 
				Int optlen) {
	MLton_initSockets ();
	return setsockopt (s, level, optname, (void*)optval, (socklen_t)optlen);
}

Int Socket_Ctl_getsetIOCtl (Int s, Int request, Char* argp) {
	MLton_initSockets ();
	return ioctl (s, request, argp);
}

Int Socket_Ctl_getPeerName (Int s, Char *name, Int *namelen) {
	MLton_initSockets ();
	return getpeername (s, (struct sockaddr*)name, (socklen_t*)namelen);
}

Int Socket_Ctl_getSockName (Int s, Char *name, Int *namelen) {
	MLton_initSockets ();
	return getsockname (s, (struct sockaddr*)name, (socklen_t*)namelen);
}