Skip to content

Commit aa9eddf

Browse files
committed
Use correct types for syscalls (2)
1 parent 940873f commit aa9eddf

File tree

10 files changed

+334
-345
lines changed

10 files changed

+334
-345
lines changed

src/lib/libsigs.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -230,11 +230,11 @@ sigs = {
230230
__pthread_create_js__sig: 'ipppp',
231231
__resumeException__sig: 'vp',
232232
__syscall__newselect__sig: 'iipppp',
233-
__syscall_accept4__sig: 'iippiii',
234-
__syscall_bind__sig: 'iippiii',
233+
__syscall_accept4__sig: 'iippip',
234+
__syscall_bind__sig: 'iipip',
235235
__syscall_chdir__sig: 'ip',
236236
__syscall_chmod__sig: 'ipi',
237-
__syscall_connect__sig: 'iippiii',
237+
__syscall_connect__sig: 'iipip',
238238
__syscall_dup__sig: 'ii',
239239
__syscall_dup3__sig: 'iiii',
240240
__syscall_faccessat__sig: 'iipii',
@@ -252,27 +252,27 @@ sigs = {
252252
__syscall_ftruncate64__sig: 'iij',
253253
__syscall_getcwd__sig: 'ipp',
254254
__syscall_getdents64__sig: 'iipp',
255-
__syscall_getpeername__sig: 'iippiii',
256-
__syscall_getsockname__sig: 'iippiii',
257-
__syscall_getsockopt__sig: 'iiiippi',
255+
__syscall_getpeername__sig: 'iippp',
256+
__syscall_getsockname__sig: 'iippp',
257+
__syscall_getsockopt__sig: 'iiiippp',
258258
__syscall_ioctl__sig: 'iiip',
259-
__syscall_listen__sig: 'iiiiiii',
259+
__syscall_listen__sig: 'iiip',
260260
__syscall_lstat64__sig: 'ipp',
261261
__syscall_mkdirat__sig: 'iipi',
262262
__syscall_mknodat__sig: 'iipii',
263263
__syscall_newfstatat__sig: 'iippi',
264264
__syscall_openat__sig: 'iipip',
265265
__syscall_pipe__sig: 'ip',
266-
__syscall_poll__sig: 'ipii',
266+
__syscall_poll__sig: 'ippi',
267267
__syscall_readlinkat__sig: 'iippp',
268-
__syscall_recvfrom__sig: 'iippipp',
269-
__syscall_recvmsg__sig: 'iipiiii',
268+
__syscall_recvfrom__sig: 'pippipp',
269+
__syscall_recvmsg__sig: 'pipip',
270270
__syscall_renameat__sig: 'iipip',
271271
__syscall_rmdir__sig: 'ip',
272-
__syscall_sendmsg__sig: 'iipippi',
273-
__syscall_sendto__sig: 'iippipp',
274-
__syscall_shutdown__sig: 'iiiiiii',
275-
__syscall_socket__sig: 'iiiiiii',
272+
__syscall_sendmsg__sig: 'pipip',
273+
__syscall_sendto__sig: 'pippipi',
274+
__syscall_shutdown__sig: 'iiip',
275+
__syscall_socket__sig: 'iiiip',
276276
__syscall_stat64__sig: 'ipp',
277277
__syscall_statfs64__sig: 'ippp',
278278
__syscall_symlinkat__sig: 'ipip',

src/lib/libsyscall.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -345,15 +345,15 @@ var SyscallsLibrary = {
345345
return info;
346346
},
347347
__syscall_socket__deps: ['$SOCKFS'],
348-
__syscall_socket: (domain, type, protocol) => {
348+
__syscall_socket: (domain, type, protocol, varargs) => {
349349
var sock = SOCKFS.createSocket(domain, type, protocol);
350350
#if ASSERTIONS
351351
assert(sock.stream.fd < 64); // XXX ? select() assumes socket fd values are in 0..63
352352
#endif
353353
return sock.stream.fd;
354354
},
355355
__syscall_getsockname__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
356-
__syscall_getsockname: (fd, addr, addrlen, d1, d2, d3) => {
356+
__syscall_getsockname: (fd, addr, addrlen, varargs) => {
357357
var sock = getSocketFromFD(fd);
358358
// TODO: sock.saddr should never be undefined, see TODO in websocket_sock_ops.getname
359359
var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(sock.saddr || '0.0.0.0'), sock.sport, addrlen);
@@ -363,7 +363,7 @@ var SyscallsLibrary = {
363363
return 0;
364364
},
365365
__syscall_getpeername__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
366-
__syscall_getpeername: (fd, addr, addrlen, d1, d2, d3) => {
366+
__syscall_getpeername: (fd, addr, addrlen, varargs) => {
367367
var sock = getSocketFromFD(fd);
368368
if (!sock.daddr) {
369369
return -{{{ cDefs.ENOTCONN }}}; // The socket is not connected.
@@ -375,19 +375,19 @@ var SyscallsLibrary = {
375375
return 0;
376376
},
377377
__syscall_connect__deps: ['$getSocketFromFD', '$getSocketAddress'],
378-
__syscall_connect: (fd, addr, addrlen, d1, d2, d3) => {
378+
__syscall_connect: (fd, addr, addrlen, varargs) => {
379379
var sock = getSocketFromFD(fd);
380380
var info = getSocketAddress(addr, addrlen);
381381
sock.sock_ops.connect(sock, info.addr, info.port);
382382
return 0;
383383
},
384384
__syscall_shutdown__deps: ['$getSocketFromFD'],
385-
__syscall_shutdown: (fd, how) => {
385+
__syscall_shutdown: (fd, how, varargs) => {
386386
getSocketFromFD(fd);
387387
return -{{{ cDefs.ENOSYS }}}; // unsupported feature
388388
},
389389
__syscall_accept4__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
390-
__syscall_accept4: (fd, addr, addrlen, flags, d1, d2) => {
390+
__syscall_accept4: (fd, addr, addrlen, flags, varargs) => {
391391
var sock = getSocketFromFD(fd);
392392
var newsock = sock.sock_ops.accept(sock);
393393
if (addr) {
@@ -399,14 +399,14 @@ var SyscallsLibrary = {
399399
return newsock.stream.fd;
400400
},
401401
__syscall_bind__deps: ['$getSocketFromFD', '$getSocketAddress'],
402-
__syscall_bind: (fd, addr, addrlen, d1, d2, d3) => {
402+
__syscall_bind: (fd, addr, addrlen, varargs) => {
403403
var sock = getSocketFromFD(fd);
404404
var info = getSocketAddress(addr, addrlen);
405405
sock.sock_ops.bind(sock, info.addr, info.port);
406406
return 0;
407407
},
408408
__syscall_listen__deps: ['$getSocketFromFD'],
409-
__syscall_listen: (fd, backlog) => {
409+
__syscall_listen: (fd, backlog, varargs) => {
410410
var sock = getSocketFromFD(fd);
411411
sock.sock_ops.listen(sock, backlog);
412412
return 0;
@@ -437,7 +437,7 @@ var SyscallsLibrary = {
437437
return sock.sock_ops.sendmsg(sock, HEAP8, message, length, dest.addr, dest.port);
438438
},
439439
__syscall_getsockopt__deps: ['$getSocketFromFD'],
440-
__syscall_getsockopt: (fd, level, optname, optval, optlen, d1) => {
440+
__syscall_getsockopt: (fd, level, optname, optval, optlen, varargs) => {
441441
var sock = getSocketFromFD(fd);
442442
// Minimal getsockopt aimed at resolving https://github.com/emscripten-core/emscripten/issues/2211
443443
// so only supports SOL_SOCKET with SO_ERROR.
@@ -452,7 +452,7 @@ var SyscallsLibrary = {
452452
return -{{{ cDefs.ENOPROTOOPT }}}; // The option is unknown at the level indicated.
453453
},
454454
__syscall_sendmsg__deps: ['$getSocketFromFD', '$getSocketAddress'],
455-
__syscall_sendmsg: (fd, message, flags, d1, d2, d3) => {
455+
__syscall_sendmsg: (fd, message, flags, varargs) => {
456456
var sock = getSocketFromFD(fd);
457457
var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, '*') }}};
458458
var num = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iovlen, 'i32') }}};
@@ -483,7 +483,7 @@ var SyscallsLibrary = {
483483
return sock.sock_ops.sendmsg(sock, view, 0, total, addr, port);
484484
},
485485
__syscall_recvmsg__deps: ['$getSocketFromFD', '$writeSockaddr', '$DNS'],
486-
__syscall_recvmsg: (fd, message, flags, d1, d2, d3) => {
486+
__syscall_recvmsg: (fd, message, flags, varargs) => {
487487
var sock = getSocketFromFD(fd);
488488
var iov = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iov, '*') }}};
489489
var num = {{{ makeGetValue('message', C_STRUCTS.msghdr.msg_iovlen, 'i32') }}};

system/lib/libc/emscripten_internal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ int _mmap_js(size_t length,
7676
int* allocated,
7777
void** addr);
7878
int _munmap_js(
79-
intptr_t addr, size_t length, int prot, int flags, int fd, off_t offset);
79+
void *addr, size_t length, int prot, int flags, int fd, off_t offset);
8080
int _msync_js(
81-
intptr_t addr, size_t length, int prot, int flags, int fd, off_t offset);
81+
void *addr, size_t length, int prot, int flags, int fd, off_t offset);
8282

8383
struct dso;
8484

system/lib/libc/emscripten_mmap.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ struct map {
3535
static volatile int lock[1];
3636
static struct map* mappings;
3737

38-
static struct map* find_mapping(intptr_t addr, struct map** prev) {
38+
static struct map* find_mapping(void *addr, struct map** prev) {
3939
struct map* map = mappings;
4040
while (map) {
41-
if (map->addr == (void*)addr) {
41+
if (map->addr == addr) {
4242
return map;
4343
}
4444
if (prev) {
@@ -49,7 +49,7 @@ static struct map* find_mapping(intptr_t addr, struct map** prev) {
4949
return map;
5050
}
5151

52-
int __syscall_munmap(intptr_t addr, size_t length) {
52+
int __syscall_munmap(void *addr, size_t length) {
5353
LOCK(lock);
5454
struct map* prev = NULL;
5555
struct map* map = find_mapping(addr, &prev);
@@ -89,7 +89,7 @@ int __syscall_munmap(intptr_t addr, size_t length) {
8989
return 0;
9090
}
9191

92-
int __syscall_msync(intptr_t addr, size_t len, int flags) {
92+
int __syscall_msync(void *addr, size_t len, int flags) {
9393
LOCK(lock);
9494
struct map* map = find_mapping(addr, NULL);
9595
UNLOCK(lock);
@@ -102,7 +102,7 @@ int __syscall_msync(intptr_t addr, size_t len, int flags) {
102102
return _msync_js(addr, len, map->prot, map->flags, map->fd, map->offset);
103103
}
104104

105-
intptr_t __syscall_mmap2(intptr_t addr, size_t len, int prot, int flags, int fd, off_t offset) {
105+
void *__syscall_mmap2(void *addr, size_t len, int prot, int flags, int fd, off_t offset) {
106106
if (addr != 0) {
107107
// We don't currently support location hints for the address of the mapping
108108
return -EINVAL;
@@ -147,5 +147,5 @@ intptr_t __syscall_mmap2(intptr_t addr, size_t len, int prot, int flags, int fd,
147147
mappings = new_map;
148148
UNLOCK(lock);
149149

150-
return (long)new_map->addr;
150+
return new_map->addr;
151151
}

0 commit comments

Comments
 (0)