aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/node/syscall.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/node/syscall.zig')
-rw-r--r--src/bun.js/node/syscall.zig10
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