diff options
Diffstat (limited to 'src/bun.js/node/syscall.zig')
-rw-r--r-- | src/bun.js/node/syscall.zig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/bun.js/node/syscall.zig b/src/bun.js/node/syscall.zig index 1f74753d2..cc34fc463 100644 --- a/src/bun.js/node/syscall.zig +++ b/src/bun.js/node/syscall.zig @@ -73,6 +73,7 @@ pub const Tag = enum(u8) { lutimes, mkdir, mkdtemp, + fnctl, mmap, munmap, open, @@ -93,6 +94,7 @@ pub const Tag = enum(u8) { send, sendfile, splice, + rmdir, kevent, kqueue, @@ -154,6 +156,12 @@ pub fn mkdir(file_path: [:0]const u8, flags: JSC.Node.Mode) Maybe(void) { } } +pub fn fcntl(fd: JSC.Node.FileDescriptor, cmd: i32, arg: usize) Maybe(usize) { + const result = fcntl_symbol(fd, cmd, arg); + if (Maybe(usize).errnoSys(result, .fcntl)) |err| return err; + return .{ .result = @intCast(usize, result) }; +} + pub fn getErrno(rc: anytype) std.os.E { if (comptime Environment.isMac) return std.os.errno(rc); const Type = @TypeOf(rc); @@ -233,6 +241,8 @@ else if (builtin.os.tag.isDarwin()) else system.pread; +const fcntl_symbol = system.fcntl; + pub fn pread(fd: os.fd_t, buf: []u8, offset: i64) Maybe(usize) { const adjusted_len = @minimum(buf.len, max_count); const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned |