| Index: src/untrusted/irt/irt_fdio.c
|
| diff --git a/src/untrusted/irt/irt_fdio.c b/src/untrusted/irt/irt_fdio.c
|
| index a8b52bbe70e9dfaa049cc3c6436daae4e5af1e8c..e4c1318a0ed6d0a9691abec06ef3d15c0d622732 100644
|
| --- a/src/untrusted/irt/irt_fdio.c
|
| +++ b/src/untrusted/irt/irt_fdio.c
|
| @@ -5,6 +5,7 @@
|
| */
|
|
|
| #include "native_client/src/untrusted/irt/irt.h"
|
| +#include "native_client/src/untrusted/irt/irt_dev.h"
|
| #include "native_client/src/untrusted/nacl/syscall_bindings_trampoline.h"
|
|
|
| static int nacl_irt_close(int fd) {
|
| @@ -64,6 +65,26 @@ static int nacl_irt_getdents(int fd, struct dirent *buf, size_t count,
|
| return 0;
|
| }
|
|
|
| +static int nacl_irt_fchdir(int fd) {
|
| + return -NACL_SYSCALL(fchdir)(fd);
|
| +}
|
| +
|
| +static int nacl_irt_fchmod(int fd, mode_t mode) {
|
| + return -NACL_SYSCALL(fchmod)(fd, mode);
|
| +}
|
| +
|
| +static int nacl_irt_fsync(int fd) {
|
| + return -NACL_SYSCALL(fsync)(fd);
|
| +}
|
| +
|
| +static int nacl_irt_fdatasync(int fd) {
|
| + return -NACL_SYSCALL(fdatasync)(fd);
|
| +}
|
| +
|
| +static int nacl_irt_ftruncate(int fd, off_t length) {
|
| + return -NACL_SYSCALL(ftruncate)(fd, length);
|
| +}
|
| +
|
| const struct nacl_irt_fdio nacl_irt_fdio = {
|
| nacl_irt_close,
|
| nacl_irt_dup,
|
| @@ -74,3 +95,19 @@ const struct nacl_irt_fdio nacl_irt_fdio = {
|
| nacl_irt_fstat,
|
| nacl_irt_getdents,
|
| };
|
| +
|
| +const struct nacl_irt_dev_fdio nacl_irt_dev_fdio = {
|
| + nacl_irt_close,
|
| + nacl_irt_dup,
|
| + nacl_irt_dup2,
|
| + nacl_irt_read,
|
| + nacl_irt_write,
|
| + nacl_irt_seek,
|
| + nacl_irt_fstat,
|
| + nacl_irt_getdents,
|
| + nacl_irt_fchdir,
|
| + nacl_irt_fchmod,
|
| + nacl_irt_fsync,
|
| + nacl_irt_fdatasync,
|
| + nacl_irt_ftruncate,
|
| +};
|
|
|