Skip to content

Commit 200c5a8

Browse files
committed
Use correct data types in internal syscall layer. NFC
1 parent 90250aa commit 200c5a8

File tree

5 files changed

+96
-90
lines changed

5 files changed

+96
-90
lines changed

system/lib/libc/emscripten_syscall_stubs.c

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
#include <emscripten/version.h>
2626
#include <emscripten/stack.h>
2727

28-
static int g_pid = 42;
29-
static int g_pgid = 42;
30-
static int g_ppid = 1;
31-
static int g_sid = 42;
28+
static pid_t g_pid = 42;
29+
static pid_t g_pgid = 42;
30+
static pid_t g_ppid = 1;
31+
static pid_t g_sid = 42;
3232
static mode_t g_umask = S_IWGRP | S_IWOTH;
3333

3434
#ifdef NDEBUG
@@ -69,7 +69,7 @@ weak int __syscall_uname(intptr_t buf) {
6969
return 0;
7070
}
7171

72-
weak int __syscall_setpgid(int pid, int pgid) {
72+
weak int __syscall_setpgid(pid_t pid, pid_t pgid) {
7373
if (pid && pid != g_pid) {
7474
return -ESRCH;
7575
}
@@ -83,46 +83,46 @@ weak int __syscall_sync() {
8383
return 0;
8484
}
8585

86-
weak int __syscall_getsid(int pid) {
86+
weak pid_t __syscall_getsid(pid_t pid) {
8787
if (pid && pid != g_pid) {
8888
return -ESRCH;
8989
}
9090
return g_sid;
9191
}
9292

93-
weak int __syscall_getpgid(int pid) {
93+
weak pid_t __syscall_getpgid(pid_t pid) {
9494
if (pid && pid != g_pid) {
9595
return -ESRCH;
9696
}
9797
return g_pgid;
9898
}
9999

100-
weak int __syscall_getpid() {
100+
weak pid_t __syscall_getpid() {
101101
return g_pid;
102102
}
103103

104-
weak int __syscall_getppid() {
104+
weak pid_t __syscall_getppid() {
105105
return g_ppid;
106106
}
107107

108108
weak int __syscall_linkat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath, int flags) {
109109
return -EMLINK; // no hardlinks for us
110110
}
111111

112-
weak int __syscall_getgroups32(int size, intptr_t list) {
113-
if (size < 1) {
112+
weak int __syscall_getgroups32(int count, intptr_t list) {
113+
if (count < 1) {
114114
return -EINVAL;
115115
}
116116
((gid_t*)list)[0] = 0;
117117
return 1;
118118
}
119119

120-
weak int __syscall_setsid() {
120+
weak pid_t __syscall_setsid() {
121121
return 0; // no-op
122122
}
123123

124-
weak int __syscall_umask(int mask) {
125-
int old = g_umask;
124+
weak mode_t __syscall_umask(mode_t mask) {
125+
mode_t old = g_umask;
126126
g_umask = mask;
127127
return old;
128128
}
@@ -144,31 +144,31 @@ weak int __syscall_getrusage(int who, intptr_t usage) {
144144
return 0;
145145
}
146146

147-
weak int __syscall_getpriority(int which, int who) {
147+
weak int __syscall_getpriority(int which, id_t who) {
148148
return 0;
149149
}
150150

151-
weak int __syscall_setpriority(int which, int who, int prio) {
151+
weak int __syscall_setpriority(int which, id_t who, int prio) {
152152
return -EPERM;
153153
}
154154

155155
weak int __syscall_setdomainname(intptr_t name, size_t size) {
156156
return -EPERM;
157157
}
158158

159-
weak int __syscall_getuid32(void) {
159+
weak uid_t __syscall_getuid32(void) {
160160
return 0;
161161
}
162162

163-
weak int __syscall_getgid32(void) {
163+
weak gid_t __syscall_getgid32(void) {
164164
return 0;
165165
}
166166

167-
weak int __syscall_geteuid32(void) {
167+
weak uid_t __syscall_geteuid32(void) {
168168
return 0;
169169
}
170170

171-
weak int __syscall_getegid32(void) {
171+
weak gid_t __syscall_getegid32(void) {
172172
return 0;
173173
}
174174

@@ -228,7 +228,7 @@ weak int __syscall_munlockall() {
228228
return 0;
229229
}
230230

231-
weak int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t old_limit) {
231+
weak int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit) {
232232
REPORT(prlimit64);
233233
struct rlimit *old = (struct rlimit *)old_limit;
234234
if (new_limit) {
@@ -255,17 +255,21 @@ weak int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t
255255
return 0;
256256
}
257257

258-
weak int __syscall_setsockopt(int sockfd, int level, int optname, intptr_t optval, size_t optlen, int dummy) {
258+
weak int __syscall_setsockopt(int sockfd, int level, int optname, intptr_t optval, socklen_t optlen, int dummy) {
259259
REPORT(setsockopt);
260260
return -ENOPROTOOPT; // The option is unknown at the level indicated.
261261
}
262262

263+
weak pid_t __syscall_wait4(pid_t pid, intptr_t wstatus, int options, int rusage) {
264+
REPORT(wait4);
265+
return (pid_t)-1;
266+
}
267+
263268
UNIMPLEMENTED(acct, (intptr_t filename))
264269
UNIMPLEMENTED(mincore, (intptr_t addr, size_t length, intptr_t vec))
265270
UNIMPLEMENTED(pipe2, (intptr_t fds, int flags))
266271
UNIMPLEMENTED(pselect6, (int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout, intptr_t sigmaks))
267-
UNIMPLEMENTED(recvmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ...))
268-
UNIMPLEMENTED(sendmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ...))
272+
UNIMPLEMENTED(recvmmsg, (int sockfd, intptr_t msgvec, unsigned int vlen, unsigned int flags, ...))
273+
UNIMPLEMENTED(sendmmsg, (int sockfd, intptr_t msgvec, unsigned int vlen, unsigned int flags, ...))
269274
UNIMPLEMENTED(shutdown, (int sockfd, int how, int dummy, int dummy2, int dummy3, int dummy4))
270275
UNIMPLEMENTED(socketpair, (int domain, int type, int protocol, intptr_t fds, int dummy, int dummy2))
271-
UNIMPLEMENTED(wait4,(int pid, intptr_t wstatus, int options, int rusage))

system/lib/libc/musl/arch/emscripten/syscall_arch.h

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include <poll.h>
2+
#include <sys/socket.h>
13
#include <sys/types.h>
24
#include <wasi/api.h>
35
#include <wasi/wasi-helpers.h>
@@ -13,9 +15,9 @@ extern "C" {
1315
#endif
1416

1517
int __syscall_chdir(intptr_t path);
16-
int __syscall_mknod(intptr_t path, int mode, int dev);
17-
int __syscall_chmod(intptr_t path, int mode);
18-
int __syscall_getpid(void);
18+
int __syscall_mknod(intptr_t path, mode_t mode, dev_t dev);
19+
int __syscall_chmod(intptr_t path, mode_t mode);
20+
pid_t __syscall_getpid(void);
1921
int __syscall_pause(void);
2022
int __syscall_access(intptr_t path, int amode);
2123
int __syscall_sync(void);
@@ -24,54 +26,54 @@ int __syscall_dup(int fd);
2426
int __syscall_pipe(intptr_t fd);
2527
int __syscall_acct(intptr_t filename);
2628
int __syscall_ioctl(int fd, int request, ...);
27-
int __syscall_setpgid(int pid, int gpid);
28-
int __syscall_umask(int mask);
29-
int __syscall_getppid(void);
30-
int __syscall_getpgrp(void);
31-
int __syscall_setsid(void);
29+
int __syscall_setpgid(pid_t pid, pid_t gpid);
30+
mode_t __syscall_umask(mode_t mask);
31+
pid_t __syscall_getppid(void);
32+
pid_t __syscall_getpgrp(void);
33+
pid_t __syscall_setsid(void);
3234
int __syscall_getrusage(int who, intptr_t usage);
3335
int __syscall_munmap(intptr_t addr, size_t len);
34-
int __syscall_fchmod(int fd, int mode);
35-
int __syscall_getpriority(int which, int who);
36-
int __syscall_setpriority(int which, int who, int prio);
36+
int __syscall_fchmod(int fd, mode_t mode);
37+
int __syscall_getpriority(int which, id_t who);
38+
int __syscall_setpriority(int which, id_t who, int prio);
3739
int __syscall_socketcall(int call, intptr_t args);
38-
int __syscall_wait4(int pid, intptr_t wstatus, int options, int rusage);
40+
pid_t __syscall_wait4(pid_t pid, intptr_t wstatus, int options, int rusage);
3941
int __syscall_setdomainname(intptr_t name, size_t size);
4042
int __syscall_uname(intptr_t buf);
4143
int __syscall_mprotect(size_t addr, size_t len, int prot);
42-
int __syscall_getpgid(int pid);
44+
pid_t __syscall_getpgid(pid_t pid);
4345
int __syscall_fchdir(int fd);
4446
int __syscall__newselect(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout);
4547
int __syscall_msync(intptr_t addr, size_t len, int flags);
46-
int __syscall_getsid(int pid);
48+
pid_t __syscall_getsid(pid_t pid);
4749
int __syscall_fdatasync(int fd);
4850
int __syscall_mlock(intptr_t addr, size_t len);
4951
int __syscall_munlock(intptr_t addr, size_t len);
5052
int __syscall_mlockall(int flags);
5153
int __syscall_munlockall(void);
5254
int __syscall_mremap(intptr_t old_addr, size_t old_size, size_t new_size, int flags, intptr_t new_addr);
53-
int __syscall_poll(intptr_t fds, int nfds, int timeout);
55+
int __syscall_poll(intptr_t fds, nfds_t nfds, int timeout);
5456
int __syscall_getcwd(intptr_t buf, size_t size);
5557
intptr_t __syscall_mmap2(intptr_t addr, size_t len, int prot, int flags, int fd, off_t offset);
5658
int __syscall_truncate64(intptr_t path, off_t length);
5759
int __syscall_ftruncate64(int fd, off_t length);
5860
int __syscall_stat64(intptr_t path, intptr_t buf);
5961
int __syscall_lstat64(intptr_t path, intptr_t buf);
6062
int __syscall_fstat64(int fd, intptr_t buf);
61-
int __syscall_getuid32(void);
62-
int __syscall_getgid32(void);
63-
int __syscall_geteuid32(void);
64-
int __syscall_getegid32(void);
65-
int __syscall_setreuid32(int ruid, int euid);
66-
int __syscall_setregid32(int rgid, int egid);
67-
int __syscall_getgroups32(int size, intptr_t list);
68-
int __syscall_fchown32(int fd, int owner, int group);
69-
int __syscall_setresuid32(int ruid, int euid, int suid);
63+
uid_t __syscall_getuid32(void);
64+
gid_t __syscall_getgid32(void);
65+
uid_t __syscall_geteuid32(void);
66+
gid_t __syscall_getegid32(void);
67+
int __syscall_setreuid32(uid_t ruid, uid_t euid);
68+
int __syscall_setregid32(gid_t rgid, gid_t egid);
69+
int __syscall_getgroups32(int count, intptr_t list);
70+
int __syscall_fchown32(int fd, uid_t owner, gid_t group);
71+
int __syscall_setresuid32(uid_t ruid, uid_t euid, uid_t suid);
7072
int __syscall_getresuid32(intptr_t ruid, intptr_t euid, intptr_t suid);
71-
int __syscall_setresgid32(int rgid, int egid, int sgid);
73+
int __syscall_setresgid32(gid_t rgid, gid_t egid, gid_t sgid);
7274
int __syscall_getresgid32(intptr_t rgid, intptr_t egid, intptr_t sgid);
73-
int __syscall_setuid32(int uid);
74-
int __syscall_setgid32(int uid);
75+
int __syscall_setuid32(uid_t uid);
76+
int __syscall_setgid32(gid_t gid);
7577
int __syscall_mincore(intptr_t addr, size_t length, intptr_t vec);
7678
int __syscall_madvise(intptr_t addr, size_t length, int advice);
7779
int __syscall_getdents64(int fd, intptr_t dirp, size_t count);
@@ -80,39 +82,39 @@ int __syscall_statfs64(intptr_t path, size_t size, intptr_t buf);
8082
int __syscall_fstatfs64(int fd, size_t size, intptr_t buf);
8183
int __syscall_fadvise64(int fd, off_t offset, off_t length, int advice);
8284
int __syscall_openat(int dirfd, intptr_t path, int flags, ...); // mode is optional
83-
int __syscall_mkdirat(int dirfd, intptr_t path, int mode);
84-
int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev);
85-
int __syscall_fchownat(int dirfd, intptr_t path, int owner, int group, int flags);
85+
int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode);
86+
int __syscall_mknodat(int dirfd, intptr_t path, mode_t mode, dev_t dev);
87+
int __syscall_fchownat(int dirfd, intptr_t path, uid_t owner, gid_t group, int flags);
8688
int __syscall_newfstatat(int dirfd, intptr_t path, intptr_t buf, int flags);
8789
int __syscall_unlinkat(int dirfd, intptr_t path, int flags);
8890
int __syscall_renameat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath);
8991
int __syscall_linkat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath, int flags);
9092
int __syscall_symlinkat(intptr_t target, int newdirfd, intptr_t linkpath);
9193
int __syscall_readlinkat(int dirfd, intptr_t path, intptr_t buf, size_t bufsize);
92-
int __syscall_fchmodat2(int dirfd, intptr_t path, int mode, int flags);
94+
int __syscall_fchmodat2(int dirfd, intptr_t path, mode_t mode, int flags);
9395
int __syscall_faccessat(int dirfd, intptr_t path, int amode, int flags);
9496
int __syscall_pselect6(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout, intptr_t sigmaks);
9597
int __syscall_utimensat(int dirfd, intptr_t path, intptr_t times, int flags);
9698
int __syscall_fallocate(int fd, int mode, off_t offset, off_t len);
9799
int __syscall_dup3(int fd, int suggestfd, int flags);
98100
int __syscall_pipe2(intptr_t fds, int flags);
99-
int __syscall_recvmmsg(int sockfd, intptr_t msgvec, size_t vlen, int flags, ...);
100-
int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t old_limit);
101-
int __syscall_sendmmsg(int sockfd, intptr_t msgvec, size_t vlen, int flags, ...);
101+
int __syscall_recvmmsg(int sockfd, intptr_t msgvec, unsigned int vlen, unsigned int flags, ...);
102+
int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit);
103+
int __syscall_sendmmsg(int sockfd, intptr_t msgvec, unsigned int vlen, unsigned int flags, ...);
102104
int __syscall_socket(int domain, int type, int protocol, int dummy1, int dummy2, int dummy3);
103105
int __syscall_socketpair(int domain, int type, int protocol, intptr_t fds, int dummy, int dummy2);
104-
int __syscall_bind(int sockfd, intptr_t addr, size_t alen, int dummy, int dummy2, int dummy3);
105-
int __syscall_connect(int sockfd, intptr_t addr, size_t len, int dummy, int dummy2, int dummy3);
106+
int __syscall_bind(int sockfd, intptr_t addr, socklen_t alen, int dummy, int dummy2, int dummy3);
107+
int __syscall_connect(int sockfd, intptr_t addr, socklen_t len, int dummy, int dummy2, int dummy3);
106108
int __syscall_listen(int sockfd, int backlock, int dummy1, int dummy2, int dummy3, int dummy4);
107109
int __syscall_accept4(int sockfd, intptr_t addr, intptr_t addrlen, int flags, int dummy1, int dummy2);
108110
int __syscall_getsockopt(int sockfd, int level, int optname, intptr_t optval, intptr_t optlen, int dummy);
109-
int __syscall_setsockopt(int sockfd, int level, int optname, intptr_t optval, size_t optlen, int dummy);
111+
int __syscall_setsockopt(int sockfd, int level, int optname, intptr_t optval, socklen_t optlen, int dummy);
110112
int __syscall_getsockname(int sockfd, intptr_t addr, intptr_t len, int dummy, int dummy2, int dummy3);
111113
int __syscall_getpeername(int sockfd, intptr_t addr, intptr_t len, int dummy, int dummy2, int dummy3);
112-
int __syscall_sendto(int sockfd, intptr_t msg, size_t len, int flags, intptr_t addr, size_t alen);
113-
int __syscall_sendmsg(int sockfd, intptr_t msg , int flags, intptr_t addr, size_t alen, int dummy);
114-
int __syscall_recvfrom(int sockfd, intptr_t msg, size_t len, int flags, intptr_t addr, intptr_t alen);
115-
int __syscall_recvmsg(int sockfd, intptr_t msg, int flags, int dummy, int dummy2, int dummy3);
114+
ssize_t __syscall_sendto(int sockfd, intptr_t msg, size_t len, int flags, intptr_t addr, socklen_t alen);
115+
ssize_t __syscall_sendmsg(int sockfd, intptr_t msg , int flags, intptr_t addr, size_t alen, int dummy);
116+
ssize_t __syscall_recvfrom(int sockfd, intptr_t msg, size_t len, int flags, intptr_t addr, intptr_t alen);
117+
ssize_t __syscall_recvmsg(int sockfd, intptr_t msg, int flags, int dummy, int dummy2, int dummy3);
116118
int __syscall_shutdown(int sockfd, int how, int dummy, int dummy2, int dummy3, int dummy4);
117119

118120
#ifdef __cplusplus

system/lib/standalone/standalone.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ weak int __syscall_dup(int fd) {
103103
return -ENOSYS;
104104
}
105105

106-
weak int __syscall_mkdirat(int dirfd, intptr_t path, int mode) {
106+
weak int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode) {
107107
return -ENOSYS;
108108
}
109109

system/lib/wasmfs/js_api.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ int _wasmfs_write_file(const char* pathname, char* data, size_t data_size) {
114114
return data_size;
115115
}
116116

117-
int _wasmfs_mkdir(const char* path, int mode) {
117+
int _wasmfs_mkdir(const char* path, mode_t mode) {
118118
return __syscall_mkdirat(AT_FDCWD, (intptr_t)path, mode);
119119
}
120120

0 commit comments

Comments
 (0)