1 use crate::unix::header::errno; 2 3 pub const _PC_LINK_MAX: ::c_int = 0; 4 pub const _PC_MAX_CANON: ::c_int = 1; 5 pub const _PC_MAX_INPUT: ::c_int = 2; 6 pub const _PC_NAME_MAX: ::c_int = 3; 7 pub const _PC_PATH_MAX: ::c_int = 4; 8 pub const _PC_PIPE_BUF: ::c_int = 5; 9 pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; 10 pub const _PC_NO_TRUNC: ::c_int = 7; 11 pub const _PC_VDISABLE: ::c_int = 8; 12 pub const _PC_SYNC_IO: ::c_int = 9; 13 pub const _PC_ASYNC_IO: ::c_int = 10; 14 pub const _PC_PRIO_IO: ::c_int = 11; 15 pub const _PC_SOCK_MAXBUF: ::c_int = 12; 16 pub const _PC_FILESIZEBITS: ::c_int = 13; 17 pub const _PC_REC_INCR_XFER_SIZE: ::c_int = 14; 18 pub const _PC_REC_MAX_XFER_SIZE: ::c_int = 15; 19 pub const _PC_REC_MIN_XFER_SIZE: ::c_int = 16; 20 pub const _PC_REC_XFER_ALIGN: ::c_int = 17; 21 pub const _PC_ALLOC_SIZE_MIN: ::c_int = 18; 22 pub const _PC_SYMLINK_MAX: ::c_int = 19; 23 pub const _PC_2_SYMLINKS: ::c_int = 20; 24 25 fn pc(name: ::c_int) -> ::c_long { 26 // Settings from musl, some adjusted 27 match name { 28 _PC_LINK_MAX => 127, 29 _PC_MAX_CANON => 255, 30 _PC_MAX_INPUT => 255, 31 _PC_NAME_MAX => 255, 32 _PC_PATH_MAX => 4096, 33 _PC_PIPE_BUF => 4096, 34 _PC_CHOWN_RESTRICTED => 1, 35 _PC_NO_TRUNC => 1, 36 _PC_VDISABLE => 0, 37 _PC_SYNC_IO => 1, 38 _PC_ASYNC_IO => -1, 39 _PC_PRIO_IO => -1, 40 _PC_SOCK_MAXBUF => -1, 41 _PC_FILESIZEBITS => 64, 42 _PC_REC_INCR_XFER_SIZE => -1, 43 _PC_REC_MAX_XFER_SIZE => -1, 44 _PC_REC_MIN_XFER_SIZE => 4096, 45 _PC_REC_XFER_ALIGN => 4096, 46 _PC_ALLOC_SIZE_MIN => 4096, 47 _PC_SYMLINK_MAX => -1, 48 _PC_2_SYMLINKS => 1, 49 _ => { 50 unsafe { 51 ::errno = errno::EINVAL; 52 } 53 -1 54 } 55 } 56 } 57 58 #[no_mangle] 59 pub extern "C" fn fpathconf(_fildes: ::c_int, name: ::c_int) -> ::c_long { 60 pc(name) 61 } 62 63 #[no_mangle] 64 pub extern "C" fn pathconf(_path: *const ::c_char, name: ::c_int) -> ::c_long { 65 pc(name) 66 } 67