diff --git a/libc-test/semver/openbsd.txt b/libc-test/semver/openbsd.txt index 575fcc0736075..b92a8d1edaa6a 100644 --- a/libc-test/semver/openbsd.txt +++ b/libc-test/semver/openbsd.txt @@ -140,6 +140,12 @@ DAY_4 DAY_5 DAY_6 DAY_7 +DTYPE_DMABUF +DTYPE_KQUEUE +DTYPE_PIPE +DTYPE_SOCKET +DTYPE_SYNC +DTYPE_VNODE DT_UNKNOWN D_FMT D_T_FMT @@ -361,6 +367,14 @@ KERN_CPUSTATS KERN_DOMAINNAME KERN_EVCOUNT KERN_FILE +KERN_FILESLOP +KERN_FILE_BYFILE +KERN_FILE_BYPID +KERN_FILE_BYUID +KERN_FILE_CDIR +KERN_FILE_RDIR +KERN_FILE_TEXT +KERN_FILE_TRACE KERN_FORKSTAT KERN_FSCALE KERN_FSYNC @@ -440,7 +454,9 @@ KERN_WATCHDOG KI_EMULNAMELEN KI_MAXCOMLEN KI_MAXLOGNAME +KI_MNAMELEN KI_NGROUPS +KI_UNPPATHLEN KI_WMESGLEN KVE_ADV_NORMAL KVE_ADV_RANDOM @@ -1182,6 +1198,7 @@ jrand48 kevent key_t killpg +kinfo_file kinfo_proc kinfo_vmentry kqueue diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index ebfcda62f1e14..4a434b7e6ada0 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -525,6 +525,77 @@ s! { pub p_name: [c_char; KI_MAXCOMLEN as usize], } + pub struct kinfo_file { + pub f_fileaddr: u64, + pub f_flag: u32, + pub f_iflags: u32, + pub f_type: u32, + pub f_count: u32, + pub f_msgcount: u32, + pub f_usecount: u32, + pub f_ucred: u64, + pub f_uid: u32, + pub f_gid: u32, + pub f_ops: u64, + pub f_offset: u64, + pub f_data: u64, + pub f_rxfer: u64, + pub f_rwfer: u64, + pub f_seek: u64, + pub f_rbytes: u64, + pub f_wbytes: u64, + pub v_un: u64, + pub v_type: u32, + pub v_tag: u32, + pub v_flag: u32, + pub va_rdev: u32, + pub v_data: u64, + pub v_mount: u64, + pub va_fileid: u64, + pub va_size: u64, + pub va_mode: u32, + pub va_fsid: u32, + pub f_mntonname: [c_char; KI_MNAMELEN as usize], + pub so_type: u32, + pub so_state: u32, + pub so_pcb: u64, + pub so_protocol: u32, + pub so_family: u32, + pub inp_ppcb: u64, + pub inp_lport: u32, + pub inp_laddru: [u32; 4], + pub inp_fport: u32, + pub inp_faddru: [u32; 4], + pub unp_conn: u64, + pub pipe_peer: u64, + pub pipe_state: u32, + pub kq_count: u32, + pub kq_state: u32, + pub __unused1: u32, + pub p_pid: u32, + pub fd_fd: i32, + pub fd_ofileflags: u32, + pub p_uid: u32, + pub p_gid: u32, + pub p_tid: u32, + pub p_comm: [c_char; KI_MAXCOMLEN as usize], + pub inp_rtableid: u32, + pub so_splice: u64, + pub so_splicelen: i64, + pub so_rcv_cc: u64, + pub so_snd_cc: u64, + pub unp_refs: u64, + pub unp_nextref: u64, + pub unp_addr: u64, + pub unp_path: [c_char; KI_UNPPATHLEN as usize], + pub inp_proto: u32, + pub t_state: u32, + pub t_rcv_wnd: u64, + pub t_snd_wnd: u64, + pub t_snd_cwnd: u64, + pub va_nlink: u32, + } + pub struct kinfo_vmentry { pub kve_start: c_ulong, pub kve_end: c_ulong, @@ -1411,6 +1482,19 @@ pub const KVE_INH_ZERO: c_int = 0x00000030; pub const KVE_F_STATIC: c_int = 0x1; pub const KVE_F_KMEM: c_int = 0x2; +pub const KERN_FILE_BYFILE: c_int = 1; +pub const KERN_FILE_BYPID: c_int = 2; +pub const KERN_FILE_BYUID: c_int = 3; +pub const KERN_FILESLOP: c_int = 10; + +pub const KERN_FILE_TEXT: c_int = -1; +pub const KERN_FILE_CDIR: c_int = -2; +pub const KERN_FILE_RDIR: c_int = -3; +pub const KERN_FILE_TRACE: c_int = -4; + +pub const KI_MNAMELEN: c_int = 96; +pub const KI_UNPPATHLEN: c_int = 104; + pub const CHWFLOW: crate::tcflag_t = crate::MDMBUF | crate::CRTSCTS; pub const OLCUC: crate::tcflag_t = 0x20; pub const ONOCR: crate::tcflag_t = 0x40; @@ -1553,6 +1637,14 @@ pub const FUTEX_WAKE: c_int = 2; pub const FUTEX_REQUEUE: c_int = 3; pub const FUTEX_PRIVATE_FLAG: c_int = 128; +// sys/file.h +pub const DTYPE_VNODE: c_int = 1; +pub const DTYPE_SOCKET: c_int = 2; +pub const DTYPE_PIPE: c_int = 3; +pub const DTYPE_KQUEUE: c_int = 4; +pub const DTYPE_DMABUF: c_int = 5; +pub const DTYPE_SYNC: c_int = 6; + // sysctl.h, kinfo_proc p_eflag constants pub const EPROC_CTTY: i32 = 0x01; // controlling tty vnode active pub const EPROC_SLEADER: i32 = 0x02; // session leader