diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs index 749f87342884f8ea3c71863f25a4dca5fde45918..6cf3220ddd0852307d6bdde785349e87ab73b91d 100644 --- a/src/crt0/src/lib.rs +++ b/src/crt0/src/lib.rs @@ -52,8 +52,6 @@ impl Stack { #[inline(never)] #[no_mangle] pub unsafe extern "C" fn _start_rust(sp: &'static Stack) -> ! { - use core::fmt::Write; - extern "C" { fn main(argc: isize, argv: *const *const u8) -> c_int; } diff --git a/src/platform/src/allocator/dlmalloc.rs b/src/platform/src/allocator/dlmalloc.rs index 60a394e0346d8b63a33fd1e0a762218245b44f1e..ad02e7539de35b42291fe3b86b8d624c99ff9fe7 100644 --- a/src/platform/src/allocator/dlmalloc.rs +++ b/src/platform/src/allocator/dlmalloc.rs @@ -16,7 +16,7 @@ unsafe impl<'a> GlobalAlloc for Allocator { dlmemalign(layout.align(), layout.size()) as *mut u8 } - unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { + unsafe fn dealloc(&self, ptr: *mut u8, _layout: Layout) { dlfree(ptr as *mut c_void) } } diff --git a/src/stdio/src/default.rs b/src/stdio/src/default.rs index 4575eb84f1cc18430080f15303ce3c9a8e9596f9..c9bb96f1ca7b057755035156e149bd283639bb56 100644 --- a/src/stdio/src/default.rs +++ b/src/stdio/src/default.rs @@ -16,17 +16,17 @@ unsafe impl Sync for GlobalFile {} #[no_mangle] pub extern "C" fn __stdin() -> *mut FILE { - unsafe { default_stdin.get() } + default_stdin.get() } #[no_mangle] pub extern "C" fn __stdout() -> *mut FILE { - unsafe { default_stdout.get() } + default_stdout.get() } #[no_mangle] pub extern "C" fn __stderr() -> *mut FILE { - unsafe { default_stderr.get() } + default_stderr.get() } lazy_static! { diff --git a/src/stdio/src/helpers.rs b/src/stdio/src/helpers.rs index 8d9ee64343b5851f7f0eec518646142f8af562dc..de3d485fb9024bddf8963d89e1a5b7fe4215c75f 100644 --- a/src/stdio/src/helpers.rs +++ b/src/stdio/src/helpers.rs @@ -1,7 +1,7 @@ use super::constants::*; -use super::{internal, BUFSIZ, FILE, UNGET}; +use super::{BUFSIZ, FILE, UNGET}; use core::sync::atomic::AtomicBool; -use core::{mem, ptr}; +use core::mem; use errno; use fcntl::*; use platform; @@ -38,7 +38,6 @@ pub unsafe fn parse_mode_flags(mode_str: *const c_char) -> i32 { /// Open a file with the file descriptor `fd` in the mode `mode` pub unsafe fn _fdopen(fd: c_int, mode: *const c_char) -> Option<*mut FILE> { - use core::mem::size_of; use string::strchr; if *mode != b'r' as i8 && *mode != b'w' as i8 && *mode != b'a' as i8 { platform::errno = errno::EINVAL; diff --git a/src/stdio/src/lib.rs b/src/stdio/src/lib.rs index 5bb47ee945a3883ad756d6dce6be3c5f6668dbf2..664d4e1e32070d5add92ec94116b9994d29d54c4 100644 --- a/src/stdio/src/lib.rs +++ b/src/stdio/src/lib.rs @@ -899,7 +899,7 @@ pub unsafe extern "C" fn vfprintf(file: &mut FILE, format: *const c_char, ap: va #[no_mangle] pub unsafe extern "C" fn vprintf(format: *const c_char, ap: va_list) -> c_int { - vfprintf(unsafe { &mut *__stdout() }, format, ap) + vfprintf(&mut *__stdout(), format, ap) } #[no_mangle] @@ -928,7 +928,7 @@ pub unsafe extern "C" fn vfscanf(file: &mut FILE, format: *const c_char, ap: va_ #[no_mangle] pub unsafe extern "C" fn vscanf(format: *const c_char, ap: va_list) -> c_int { - vfscanf(unsafe { &mut *__stdin() }, format, ap) + vfscanf(&mut *__stdin(), format, ap) } #[no_mangle] diff --git a/src/stdlib/src/lib.rs b/src/stdlib/src/lib.rs index e1364530384d9e8d79bbce665bbde762236b32d2..b5e3fdc883d1ec39a9b165e64a12dcc2eef611eb 100644 --- a/src/stdlib/src/lib.rs +++ b/src/stdlib/src/lib.rs @@ -369,7 +369,6 @@ pub unsafe extern "C" fn mbtowc(pwc: *mut wchar_t, s: *const c_char, n: size_t) pub extern "C" fn mktemp(name: *mut c_char) -> *mut c_char { use core::iter; use core::mem; - use core::slice; let len = unsafe { strlen(name) }; if len < 6 { unsafe { platform::errno = errno::EINVAL }; @@ -389,7 +388,7 @@ pub extern "C" fn mktemp(name: *mut c_char) -> *mut c_char { let mut retries = 100; loop { - let mut char_iter = iter::repeat(()).map(|()| rng.sample(Alphanumeric)).take(6); + let char_iter = iter::repeat(()).map(|()| rng.sample(Alphanumeric)).take(6); unsafe { for (i, c) in char_iter.enumerate() { *name.offset(len as isize - i as isize - 1) = c as c_char @@ -421,7 +420,7 @@ fn get_nstime() -> u64 { use time::constants::CLOCK_MONOTONIC; let mut ts: timespec = unsafe { mem::uninitialized() }; platform::clock_gettime(CLOCK_MONOTONIC, &mut ts); - unsafe { ts.tv_nsec as u64 } + ts.tv_nsec as u64 } // #[no_mangle] @@ -811,7 +810,7 @@ pub unsafe extern "C" fn system(command: *const c_char) -> c_int { unreachable!(); } else { let mut wstatus = 0; - if platform::waitpid(child_pid, &mut wstatus, 0) < 0 { + if platform::waitpid(child_pid, &mut wstatus, 0) == !0 { return -1; } diff --git a/src/sys_utsname/src/lib.rs b/src/sys_utsname/src/lib.rs index c7fce78e9e3f433d2fd158c27acd79d478b7028b..07f753eb642859c596fc8e9b4cc78ce14a28e495 100644 --- a/src/sys_utsname/src/lib.rs +++ b/src/sys_utsname/src/lib.rs @@ -7,11 +7,9 @@ mod inner { extern crate platform; use self::platform::types::*; - use core::ptr; const LENGTH: usize = 65; - #[allow(non_camel_case)] #[no_mangle] #[repr(C)] pub struct utsname { diff --git a/src/unistd/src/lib.rs b/src/unistd/src/lib.rs index 81fc42586d683a42138a782932c8d1531f6c32eb..3d911ff6eb6e6590d44ce1a913813d52ba1674fe 100644 --- a/src/unistd/src/lib.rs +++ b/src/unistd/src/lib.rs @@ -309,9 +309,9 @@ pub extern "C" fn getuid() -> uid_t { platform::getuid() } -// #[no_mangle] +#[no_mangle] pub extern "C" fn getwd(path_name: *mut c_char) -> *mut c_char { - unimplemented!(); + getcwd(path_name, 4096 /* PATH_MAX */) } // #[no_mangle] @@ -334,9 +334,9 @@ pub extern "C" fn lockf(fildes: c_int, function: c_int, size: off_t) -> c_int { unimplemented!(); } -// #[no_mangle] +#[no_mangle] pub extern "C" fn lseek(fildes: c_int, offset: off_t, whence: c_int) -> off_t { - unimplemented!(); + platform::lseek(fildes, offset, whence) } // #[no_mangle]