Skip to content

Commit d1a10c1

Browse files
committed
Use correct types for syscalls
1 parent 4736913 commit d1a10c1

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_IRWXU | S_IRWXG | S_IRWXO;
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
}
@@ -141,31 +141,31 @@ weak int __syscall_getrusage(int who, intptr_t usage) {
141141
return 0;
142142
}
143143

144-
weak int __syscall_getpriority(int which, int who) {
144+
weak int __syscall_getpriority(int which, id_t who) {
145145
return 0;
146146
}
147147

148-
weak int __syscall_setpriority(int which, int who, int prio) {
148+
weak int __syscall_setpriority(int which, id_t who, int prio) {
149149
return -EPERM;
150150
}
151151

152152
weak int __syscall_setdomainname(intptr_t name, size_t size) {
153153
return -EPERM;
154154
}
155155

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

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

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

168-
weak int __syscall_getegid32(void) {
168+
weak gid_t __syscall_getegid32(void) {
169169
return 0;
170170
}
171171

@@ -225,7 +225,7 @@ weak int __syscall_munlockall() {
225225
return 0;
226226
}
227227

228-
weak int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t old_limit) {
228+
weak int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit) {
229229
REPORT(prlimit64);
230230
struct rlimit *old = (struct rlimit *)old_limit;
231231
if (old) { // just report no limits
@@ -256,4 +256,4 @@ UNIMPLEMENTED(recvmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ..
256256
UNIMPLEMENTED(sendmmsg, (int sockfd, intptr_t msgvec, size_t vlen, int flags, ...))
257257
UNIMPLEMENTED(shutdown, (int sockfd, int how, int dummy, int dummy2, int dummy3, int dummy4))
258258
UNIMPLEMENTED(socketpair, (int domain, int type, int protocol, intptr_t fds, int dummy, int dummy2))
259-
UNIMPLEMENTED(wait4,(int pid, intptr_t wstatus, int options, int rusage))
259+
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,28 +24,28 @@ 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_setrlimit(int resource, intptr_t limit);
3333
int __syscall_getrusage(int who, intptr_t usage);
3434
int __syscall_symlink(intptr_t target, intptr_t linkpath);
3535
int __syscall_munmap(intptr_t addr, size_t len);
36-
int __syscall_fchmod(int fd, int mode);
37-
int __syscall_getpriority(int which, int who);
38-
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);
3939
int __syscall_socketcall(int call, intptr_t args);
40-
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);
4141
int __syscall_setdomainname(intptr_t name, size_t size);
4242
int __syscall_uname(intptr_t buf);
4343
int __syscall_mprotect(size_t addr, size_t len, int prot);
44-
int __syscall_getpgid(int pid);
44+
pid_t __syscall_getpgid(pid_t pid);
4545
int __syscall_fchdir(int fd);
4646
int __syscall__newselect(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout);
4747
int __syscall_msync(intptr_t addr, size_t len, int flags);
48-
int __syscall_getsid(int pid);
48+
pid_t __syscall_getsid(pid_t pid);
4949
int __syscall_fdatasync(int fd);
5050
int __syscall_mlock(intptr_t addr, size_t len);
5151
int __syscall_munlock(intptr_t addr, size_t len);
@@ -61,20 +61,20 @@ int __syscall_ftruncate64(int fd, off_t length);
6161
int __syscall_stat64(intptr_t path, intptr_t buf);
6262
int __syscall_lstat64(intptr_t path, intptr_t buf);
6363
int __syscall_fstat64(int fd, intptr_t buf);
64-
int __syscall_getuid32(void);
65-
int __syscall_getgid32(void);
66-
int __syscall_geteuid32(void);
67-
int __syscall_getegid32(void);
68-
int __syscall_setreuid32(int ruid, int euid);
69-
int __syscall_setregid32(int rgid, int egid);
70-
int __syscall_getgroups32(int size, intptr_t list);
71-
int __syscall_fchown32(int fd, int owner, int group);
72-
int __syscall_setresuid32(int ruid, int euid, int suid);
64+
uid_t __syscall_getuid32(void);
65+
gid_t __syscall_getgid32(void);
66+
uid_t __syscall_geteuid32(void);
67+
gid_t __syscall_getegid32(void);
68+
int __syscall_setreuid32(uid_t ruid, uid_t euid);
69+
int __syscall_setregid32(gid_t rgid, gid_t egid);
70+
int __syscall_getgroups32(int count, intptr_t list);
71+
int __syscall_fchown32(int fd, uid_t owner, gid_t group);
72+
int __syscall_setresuid32(uid_t ruid, uid_t euid, uid_t suid);
7373
int __syscall_getresuid32(intptr_t ruid, intptr_t euid, intptr_t suid);
74-
int __syscall_setresgid32(int rgid, int egid, int sgid);
74+
int __syscall_setresgid32(gid_t rgid, gid_t egid, gid_t sgid);
7575
int __syscall_getresgid32(intptr_t rgid, intptr_t egid, intptr_t sgid);
76-
int __syscall_setuid32(int uid);
77-
int __syscall_setgid32(int uid);
76+
int __syscall_setuid32(uid_t uid);
77+
int __syscall_setgid32(gid_t gid);
7878
int __syscall_mincore(intptr_t addr, size_t length, intptr_t vec);
7979
int __syscall_madvise(intptr_t addr, size_t length, int advice);
8080
int __syscall_getdents64(int fd, intptr_t dirp, size_t count);
@@ -83,24 +83,24 @@ int __syscall_statfs64(intptr_t path, size_t size, intptr_t buf);
8383
int __syscall_fstatfs64(int fd, size_t size, intptr_t buf);
8484
int __syscall_fadvise64(int fd, off_t offset, off_t length, int advice);
8585
int __syscall_openat(int dirfd, intptr_t path, int flags, ...); // mode is optional
86-
int __syscall_mkdirat(int dirfd, intptr_t path, int mode);
87-
int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev);
88-
int __syscall_fchownat(int dirfd, intptr_t path, int owner, int group, int flags);
86+
int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode);
87+
int __syscall_mknodat(int dirfd, intptr_t path, mode_t mode, dev_t dev);
88+
int __syscall_fchownat(int dirfd, intptr_t path, uid_t owner, gid_t group, int flags);
8989
int __syscall_newfstatat(int dirfd, intptr_t path, intptr_t buf, int flags);
9090
int __syscall_unlinkat(int dirfd, intptr_t path, int flags);
9191
int __syscall_renameat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath);
9292
int __syscall_linkat(int olddirfd, intptr_t oldpath, int newdirfd, intptr_t newpath, int flags);
9393
int __syscall_symlinkat(intptr_t target, int newdirfd, intptr_t linkpath);
9494
int __syscall_readlinkat(int dirfd, intptr_t path, intptr_t buf, size_t bufsize);
95-
int __syscall_fchmodat(int dirfd, intptr_t path, int mode, ...);
95+
int __syscall_fchmodat(int dirfd, intptr_t path, mode_t mode, ...);
9696
int __syscall_faccessat(int dirfd, intptr_t path, int amode, int flags);
9797
int __syscall_pselect6(int nfds, intptr_t readfds, intptr_t writefds, intptr_t exceptfds, intptr_t timeout, intptr_t sigmaks);
9898
int __syscall_utimensat(int dirfd, intptr_t path, intptr_t times, int flags);
9999
int __syscall_fallocate(int fd, int mode, off_t offset, off_t len);
100100
int __syscall_dup3(int fd, int suggestfd, int flags);
101101
int __syscall_pipe2(intptr_t fds, int flags);
102102
int __syscall_recvmmsg(int sockfd, intptr_t msgvec, size_t vlen, int flags, ...);
103-
int __syscall_prlimit64(int pid, int resource, intptr_t new_limit, intptr_t old_limit);
103+
int __syscall_prlimit64(pid_t pid, int resource, intptr_t new_limit, intptr_t old_limit);
104104
int __syscall_sendmmsg(int sockfd, intptr_t msgvec, size_t vlen, int flags, ...);
105105
int __syscall_socket(int domain, int type, int protocol, int dummy1, int dummy2, int dummy3);
106106
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
@@ -122,7 +122,7 @@ weak int __syscall_dup(int fd) {
122122
return -ENOSYS;
123123
}
124124

