stdlib: unlockpt implementation proposal
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user