1#![allow(unsafe_code)]
8
9use crate::{backend, io, ioctl};
10use backend::c;
11use backend::fd::AsFd;
12
13#[cfg(not(any(windows, target_os = "aix", target_os = "redox", target_os = "wasi")))]
26#[inline]
27#[doc(alias = "TIOCSCTTY")]
28pub fn ioctl_tiocsctty<Fd: AsFd>(fd: Fd) -> io::Result<()> {
29 unsafe { ioctl::ioctl(fd, Tiocsctty) }
30}
31
32#[cfg(not(any(windows, target_os = "aix", target_os = "redox", target_os = "wasi")))]
33struct Tiocsctty;
34
35#[cfg(not(any(windows, target_os = "aix", target_os = "redox", target_os = "wasi")))]
36unsafe impl ioctl::Ioctl for Tiocsctty {
37 type Output = ();
38
39 const IS_MUTATING: bool = false;
40
41 fn opcode(&self) -> ioctl::Opcode {
42 c::TIOCSCTTY as ioctl::Opcode
43 }
44
45 fn as_ptr(&mut self) -> *mut c::c_void {
46 crate::utils::as_ptr(&0_u32) as *mut c::c_void
47 }
48
49 unsafe fn output_from_ptr(
50 _: ioctl::IoctlOutput,
51 _: *mut c::c_void,
52 ) -> io::Result<Self::Output> {
53 Ok(())
54 }
55}