From fcbc2dc6d78932705394be974b344b7df675011e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kr=C3=B6ning?= Date: Tue, 4 Mar 2025 18:02:07 +0100 Subject: [PATCH] fix(fd): extract `StatusFlags` into separate type --- src/fd/mod.rs | 11 +++++++++-- src/syscalls/mod.rs | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/fd/mod.rs b/src/fd/mod.rs index f6c9b9777d..15159532d1 100644 --- a/src/fd/mod.rs +++ b/src/fd/mod.rs @@ -65,13 +65,20 @@ bitflags! { const O_CREAT = 0o0100; const O_EXCL = 0o0200; const O_TRUNC = 0o1000; - const O_APPEND = 0o2000; - const O_NONBLOCK = 0o4000; const O_DIRECT = 0o40000; const O_DIRECTORY = 0o200_000; } } +bitflags! { + /// File status flags. + #[derive(Debug, Copy, Clone, Default)] + pub struct StatusFlags: i32 { + const O_APPEND = 0o2000; + const O_NONBLOCK = 0o4000; + } +} + bitflags! { #[derive(Debug, Copy, Clone, Default)] pub struct PollEvent: i16 { diff --git a/src/syscalls/mod.rs b/src/syscalls/mod.rs index 93c8426797..f641636d67 100644 --- a/src/syscalls/mod.rs +++ b/src/syscalls/mod.rs @@ -21,7 +21,7 @@ pub use self::tasks::*; pub use self::timer::*; use crate::executor::block_on; use crate::fd::{ - AccessPermission, EventFlags, FileDescriptor, IoCtl, OpenOption, PollFd, dup_object, + self, AccessPermission, EventFlags, FileDescriptor, IoCtl, OpenOption, PollFd, dup_object, dup_object2, get_object, isatty, remove_object, }; use crate::fs::{self, FileAttr}; @@ -537,7 +537,7 @@ pub extern "C" fn sys_fcntl(fd: i32, cmd: i32, arg: i32) -> i32 { if cmd == F_SETFD && arg == FD_CLOEXEC { 0 - } else if cmd == F_SETFL && arg == OpenOption::O_NONBLOCK.bits() { + } else if cmd == F_SETFL && arg == fd::StatusFlags::O_NONBLOCK.bits() { let obj = get_object(fd); obj.map_or_else( |e| -num::ToPrimitive::to_i32(&e).unwrap(),