stdlib: unlockpt implementation proposal

This commit is contained in:
David Carlier
2023-04-18 21:24:53 +01:00
parent 1df8a14e6d
commit 40b1cec31e
2 changed files with 12 additions and 2 deletions
+4 -2
View File
@@ -18,6 +18,7 @@ use crate::{
limits,
stdio::flush_io_streams,
string::*,
sys_ioctl::*,
time::constants::CLOCK_MONOTONIC,
unistd::{self, sysconf, _SC_PAGESIZE},
wchar::*,
@@ -1213,8 +1214,9 @@ pub extern "C" fn ttyslot() -> c_int {
}
// #[no_mangle]
pub extern "C" fn unlockpt(fildes: c_int) -> c_int {
unimplemented!();
pub unsafe extern "C" fn unlockpt(fildes: c_int) -> c_int {
let mut u: c_int = 0;
ioctl(fildes, TIOCSPTLCK, &mut u as *mut i32 as *mut c_void)
}
#[no_mangle]
+8
View File
@@ -26,6 +26,8 @@ pub const TIOCSPGRP: c_ulong = 0x5410;
pub const TIOCGWINSZ: c_ulong = 0x5413;
pub const TIOCSWINSZ: c_ulong = 0x5414;
pub const TIOCSPTLCK: c_ulong = 0x4004_5431;
pub const TIOCGPTLCK: c_ulong = 0x8004_5439;
// TODO: some of the structs passed as T have padding bytes, so casting to a byte slice is UB
@@ -133,6 +135,12 @@ pub unsafe extern "C" fn ioctl(fd: c_int, request: c_ulong, out: *mut c_void) ->
0
}
}
TIOCGPTLCK => {
0
},
TIOCSPTLCK => {
0
},
TCSBRK => {
// TODO
0