125-
weak int __syscall_mkdirat(int dirfd, intptr_t path, int mode) {
125+
weak int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode) {
126126
return -ENOSYS;
127127
}
128128

system/lib/wasmfs/js_api.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ int _wasmfs_write_file(char* pathname, char* data, size_t data_size) {
124124
return data_size;
125125
}
126126

127-
int _wasmfs_mkdir(char* path, int mode) {
127+
int _wasmfs_mkdir(char* path, mode_t mode) {
128128
return __syscall_mkdirat(AT_FDCWD, (intptr_t)path, mode);
129129
}
130130

system/lib/wasmfs/syscalls.cpp

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

590-
int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev) {
590+
int __syscall_mknodat(int dirfd, intptr_t path, mode_t mode, dev_t dev) {
591591
assert(dev == 0); // TODO: support special devices
592592
if (mode & S_IFDIR) {
593593
return -EINVAL;
@@ -603,7 +603,7 @@ int __syscall_mknodat(int dirfd, intptr_t path, int mode, int dev) {
603603
}
604604

605605
static int
606-
doMkdir(path::ParsedParent parsed, int mode, backend_t backend = NullBackend) {
606+
doMkdir(path::ParsedParent parsed, mode_t mode, backend_t backend = NullBackend) {
607607
if (auto err = parsed.getError()) {
608608
return err;
609609
}
@@ -660,14 +660,14 @@ doMkdir(path::ParsedParent parsed, int mode, backend_t backend = NullBackend) {
660660

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

669669
// TODO: Test this.
670-
int __syscall_mkdirat(int dirfd, intptr_t path, int mode) {
670+
int __syscall_mkdirat(int dirfd, intptr_t path, mode_t mode) {
671671
return doMkdir(path::parseParent((char*)path, dirfd), mode);
672672
}
673673

@@ -1163,7 +1163,7 @@ int __syscall_utimensat(int dirFD, intptr_t path_, intptr_t times_, int flags) {
11631163
}
11641164

11651165
// TODO: Test this with non-AT_FDCWD values.
1166-
int __syscall_fchmodat(int dirfd, intptr_t path, int mode, ...) {
1166+
int __syscall_fchmodat(int dirfd, intptr_t path, mode_t mode, ...) {
11671167
int flags = 0;
11681168
va_list v1;
11691169
va_start(v1, mode);
@@ -1185,11 +1185,11 @@ int __syscall_fchmodat(int dirfd, intptr_t path, int mode, ...) {
11851185
return 0;
11861186
}
11871187

1188-
int __syscall_chmod(intptr_t path, int mode) {
1188+
int __syscall_chmod(intptr_t path, mode_t mode) {
11891189
return __syscall_fchmodat(AT_FDCWD, path, mode, 0);
11901190
}
11911191

1192-
int __syscall_fchmod(int fd, int mode) {
1192+
int __syscall_fchmod(int fd, mode_t mode) {
11931193
auto openFile = wasmFS.getFileTable().locked().getEntry(fd);
11941194
if (!openFile) {
11951195
return -EBADF;
@@ -1201,7 +1201,7 @@ int __syscall_fchmod(int fd, int mode) {
12011201
}
12021202

12031203
int __syscall_fchownat(
1204-
int dirfd, intptr_t path, int owner, int group, int flags) {
1204+
int dirfd, intptr_t path, uid_t owner, gid_t group, int flags) {
12051205
// Only accept valid flags.
12061206
if (flags & ~(AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW)) {
12071207
// TODO: Test this case.
@@ -1217,7 +1217,7 @@ int __syscall_fchownat(
12171217
return 0;
12181218
}
12191219

1220-
int __syscall_fchown32(int fd, int owner, int group) {
1220+
int __syscall_fchown32(int fd, uid_t owner, gid_t group) {
12211221
return __syscall_fchownat(fd, (intptr_t) "", owner, group, AT_EMPTY_PATH);
12221222
}
12231223

0 commit comments

Comments
 (0)