1 use crate::{ 2 header::stdio::{FILE, F_NORD, F_NOWR}, 3 platform::types::*, 4 }; 5 6 #[no_mangle] 7 pub extern "C" fn __fpending(stream: *mut FILE) -> size_t { 8 let stream = unsafe { &mut *stream }.lock(); 9 10 stream.writer.pending() 11 } 12 13 #[no_mangle] 14 pub extern "C" fn __freadable(stream: *mut FILE) -> c_int { 15 let stream = unsafe { &mut *stream }.lock(); 16 17 (stream.flags & F_NORD == 0) as c_int 18 } 19 20 #[no_mangle] 21 pub extern "C" fn __fwritable(stream: *mut FILE) -> c_int { 22 let stream = unsafe { &mut *stream }.lock(); 23 24 (stream.flags & F_NOWR == 0) as c_int 25 } 26 27 //TODO: Check last operation when read-write 28 #[no_mangle] 29 pub extern "C" fn __freading(stream: *mut FILE) -> c_int { 30 let stream = unsafe { &mut *stream }.lock(); 31 32 (stream.flags & F_NORD == 0) as c_int 33 } 34 35 //TODO: Check last operation when read-write 36 #[no_mangle] 37 pub extern "C" fn __fwriting(stream: *mut FILE) -> c_int { 38 let stream = unsafe { &mut *stream }.lock(); 39 40 (stream.flags & F_NOWR == 0) as c_int 41 } 42