Skip to content

Commit b8e058c

Browse files
committed
Use correct types for syscalls
1 parent 10bf849 commit b8e058c

File tree

5 files changed

+64
-64
lines changed

5 files changed

+64
-64
lines changed

system/lib/libc/emscripten_syscall_stubs.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
#include <emscripten/console.h>
2525
#include <emscripten/version.h>
2626

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

3333
#ifdef NDEBUG
@@ -68,7 +68,7 @@ weak int __syscall_uname(intptr_t buf) {
6868
return 0;
6969
}
7070

71-
weak int __syscall_setpgid(int pid, int pgid) {
71+
weak int __syscall_setpgid(pid_t pid, pid_t pgid) {
7272
if (pid && pid != g_pid) {
7373
return -ESRCH;
7474
}
@@ -82,46 +82,46 @@ weak int __syscall_sync() {
8282
return 0;
8383
}
8484

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

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

99-
weak int __syscall_getpid() {
99+
weak pid_t __syscall_getpid() {
100100
return g_pid;
101101
}
102102

103-
weak int __syscall_getppid() {
103+
weak pid_t __syscall_getppid() {
104104
return g_ppid;
105105
}
106106

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

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

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

123-
weak int __syscall_umask(int mask) {
124-
int old = g_umask;
123+
weak mode_t __syscall_umask(mode_t mask) {
124+
mode_t old = g_umask;
125125
g_umask = mask;
126126
return old;
127127
}
@@ -137,31 +137,31 @@ weak int __syscall_getrusage(int who, intptr_t usage) {
137137
return 0;
138138
}
139139

140-
weak int __syscall_getpriority(int which, int who) {
140+
weak int __syscall_getpriority(int which, id_t who) {
141141
return 0;
142142
}
143143

144-
weak int __syscall_setpriority(int which, int who, int prio) {
144+
weak int __syscall_setpriority(int which, id_t who, int prio) {
145145
return -EPERM;
146146
}
147147

148148
weak int __syscall_setdomainname(intptr_t name, size_t size) {
149149
return -EPERM;
150150
}
151151

152-
weak int __syscall_getuid32(void) {
152+
weak uid_t __syscall_getuid32(void) {
153153
return 0;
154154
}
155155

156-
weak int __syscall_getgid32(void) {
156+
weak gid_t __syscall_getgid32(void) {
157157
return 0;
158158
}
159159

160-
weak int __syscall_geteuid32(void) {
160+
weak uid_t __syscall_geteuid32(void) {
161161
return 0;
162162
}
163163

164-
weak int __syscall_getegid32(void) {
164+
weak gid_t __syscall_getegid32(void) {
165165
return 0;
166166
}
167167

@@ -221,7 +221,7 @@ weak int __syscall_munlockall() {
221221
return 0;
222222
}
223223

224-
weak int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t old_limit) {
224+
weak int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit) {
225225
REPORT(prlimit64);
226226
struct rlimit *old = (struct rlimit *)old_limit;
227227
if (new_limit) {
@@ -254,4 +254,4 @@ UNIMPLEMENTED(recvmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ..
254254
UNIMPLEMENTED(sendmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ...))
255255
UNIMPLEMENTED(shutdown, (int sockfd, int how, int dummy, int dummy2, int dummy3, int dummy4))
256256
UNIMPLEMENTED(socketpair, (int domain, int type, int protocol, intptr_t fds, int dummy, int dummy2))
257-
UNIMPLEMENTED(wait4,(int pid, intptr_t wstatus, int options, int rusage))
257+
UNIMPLEMENTED(wait4,(pid_t pid, intptr_t wstatus, int options, int rusage))

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

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ extern "C" {
1313
#endif
1414

1515
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);
16+
int __syscall_mknod(intptr_t path, mode_t mode, dev_t dev);
17+
int __syscall_chmod(intptr_t path, mode_t mode);
18+
pid_t __syscall_getpid(void);
1919
int __syscall_pause(void);
2020
int __syscall_access(intptr_t path, int amode);
2121
int __syscall_sync(void);
@@ -24,26 +24,26 @@ int __syscall_dup(int fd);
2424
int __syscall_pipe(intptr_t fd);
2525
int __syscall_acct(intptr_t filename);
2626
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);
27+
int __syscall_setpgid(pid_t pid, pid_t gpid);
28+
mode_t __syscall_umask(mode_t mask);
29+
pid_t __syscall_getppid(void);
30+
pid_t __syscall_getpgrp(void);
31+
pid_t __syscall_setsid(void);
3232
int __syscall_getrusage(int who, intptr_t usage);
3333
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);
34+
int __syscall_fchmod(int fd, mode_t mode);
35+
int __syscall_getpriority(int which, id_t who);
36+
int __syscall_setpriority(int which, id_t who, int prio);
3737
int __syscall_socketcall(int call, intptr_t args);
38-
int __syscall_wait4(int pid, intptr_t wstatus, int options, int rusage);
38+
pid_t __syscall_wait4(pid_t pid, intptr_t wstatus, int options, int rusage);
3939
int __syscall_setdomainname(intptr_t name, size_t size);
4040
int __syscall_uname(intptr_t buf);
4141
int __syscall_mprotect(size_t addr, size_t len, int prot);
42-
int __syscall_getpgid(int pid);
42+
pid_t __syscall_getpgid(pid_t pid);
4343
int __syscall_fchdir(int fd);
4444
int __syscall__newselect(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout);
4545
int __syscall_msync(intptr_t addr, size_t len, int flags);
46-
int __syscall_getsid(int pid);
46+
pid_t __syscall_getsid(pid_t pid);
4747
int __syscall_fdatasync(int fd);
4848
int __syscall_mlock(intptr_t addr, size_t len);
4949
int __syscall_munlock(intptr_t addr, size_t len);
@@ -58,20 +58,20 @@ int __syscall_ftruncate64(int fd, off_t length);
5858
int __syscall_stat64(intptr_t path, intptr_t buf);
5959
int __syscall_lstat64(intptr_t path, intptr_t buf);
6060
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);
61+
uid_t __syscall_getuid32(void);
62+
gid_t __syscall_getgid32(void);
63+
uid_t __syscall_geteuid32(void);
64+
gid_t __syscall_getegid32(void);
65+
int __syscall_setreuid32(uid_t ruid, uid_t euid);
66+
int __syscall_setregid32(gid_t rgid, gid_t egid);
67+
int __syscall_getgroups32(int count, intptr_t list);
68+
int __syscall_fchown32(int fd, uid_t owner, gid_t group);
69+
int __syscall_setresuid32(uid_t ruid, uid_t euid, uid_t suid);
7070
int __syscall_getresuid32(intptr_t ruid, intptr_t euid, intptr_t suid);
71-
int __syscall_setresgid32(int rgid, int egid, int sgid);
71+
int __syscall_setresgid32(gid_t rgid, gid_t egid, gid_t sgid);
7272
int __syscall_getresgid32(intptr_t rgid, intptr_t egid, intptr_t sgid);
73-
int __syscall_setuid32(int uid);
74-
int __syscall_setgid32(int uid);
73+
int __syscall_setuid32(uid_t uid);
74+
int __syscall_setgid32(gid_t gid);
7575
int __syscall_mincore(intptr_t addr, size_t length, intptr_t vec);
7676
int __syscall_madvise(intptr_t addr, size_t length, int advice);
7777
int __syscall_getdents64(int fd, intptr_t dirp, size_t count);
@@ -80,24 +80,24 @@ int __syscall_statfs64(intptr_t path, size_t size, intptr_t buf);
8080
int __syscall_fstatfs64(int fd, size_t size, intptr_t buf);
8181
int __syscall_fadvise64(int fd, off_t offset, off_t length, int advice);
8282
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);
83+
int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode);
84+
int __syscall_mknodat(int dirfd, intptr_t path, mode_t mode, dev_t dev);
85+
int __syscall_fchownat(int dirfd, intptr_t path, uid_t owner, gid_t group, int flags);
8686
int __syscall_newfstatat(int dirfd, intptr_t path, intptr_t buf, int flags);
8787
int __syscall_unlinkat(int dirfd, intptr_t path, int flags);
8888
int __syscall_renameat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath);
8989
int __syscall_linkat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath, int flags);
9090
int __syscall_symlinkat(intptr_t target, int newdirfd, intptr_t linkpath);
9191
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);
92+
int __syscall_fchmodat2(int dirfd, intptr_t path, mode_t mode, int flags);
9393
int __syscall_faccessat(int dirfd, intptr_t path, int amode, int flags);
9494
int __syscall_pselect6(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout, intptr_t sigmaks);
9595
int __syscall_utimensat(int dirfd, intptr_t path, intptr_t times, int flags);
9696
int __syscall_fallocate(int fd, int mode, off_t offset, off_t len);
9797
int __syscall_dup3(int fd, int suggestfd, int flags);
9898
int __syscall_pipe2(intptr_t fds, int flags);
9999
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);
100+
int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit);
101101
int __syscall_sendmmsg(int sockfd, intptr_t msgvec, size_t vlen, int flags, ...);
102102
int __syscall_socket(int domain, int type, int protocol, int dummy1, int dummy2, int dummy3);
103103
int __syscall_socketpair(int domain, int type, int protocol, intptr_t fds, int dummy, int dummy2);

system/lib/standalone/standalone.c

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

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

system/lib/wasmfs/js_api.cpp

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

122-
int _wasmfs_mkdir(const char* path, int mode) {
122+
int _wasmfs_mkdir(const char* path, mode_t mode) {
123123
return __syscall_mkdirat(AT_FDCWD, (intptr_t)path, mode);
124124
}
125125

system/lib/wasmfs/syscalls.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ int __syscall_openat(int dirfd, intptr_t path, int flags, ...) {
582582
return doOpen(path::parseParent((char*)path, dirfd), flags, mode);
583583
}
584584

585-
int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev) {
585+
int __syscall_mknodat(int dirfd, intptr_t path, mode_t mode, dev_t dev) {
586586
assert(dev == 0); // TODO: support special devices
587587
if (mode & S_IFDIR) {
588588
return -EINVAL;
@@ -598,7 +598,7 @@ int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev) {
598598
}
599599

600600
static int
601-
doMkdir(path::ParsedParent parsed, int mode, backend_t backend = NullBackend) {
601+
doMkdir(path::ParsedParent parsed, mode_t mode, backend_t backend = NullBackend) {
602602
if (auto err = parsed.getError()) {
603603
return err;
604604
}
@@ -655,14 +655,14 @@ doMkdir(path::ParsedParent parsed, int mode, backend_t backend = NullBackend) {
655655

656656
// This function is exposed to users and allows users to specify a particular
657657
// backend that a directory should be created within.
658-
int wasmfs_create_directory(char* path, int mode, backend_t backend) {
658+
int wasmfs_create_directory(char* path, mode_t mode, backend_t backend) {
659659
static_assert(std::is_same_v<decltype(doMkdir(0, 0, 0)), int>,
660660
"unexpected conversion from result of doMkdir to int");
661661
return doMkdir(path::parseParent(path), mode, backend);
662662
}
663663

664664
// TODO: Test this.
665-
int __syscall_mkdirat(int dirfd, intptr_t path, int mode) {
665+
int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode) {
666666
return doMkdir(path::parseParent((char*)path, dirfd), mode);
667667
}
668668

@@ -1165,7 +1165,7 @@ int __syscall_utimensat(int dirFD, intptr_t path_, intptr_t times_, int flags) {
11651165
}
11661166

11671167
// TODO: Test this with non-AT_FDCWD values.
1168-
int __syscall_fchmodat2(int dirfd, intptr_t path, int mode, int flags) {
1168+
int __syscall_fchmodat2(int dirfd, intptr_t path, mode_t mode, int flags) {
11691169
if (flags & ~AT_SYMLINK_NOFOLLOW) {
11701170
// TODO: Test this case.
11711171
return -EINVAL;
@@ -1181,11 +1181,11 @@ int __syscall_fchmodat2(int dirfd, intptr_t path, int mode, int flags) {
11811181
return 0;
11821182
}
11831183

1184-
int __syscall_chmod(intptr_t path, int mode) {
1184+
int __syscall_chmod(intptr_t path, mode_t mode) {
11851185
return __syscall_fchmodat2(AT_FDCWD, path, mode, 0);
11861186
}
11871187

1188-
int __syscall_fchmod(int fd, int mode) {
1188+
int __syscall_fchmod(int fd, mode_t mode) {
11891189
auto openFile = wasmFS.getFileTable().locked().getEntry(fd);
11901190
if (!openFile) {
11911191
return -EBADF;
@@ -1197,7 +1197,7 @@ int __syscall_fchmod(int fd, int mode) {
11971197
}
11981198

11991199
int __syscall_fchownat(
1200-
int dirfd, intptr_t path, int owner, int group, int flags) {
1200+
int dirfd, intptr_t path, uid_t owner, gid_t group, int flags) {
12011201
// Only accept valid flags.
12021202
if (flags & ~(AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW)) {
12031203
// TODO: Test this case.
@@ -1213,7 +1213,7 @@ int __syscall_fchownat(
12131213
return 0;
12141214
}
12151215

1216-
int __syscall_fchown32(int fd, int owner, int group) {
1216+
int __syscall_fchown32(int fd, uid_t owner, gid_t group) {
12171217
return __syscall_fchownat(fd, (intptr_t) "", owner, group, AT_EMPTY_PATH);
12181218
}
12191219

0 commit comments

Comments
 (0)