LCOV - code coverage report
Current view: top level - libs/utils/src - linux_socket_ioctl.rs (source / functions) Coverage Total Hit
Test: 07bee600374ccd486c69370d0972d9035964fe68.info Lines: 0.0 % 13 0
Test Date: 2025-02-20 13:11:02 Functions: 0.0 % 3 0

            Line data    Source code
       1              : //! Linux-specific socket ioctls.
       2              : //!
       3              : //! <https://elixir.bootlin.com/linux/v6.1.128/source/include/uapi/linux/sockios.h#L25-L27>
       4              : 
       5              : use std::{
       6              :     io,
       7              :     mem::MaybeUninit,
       8              :     os::{fd::RawFd, raw::c_int},
       9              : };
      10              : 
      11              : use nix::libc::{FIONREAD, TIOCOUTQ};
      12              : 
      13            0 : unsafe fn do_ioctl(socket_fd: RawFd, cmd: nix::libc::Ioctl) -> io::Result<c_int> {
      14            0 :     let mut inq: MaybeUninit<c_int> = MaybeUninit::uninit();
      15            0 :     let err = nix::libc::ioctl(socket_fd, cmd, inq.as_mut_ptr());
      16            0 :     if err == 0 {
      17            0 :         Ok(inq.assume_init())
      18              :     } else {
      19            0 :         Err(io::Error::last_os_error())
      20              :     }
      21            0 : }
      22              : 
      23              : /// # Safety
      24              : ///
      25              : /// Caller must ensure that `socket_fd` is a valid TCP socket file descriptor.
      26            0 : pub unsafe fn inq(socket_fd: RawFd) -> io::Result<c_int> {
      27            0 :     do_ioctl(socket_fd, FIONREAD)
      28            0 : }
      29              : 
      30              : /// # Safety
      31              : ///
      32              : /// Caller must ensure that `socket_fd` is a valid TCP socket file descriptor.
      33            0 : pub unsafe fn outq(socket_fd: RawFd) -> io::Result<c_int> {
      34            0 :     do_ioctl(socket_fd, TIOCOUTQ)
      35            0 : }
        

Generated by: LCOV version 2.1-beta