From df6f4678e8ec9f18f84edb91bf4a7369e6b979b3 Mon Sep 17 00:00:00 2001 From: Noa <coolreader18@gmail.com> Date: Mon, 29 Aug 2022 21:00:14 -0500 Subject: [PATCH] Fix warnings --- src/header/assert/mod.rs | 6 +-- src/header/bits_pthread/mod.rs | 5 --- src/header/bits_sched/mod.rs | 2 - src/header/inttypes/mod.rs | 5 +-- src/header/locale/mod.rs | 1 - src/header/netdb/dns/mod.rs | 54 +++++------------------- src/header/pthread/mod.rs | 4 +- src/header/pthread/mutex.rs | 4 +- src/header/signal/mod.rs | 2 +- src/header/stdio/mod.rs | 2 +- src/header/stdio/scanf.rs | 6 +-- src/ld_so/mod.rs | 10 ++--- src/platform/redox/clone.rs | 6 +-- src/platform/redox/exec.rs | 2 +- src/platform/redox/extra.rs | 2 +- src/platform/redox/mod.rs | 5 +-- src/platform/redox/path.rs | 7 +-- src/platform/redox/ptrace.rs | 2 +- src/platform/redox/redox-exec/src/lib.rs | 2 +- src/pthread/mod.rs | 6 +-- src/sync/barrier.rs | 6 +-- src/sync/cond.rs | 2 +- src/sync/once.rs | 2 +- src/sync/pthread_mutex.rs | 2 +- src/sync/semaphore.rs | 3 +- 25 files changed, 40 insertions(+), 108 deletions(-) diff --git a/src/header/assert/mod.rs b/src/header/assert/mod.rs index 2b65a3289..64af2af76 100644 --- a/src/header/assert/mod.rs +++ b/src/header/assert/mod.rs @@ -1,10 +1,6 @@ //! assert implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/assert.h.html -use crate::{ - c_str::CStr, - header::{stdio, stdlib}, - platform::types::*, -}; +use crate::{c_str::CStr, platform::types::*}; #[no_mangle] pub unsafe extern "C" fn __assert_fail( diff --git a/src/header/bits_pthread/mod.rs b/src/header/bits_pthread/mod.rs index 27446c010..b5b6de646 100644 --- a/src/header/bits_pthread/mod.rs +++ b/src/header/bits_pthread/mod.rs @@ -2,11 +2,6 @@ use crate::platform::types::*; -use crate::header::sched::sched_param; - -use crate::sync::AtomicLock; -use core::sync::atomic::{AtomicI32 as AtomicInt, AtomicU32 as AtomicUint}; - // XXX: https://github.com/eqrion/cbindgen/issues/685 // // We need to write the opaque types ourselves, and apparently cbindgen doesn't even support diff --git a/src/header/bits_sched/mod.rs b/src/header/bits_sched/mod.rs index 149fc8eb0..918c3c7f2 100644 --- a/src/header/bits_sched/mod.rs +++ b/src/header/bits_sched/mod.rs @@ -1,3 +1 @@ #![allow(non_camel_case_types)] - -use crate::platform::types::*; diff --git a/src/header/inttypes/mod.rs b/src/header/inttypes/mod.rs index 089ac5e7c..526e5af62 100644 --- a/src/header/inttypes/mod.rs +++ b/src/header/inttypes/mod.rs @@ -1,7 +1,5 @@ -use core::{convert::TryInto, ptr}; - use crate::{ - header::{ctype, errno::*, stdlib::*, wctype::iswspace}, + header::{ctype, errno::*, stdlib::*}, platform::{self, types::*}, }; @@ -10,7 +8,6 @@ pub extern "C" fn imaxabs(i: intmax_t) -> intmax_t { i.abs() } -#[no_mangle] #[repr(C)] pub struct imaxdiv_t { quot: intmax_t, diff --git a/src/header/locale/mod.rs b/src/header/locale/mod.rs index 1f275ed4d..130d5be28 100644 --- a/src/header/locale/mod.rs +++ b/src/header/locale/mod.rs @@ -9,7 +9,6 @@ const EMPTY_PTR: *const c_char = "\0" as *const _ as *const c_char; static mut C_LOCALE: [c_char; 2] = [b'C' as c_char, 0]; #[repr(C)] -#[no_mangle] pub struct lconv { currency_symbol: *const c_char, decimal_point: *const c_char, diff --git a/src/header/netdb/dns/mod.rs b/src/header/netdb/dns/mod.rs index 30847ddf8..2d73281b6 100644 --- a/src/header/netdb/dns/mod.rs +++ b/src/header/netdb/dns/mod.rs @@ -11,46 +11,10 @@ pub use self::{answer::DnsAnswer, query::DnsQuery}; use alloc::{string::String, vec::Vec}; -use core::{slice, u16}; mod answer; mod query; -#[allow(non_camel_case_types)] -#[derive(Copy, Clone, Debug, Default)] -#[repr(packed)] -pub struct n16 { - inner: u16, -} - -impl n16 { - pub fn as_bytes(&self) -> &[u8] { - unsafe { slice::from_raw_parts(core::ptr::addr_of!(self.inner).cast::<u8>(), 2) } - } - - pub fn from_bytes(bytes: &[u8]) -> Self { - n16 { - inner: unsafe { - slice::from_raw_parts(bytes.as_ptr() as *const u16, bytes.len() / 2)[0] - }, - } - } -} - -impl From<u16> for n16 { - fn from(value: u16) -> Self { - n16 { - inner: value.to_be(), - } - } -} - -impl From<n16> for u16 { - fn from(value: n16) -> Self { - u16::from_be(value.inner) - } -} - #[derive(Clone, Debug)] pub struct Dns { pub transaction_id: u16, @@ -67,13 +31,13 @@ impl Dns { ($value:expr) => { data.push($value); }; - }; + } macro_rules! push_n16 { ($value:expr) => { - data.extend_from_slice(n16::from($value).as_bytes()); + data.extend_from_slice(&u16::to_be_bytes($value)); }; - }; + } push_n16!(self.transaction_id); push_n16!(self.flags); @@ -106,17 +70,19 @@ impl Dns { } data[i - 1] }}; - }; + } macro_rules! pop_n16 { () => {{ + use core::convert::TryInto; i += 2; if i > data.len() { return Err(format!("{}: {}: pop_n16", file!(), line!())); } - u16::from(n16::from_bytes(&data[i - 2..i])) + let bytes: [u8; 2] = data[i - 2..i].try_into().unwrap(); + u16::from_be_bytes(bytes) }}; - }; + } macro_rules! pop_data { () => {{ @@ -129,7 +95,7 @@ impl Dns { data }}; - }; + } macro_rules! pop_name { () => {{ @@ -160,7 +126,7 @@ impl Dns { name }}; - }; + } let transaction_id = pop_n16!(); let flags = pop_n16!(); diff --git a/src/header/pthread/mod.rs b/src/header/pthread/mod.rs index 253dd656b..b4bd9ab9e 100644 --- a/src/header/pthread/mod.rs +++ b/src/header/pthread/mod.rs @@ -1,10 +1,10 @@ //! pthread.h implementation for Redox, following https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html -use core::{cell::Cell, ptr::NonNull}; +use core::cell::Cell; use crate::{ header::{sched::*, time::timespec}, - platform::{self, types::*, Pal, Sys}, + platform::{types::*, Pal, Sys}, pthread, }; diff --git a/src/header/pthread/mutex.rs b/src/header/pthread/mutex.rs index d24f6b7cc..6b89f266c 100644 --- a/src/header/pthread/mutex.rs +++ b/src/header/pthread/mutex.rs @@ -1,8 +1,6 @@ use super::*; -use crate::{header::errno::*, pthread::Errno}; - -use core::sync::atomic::AtomicI32 as AtomicInt; +use crate::pthread::Errno; // PTHREAD_MUTEX_INITIALIZER is defined in bits_pthread/cbindgen.toml diff --git a/src/header/signal/mod.rs b/src/header/signal/mod.rs index a80ae0d43..a071ad7da 100644 --- a/src/header/signal/mod.rs +++ b/src/header/signal/mod.rs @@ -352,7 +352,7 @@ pub extern "C" fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int { return -1; } unsafe { - let mut info = pinfo.assume_init(); + let info = pinfo.assume_init(); (*sig) = info.si_signo; } 0 diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs index 6148e6fb1..5a43bd8d3 100644 --- a/src/header/stdio/mod.rs +++ b/src/header/stdio/mod.rs @@ -1238,7 +1238,7 @@ pub unsafe extern "C" fn vsscanf(s: *const c_char, format: *const c_char, ap: va pub unsafe fn flush_io_streams() { let flush = |stream: *mut FILE| { let stream = &mut *stream; - stream.flush() + let _ = stream.flush(); }; flush(stdout); flush(stderr); diff --git a/src/header/stdio/scanf.rs b/src/header/stdio/scanf.rs index 4a8b63c93..c96c0ddfc 100644 --- a/src/header/stdio/scanf.rs +++ b/src/header/stdio/scanf.rs @@ -239,13 +239,13 @@ unsafe fn inner_scanf( } }}; (c_double) => { - parse_type!(noformat c_double); + parse_type!(noformat c_double) }; (c_float) => { - parse_type!(noformat c_float); + parse_type!(noformat c_float) }; ($type:ident) => { - parse_type!($type, $type); + parse_type!($type, $type) }; ($type:ident, $final:ty) => {{ let n = if n.is_empty() { diff --git a/src/ld_so/mod.rs b/src/ld_so/mod.rs index f9c474f83..809dad7eb 100644 --- a/src/ld_so/mod.rs +++ b/src/ld_so/mod.rs @@ -31,9 +31,7 @@ static mut STATIC_TCB_MASTER: Master = Master { fn panic_notls(msg: impl core::fmt::Display) -> ! { eprintln!("panicked in ld.so: {}", msg); - unsafe { - core::intrinsics::abort(); - } + core::intrinsics::abort(); } pub trait ExpectTlsFree { @@ -140,12 +138,14 @@ pub fn static_init(sp: &'static Stack) { #[cfg(any(target_os = "linux", target_os = "redox"))] pub unsafe fn init(sp: &'static Stack) { - let mut tp = 0usize; + let tp: usize; #[cfg(target_os = "linux")] { const ARCH_GET_FS: usize = 0x1003; - syscall!(ARCH_PRCTL, ARCH_GET_FS, &mut tp as *mut usize); + let mut val = 0usize; + syscall!(ARCH_PRCTL, ARCH_GET_FS, &mut val as *mut usize); + tp = val; } #[cfg(all(target_os = "redox", target_arch = "aarch64"))] { diff --git a/src/platform/redox/clone.rs b/src/platform/redox/clone.rs index 5f32f0207..f35a41fec 100644 --- a/src/platform/redox/clone.rs +++ b/src/platform/redox/clone.rs @@ -1,10 +1,6 @@ -use core::{arch::global_asm, mem::size_of}; - -use alloc::{boxed::Box, vec::Vec}; - use syscall::{ data::Map, - error::{Error, Result, EINVAL, ENAMETOOLONG}, + error::Result, flag::{MapFlags, O_CLOEXEC}, SIGCONT, }; diff --git a/src/platform/redox/exec.rs b/src/platform/redox/exec.rs index a8b97ec9f..77cb69773 100644 --- a/src/platform/redox/exec.rs +++ b/src/platform/redox/exec.rs @@ -2,7 +2,7 @@ use crate::{ c_str::{CStr, CString}, core_io::{prelude::*, BufReader, SeekFrom}, fs::File, - header::{fcntl, string::strlen}, + header::string::strlen, platform::{ sys::{S_ISGID, S_ISUID}, types::*, diff --git a/src/platform/redox/extra.rs b/src/platform/redox/extra.rs index 597e2c7eb..9ed051cfe 100644 --- a/src/platform/redox/extra.rs +++ b/src/platform/redox/extra.rs @@ -1,4 +1,4 @@ -use core::{mem::size_of, ptr, slice}; +use core::{ptr, slice}; use crate::platform::{sys::e, types::*}; diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs index 767b94b72..ab190bc96 100644 --- a/src/platform/redox/mod.rs +++ b/src/platform/redox/mod.rs @@ -1,4 +1,4 @@ -use core::{arch::asm, convert::TryFrom, mem, ptr, result::Result as CoreResult, slice, str}; +use core::{convert::TryFrom, mem, ptr, result::Result as CoreResult, slice, str}; use syscall::{ self, @@ -13,7 +13,6 @@ use crate::{ dirent::dirent, errno::{EINVAL, EIO, ENOMEM, ENOSYS, EPERM, ERANGE}, fcntl, - string::strlen, sys_mman::{MAP_ANONYMOUS, PROT_READ, PROT_WRITE}, sys_random, sys_resource::{rlimit, RLIM_INFINITY}, @@ -25,7 +24,7 @@ use crate::{ time::timespec, unistd::{F_OK, R_OK, W_OK, X_OK}, }, - io::{self, prelude::*, BufReader, SeekFrom}, + io::{self, prelude::*, BufReader}, }; pub use redox_exec::FdGuard; diff --git a/src/platform/redox/path.rs b/src/platform/redox/path.rs index 31d253755..eb97b42f2 100644 --- a/src/platform/redox/path.rs +++ b/src/platform/redox/path.rs @@ -1,11 +1,6 @@ use syscall::{data::Stat, error::*, flag::*}; -use alloc::{ - borrow::{Cow, ToOwned}, - boxed::Box, - string::String, - vec::Vec, -}; +use alloc::{borrow::ToOwned, boxed::Box, string::String, vec::Vec}; use super::FdGuard; use crate::sync::Mutex; diff --git a/src/platform/redox/ptrace.rs b/src/platform/redox/ptrace.rs index 421692218..3d8dba4f3 100644 --- a/src/platform/redox/ptrace.rs +++ b/src/platform/redox/ptrace.rs @@ -14,7 +14,7 @@ use crate::{ fs::File, header::{errno as errnoh, fcntl, signal, sys_ptrace}, io::{self, prelude::*}, - sync::{Mutex, Once}, + sync::Mutex, }; use alloc::collections::{btree_map::Entry, BTreeMap}; diff --git a/src/platform/redox/redox-exec/src/lib.rs b/src/platform/redox/redox-exec/src/lib.rs index 768dfa681..f7527e462 100644 --- a/src/platform/redox/redox-exec/src/lib.rs +++ b/src/platform/redox/redox-exec/src/lib.rs @@ -1,5 +1,5 @@ #![no_std] -#![feature(array_chunks, map_first_last)] +#![feature(array_chunks)] extern crate alloc; diff --git a/src/pthread/mod.rs b/src/pthread/mod.rs index 99a36251e..ce380d92d 100644 --- a/src/pthread/mod.rs +++ b/src/pthread/mod.rs @@ -3,10 +3,10 @@ use core::{ cell::{Cell, UnsafeCell}, ptr::NonNull, - sync::atomic::{AtomicBool, AtomicU32, AtomicUsize, Ordering}, + sync::atomic::{AtomicBool, AtomicUsize, Ordering}, }; -use alloc::{boxed::Box, collections::BTreeMap, vec::Vec}; +use alloc::{boxed::Box, collections::BTreeMap}; use crate::{ header::{errno::*, pthread as header, sched::sched_param, sys_mman}, @@ -84,8 +84,6 @@ pub struct OsTid { unsafe impl Send for Pthread {} unsafe impl Sync for Pthread {} -use crate::header::bits_pthread::pthread_attr_t; - /// Positive error codes (EINVAL, not -EINVAL). #[derive(Debug, Eq, PartialEq)] // TODO: Move to a more generic place. diff --git a/src/sync/barrier.rs b/src/sync/barrier.rs index 6e027364a..9ae84a60e 100644 --- a/src/sync/barrier.rs +++ b/src/sync/barrier.rs @@ -1,8 +1,4 @@ -use core::{ - cmp, - num::NonZeroU32, - sync::atomic::{AtomicU32 as AtomicUint, Ordering}, -}; +use core::num::NonZeroU32; pub struct Barrier { original_count: NonZeroU32, diff --git a/src/sync/cond.rs b/src/sync/cond.rs index 43b620fee..ee7ff97bd 100644 --- a/src/sync/cond.rs +++ b/src/sync/cond.rs @@ -1,7 +1,7 @@ // Used design from https://www.remlab.net/op/futex-condvar.shtml use crate::{ - header::{bits_pthread::*, pthread::*, time::timespec}, + header::{pthread::*, time::timespec}, pthread::Errno, }; diff --git a/src/sync/once.rs b/src/sync/once.rs index b554f24bc..293ab84cb 100644 --- a/src/sync/once.rs +++ b/src/sync/once.rs @@ -1,4 +1,4 @@ -use super::{AtomicLock, AttemptStatus}; +use super::AttemptStatus; use crate::platform::types::*; use core::{ cell::UnsafeCell, diff --git a/src/sync/pthread_mutex.rs b/src/sync/pthread_mutex.rs index 05d75dacc..cb08dde8c 100644 --- a/src/sync/pthread_mutex.rs +++ b/src/sync/pthread_mutex.rs @@ -4,7 +4,7 @@ use core::{ }; use crate::{ - header::{errno::*, pthread::*, sys_wait::*, time::timespec}, + header::{errno::*, pthread::*, time::timespec}, pthread::*, }; diff --git a/src/sync/semaphore.rs b/src/sync/semaphore.rs index 1bad9e30a..c0a0b3a2a 100644 --- a/src/sync/semaphore.rs +++ b/src/sync/semaphore.rs @@ -1,10 +1,9 @@ // From https://www.remlab.net/op/futex-misc.shtml //TODO: improve implementation -use super::AtomicLock; use crate::{ header::time::{clock_gettime, timespec, CLOCK_MONOTONIC}, - platform::{types::*, Pal, Sys}, + platform::types::*, }; use core::sync::atomic::{AtomicU32, Ordering}; -- GitLab