Skip to content
Snippets Groups Projects
Commit b4f36bce authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Add more stdio_ext functions

parent 632f9f18
No related branches found
No related tags found
No related merge requests found
use header::stdio::{FILE, F_NORD, F_NOWR};
use platform::types::*;
#[no_mangle]
pub extern "C" fn __freadable(stream: *mut FILE) -> c_int {
let mut stream = unsafe { &mut *stream }.lock();
(stream.flags & F_NORD == 0) as c_int
}
#[no_mangle]
pub extern "C" fn __fwritable(stream: *mut FILE) -> c_int {
let mut stream = unsafe { &mut *stream }.lock();
(stream.flags & F_NOWR == 0) as c_int
}
#[no_mangle]
pub extern "C" fn __fpending(stream: *mut FILE) -> size_t {
let mut stream = unsafe { &mut *stream }.lock();
stream.writer.inner.buf.len() as size_t
}
......@@ -22,16 +22,16 @@ use platform::{Pal, Sys};
use platform::{errno, WriteByte};
use platform;
mod printf;
mod scanf;
pub use self::constants::*;
mod constants;
pub use self::default::*;
mod default;
pub use self::constants::*;
mod constants;
mod ext;
mod helpers;
mod printf;
mod scanf;
enum Buffer<'a> {
Borrowed(&'a mut [u8]),
......@@ -62,12 +62,12 @@ pub struct FILE {
lock: Mutex<()>,
file: File,
flags: c_int,
pub(crate) /* stdio_ext */ flags: c_int,
read_buf: Buffer<'static>,
read_pos: usize,
read_size: usize,
unget: Option<u8>,
writer: LineWriter<File>
pub(crate) /* stdio_ext */ writer: LineWriter<File>
}
impl Read for FILE {
......@@ -390,13 +390,6 @@ pub extern "C" fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FI
}
}
#[no_mangle]
pub extern "C" fn __fpending(stream: *mut FILE) -> size_t {
let mut stream = unsafe { &mut *stream }.lock();
stream.writer.inner.buf.len() as size_t
}
/// Insert a character into the stream
#[no_mangle]
pub extern "C" fn fputc(c: c_int, stream: *mut FILE) -> c_int {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment