blob: 47992e91f36ac66288cade9933d666b06d86b365 (
plain)
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
|
#include <wasi/api.h>
#include <wasi/libc.h>
#include <errno.h>
#include <unistd.h>
int __wasilibc_fd_renumber(int fd, int newfd) {
// Scan the preopen fds before making any changes.
__wasilibc_populate_preopens();
__wasi_errno_t error = __wasi_fd_renumber(fd, newfd);
if (error != 0) {
errno = error;
return -1;
}
return 0;
}
int close(int fd) {
// Scan the preopen fds before making any changes.
__wasilibc_populate_preopens();
__wasi_errno_t error = __wasi_fd_close(fd);
if (error != 0) {
errno = error;
return -1;
}
return 0;
}
weak void __wasilibc_populate_preopens(void) {
// This version does nothing. It may be overridden by a version which does
// something if `__wasilibc_find_abspath` or `__wasilibc_find_relpath` are
// used.
}
|