24e250c339
Additionally, we were using the `access` syscall for x86_64 for our linux PAL. I looked at the linux source and found that using the `access` syscall is equivalent to using `faccessat` as we do now: https://elixir.bootlin.com/linux/v6.17.5/source/fs/open.c#L550 Also, some of the `fcntl.h` functions were accidentally implemented and exported from `unistd.h`. They are supposed to be implemented in `fcntl.h` and exported to `unistd.h`. This is now the behavior.
41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
use crate::platform::types::c_int;
|
|
|
|
pub const O_RDONLY: c_int = 0x0001_0000;
|
|
pub const O_WRONLY: c_int = 0x0002_0000;
|
|
pub const O_RDWR: c_int = 0x0003_0000;
|
|
pub const O_ACCMODE: c_int = 0x0003_0000;
|
|
pub const O_NONBLOCK: c_int = 0x0004_0000;
|
|
pub const O_APPEND: c_int = 0x0008_0000;
|
|
pub const O_SHLOCK: c_int = 0x0010_0000;
|
|
pub const O_EXLOCK: c_int = 0x0020_0000;
|
|
pub const O_ASYNC: c_int = 0x0040_0000;
|
|
pub const O_FSYNC: c_int = 0x0080_0000;
|
|
pub const O_SYNC: c_int = O_FSYNC;
|
|
pub const O_CLOEXEC: c_int = 0x0100_0000;
|
|
pub const O_CREAT: c_int = 0x0200_0000;
|
|
pub const O_TRUNC: c_int = 0x0400_0000;
|
|
pub const O_EXCL: c_int = 0x0800_0000;
|
|
pub const O_DIRECTORY: c_int = 0x1000_0000;
|
|
pub const O_PATH: c_int = 0x2000_0000;
|
|
pub const O_SYMLINK: c_int = 0x4000_0000;
|
|
// Negative to allow it to be used as int
|
|
pub const O_NOFOLLOW: c_int = -0x8000_0000;
|
|
|
|
pub const FD_CLOEXEC: c_int = 0x0100_0000;
|
|
|
|
pub const O_NOCTTY: c_int = 0x00000200;
|
|
|
|
// Defined for compatibility
|
|
pub const O_NDELAY: c_int = O_NONBLOCK;
|
|
|
|
// Flags for capability based "at" functions
|
|
pub const AT_FDCWD: c_int = -100;
|
|
pub const AT_SYMLINK_NOFOLLOW: c_int = 0x200;
|
|
pub const AT_REMOVEDIR: c_int = 0x200;
|
|
// Used by linkat()
|
|
pub const AT_SYMLINK_FOLLOW: c_int = 0x2000;
|
|
// nonstandard extension, but likely to be in a future standard
|
|
pub const AT_EMPTY_PATH: c_int = 0x4000;
|
|
// only used for faccessat()
|
|
pub const AT_EACCESS: c_int = 0x400;
|