diff --git a/README.md b/README.md index 10cf1cb7f..467e70644 100644 --- a/README.md +++ b/README.md @@ -44,13 +44,13 @@ make rootfs Run native Linux program (Busybox): ```sh -cargo run --release -p linux-loader /bin/busybox [args] +cargo run --release -p linux-loader -- /bin/busybox [args] ``` Run native Zircon program (shell): ```sh -cargo run --release -p zircon-loader prebuilt/zircon/x64 +cargo run --release -p zircon-loader -- prebuilt/zircon/x64 ``` Run Linux shell on bare-metal (zCore): diff --git a/kernel-hal-bare/src/arch/riscv.rs b/kernel-hal-bare/src/arch/riscv.rs index dcdb9cf19..aec48813d 100644 --- a/kernel-hal-bare/src/arch/riscv.rs +++ b/kernel-hal-bare/src/arch/riscv.rs @@ -1,5 +1,5 @@ use super::*; -use kernel_hal::{PageTableTrait, PhysAddr, VirtAddr}; +use kernel_hal::{PageTableTrait, PhysAddr, VirtAddr, Result}; use riscv::addr::Page; use riscv::paging::{PageTableFlags as PTF, *}; use riscv::register::satp; @@ -46,7 +46,7 @@ impl PageTableImpl { impl PageTableTrait for PageTableImpl { /// Map the page of `vaddr` to the frame of `paddr` with `flags`. #[export_name = "hal_pt_map"] - fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<(), ()> { + fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<()> { let mut pt = self.get(); let page = Page::of_addr(vaddr); let frame = riscv::addr::Frame::of_addr(riscv::addr::PhysAddr::new(paddr)); @@ -59,7 +59,7 @@ impl PageTableTrait for PageTableImpl { /// Unmap the page of `vaddr`. #[export_name = "hal_pt_unmap"] - fn unmap(&mut self, vaddr: VirtAddr) -> Result<(), ()> { + fn unmap(&mut self, vaddr: VirtAddr) -> Result<()> { let mut pt = self.get(); let page = Page::of_addr(riscv::addr::VirtAddr::new(vaddr)); pt.unmap(page).unwrap().1.flush(); @@ -69,7 +69,7 @@ impl PageTableTrait for PageTableImpl { /// Change the `flags` of the page of `vaddr`. #[export_name = "hal_pt_protect"] - fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<(), ()> { + fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<()> { let mut pt = self.get(); let page = Page::of_addr(riscv::addr::VirtAddr::new(vaddr)); pt.update_flags(page, flags.to_ptf()).unwrap().flush(); @@ -79,7 +79,7 @@ impl PageTableTrait for PageTableImpl { /// Query the physical address which the page of `vaddr` maps to. #[export_name = "hal_pt_query"] - fn query(&mut self, vaddr: VirtAddr) -> Result { + fn query(&mut self, vaddr: VirtAddr) -> Result { let mut pt = self.get(); let page = Page::of_addr(riscv::addr::VirtAddr::new(vaddr)); let res = pt.ref_entry(page); diff --git a/kernel-hal-bare/src/arch/x86_64/mod.rs b/kernel-hal-bare/src/arch/x86_64/mod.rs index e242871e4..36da1ad8a 100644 --- a/kernel-hal-bare/src/arch/x86_64/mod.rs +++ b/kernel-hal-bare/src/arch/x86_64/mod.rs @@ -9,7 +9,7 @@ use { core::ptr::NonNull, core::time::Duration, git_version::git_version, - kernel_hal::PageTableTrait, + kernel_hal::{Result, HalError, PageTableTrait}, rcore_console::{Console, ConsoleOnGraphic, DrawTarget, Pixel, Rgb888, Size}, spin::Mutex, uart_16550::SerialPort, @@ -64,7 +64,7 @@ impl PageTableImpl { impl PageTableTrait for PageTableImpl { /// Map the page of `vaddr` to the frame of `paddr` with `flags`. #[export_name = "hal_pt_map"] - fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<(), ()> { + fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<()> { let mut pt = self.get(); unsafe { pt.map_to_with_table_flags( @@ -89,7 +89,7 @@ impl PageTableTrait for PageTableImpl { /// Unmap the page of `vaddr`. #[export_name = "hal_pt_unmap"] - fn unmap(&mut self, vaddr: VirtAddr) -> Result<(), ()> { + fn unmap(&mut self, vaddr: VirtAddr) -> Result<()> { let mut pt = self.get(); let page = Page::::from_start_address(x86_64::VirtAddr::new(vaddr as u64)).unwrap(); @@ -113,7 +113,7 @@ impl PageTableTrait for PageTableImpl { "unmap failed: {:x?} err={:x?} in {:#x?}", vaddr, err, self.root_paddr ); - return Err(()); + return Err(HalError); } } Ok(()) @@ -121,7 +121,7 @@ impl PageTableTrait for PageTableImpl { /// Change the `flags` of the page of `vaddr`. #[export_name = "hal_pt_protect"] - fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<(), ()> { + fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<()> { let mut pt = self.get(); let page = Page::::from_start_address(x86_64::VirtAddr::new(vaddr as u64)).unwrap(); @@ -134,11 +134,11 @@ impl PageTableTrait for PageTableImpl { /// Query the physical address which the page of `vaddr` maps to. #[export_name = "hal_pt_query"] - fn query(&mut self, vaddr: VirtAddr) -> Result { + fn query(&mut self, vaddr: VirtAddr) -> Result { let pt = self.get(); let ret = pt .translate_addr(x86_64::VirtAddr::new(vaddr as u64)) - .map(|addr| addr.as_u64() as PhysAddr).ok_or(()); + .map(|addr| addr.as_u64() as PhysAddr).ok_or(HalError); trace!("query: {:x?} => {:x?}", vaddr, ret); ret } @@ -236,7 +236,7 @@ struct Framebuffer { impl DrawTarget for Framebuffer { type Error = core::convert::Infallible; - fn draw_pixel(&mut self, item: Pixel) -> Result<(), Self::Error> { + fn draw_pixel(&mut self, item: Pixel) -> core::result::Result<(), Self::Error> { let idx = (item.0.x as u32 + item.0.y as u32 * self.width) as usize; self.buf[idx] = unsafe { core::mem::transmute(item.1) }; Ok(()) diff --git a/kernel-hal-unix/src/lib.rs b/kernel-hal-unix/src/lib.rs index 85917c8e1..9297adbfb 100644 --- a/kernel-hal-unix/src/lib.rs +++ b/kernel-hal-unix/src/lib.rs @@ -87,7 +87,7 @@ impl PageTable { impl PageTableTrait for PageTable { /// Map the page of `vaddr` to the frame of `paddr` with `flags`. #[export_name = "hal_pt_map"] - fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<(), ()> { + fn map(&mut self, vaddr: VirtAddr, paddr: PhysAddr, flags: MMUFlags) -> Result<()> { debug_assert!(page_aligned(vaddr)); debug_assert!(page_aligned(paddr)); let prot = flags.to_mmap_prot(); @@ -97,13 +97,13 @@ impl PageTableTrait for PageTable { /// Unmap the page of `vaddr`. #[export_name = "hal_pt_unmap"] - fn unmap(&mut self, vaddr: VirtAddr) -> Result<(), ()> { + fn unmap(&mut self, vaddr: VirtAddr) -> Result<()> { self.unmap_cont(vaddr, 1) } /// Change the `flags` of the page of `vaddr`. #[export_name = "hal_pt_protect"] - fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<(), ()> { + fn protect(&mut self, vaddr: VirtAddr, flags: MMUFlags) -> Result<()> { debug_assert!(page_aligned(vaddr)); let prot = flags.to_mmap_prot(); let ret = unsafe { libc::mprotect(vaddr as _, PAGE_SIZE, prot) }; @@ -113,7 +113,7 @@ impl PageTableTrait for PageTable { /// Query the physical address which the page of `vaddr` maps to. #[export_name = "hal_pt_query"] - fn query(&mut self, vaddr: VirtAddr) -> Result { + fn query(&mut self, vaddr: VirtAddr) -> Result { debug_assert!(page_aligned(vaddr)); unimplemented!() } @@ -125,7 +125,7 @@ impl PageTableTrait for PageTable { } #[export_name = "hal_pt_unmap_cont"] - fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<(), ()> { + fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<()> { if pages == 0 { return Ok(()); } @@ -142,7 +142,7 @@ pub struct PhysFrame { } impl Debug for PhysFrame { - fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), std::fmt::Error> { + fn fmt(&self, f: &mut Formatter<'_>) -> core::result::Result<(), std::fmt::Error> { write!(f, "PhysFrame({:#x})", self.paddr) } } @@ -179,7 +179,7 @@ impl Drop for PhysFrame { fn phys_to_virt(paddr: PhysAddr) -> VirtAddr { /// Map physical memory from here. - const PMEM_BASE: VirtAddr = 0x8_00000000; + const PMEM_BASE: VirtAddr = 0x8_0000_0000; PMEM_BASE + paddr } @@ -247,7 +247,7 @@ fn page_aligned(x: VirtAddr) -> bool { x % PAGE_SIZE == 0 } -const PMEM_SIZE: usize = 0x400_00000; // 1GiB +const PMEM_SIZE: usize = 0x4000_0000; // 1GiB lazy_static! { static ref FRAME_FILE: File = create_pmem_file(); @@ -302,11 +302,11 @@ fn mmap(fd: libc::c_int, offset: usize, len: usize, vaddr: VirtAddr, prot: libc: } trait FlagsExt { - fn to_mmap_prot(self) -> libc::c_int; + fn to_mmap_prot(&self) -> libc::c_int; } impl FlagsExt for MMUFlags { - fn to_mmap_prot(self) -> libc::c_int { + fn to_mmap_prot(&self) -> libc::c_int { let mut flags = 0; if self.contains(MMUFlags::READ) { flags |= libc::PROT_READ; diff --git a/kernel-hal/src/dummy.rs b/kernel-hal/src/dummy.rs index 6dd2217c1..9e08561ea 100644 --- a/kernel-hal/src/dummy.rs +++ b/kernel-hal/src/dummy.rs @@ -10,6 +10,13 @@ use core::time::Duration; type ThreadId = usize; +/// The error type which is returned from HAL functions. +#[derive(Debug)] +pub struct HalError; + +/// The result type returned by HAL functions. +pub type Result = core::result::Result; + #[repr(C)] pub struct Thread { id: ThreadId, @@ -49,16 +56,16 @@ pub fn context_run(_context: &mut UserContext) { pub trait PageTableTrait: Sync + Send { /// Map the page of `vaddr` to the frame of `paddr` with `flags`. - fn map(&mut self, _vaddr: VirtAddr, _paddr: PhysAddr, _flags: MMUFlags) -> Result<(), ()>; + fn map(&mut self, _vaddr: VirtAddr, _paddr: PhysAddr, _flags: MMUFlags) -> Result<()>; /// Unmap the page of `vaddr`. - fn unmap(&mut self, _vaddr: VirtAddr) -> Result<(), ()>; + fn unmap(&mut self, _vaddr: VirtAddr) -> Result<()>; /// Change the `flags` of the page of `vaddr`. - fn protect(&mut self, _vaddr: VirtAddr, _flags: MMUFlags) -> Result<(), ()>; + fn protect(&mut self, _vaddr: VirtAddr, _flags: MMUFlags) -> Result<()>; /// Query the physical address which the page of `vaddr` maps to. - fn query(&mut self, _vaddr: VirtAddr) -> Result; + fn query(&mut self, _vaddr: VirtAddr) -> Result; /// Get the physical address of root page table. fn table_phys(&self) -> PhysAddr; @@ -68,7 +75,7 @@ pub trait PageTableTrait: Sync + Send { mut vaddr: VirtAddr, paddrs: &[PhysAddr], flags: MMUFlags, - ) -> Result<(), ()> { + ) -> Result<()> { for &paddr in paddrs { self.map(vaddr, paddr, flags)?; vaddr += PAGE_SIZE; @@ -82,7 +89,7 @@ pub trait PageTableTrait: Sync + Send { paddr: PhysAddr, pages: usize, flags: MMUFlags, - ) -> Result<(), ()> { + ) -> Result<()> { for i in 0..pages { let paddr = paddr + i * PAGE_SIZE; self.map(vaddr, paddr, flags)?; @@ -91,7 +98,7 @@ pub trait PageTableTrait: Sync + Send { Ok(()) } - fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<(), ()> { + fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<()> { for i in 0..pages { self.unmap(vaddr + i * PAGE_SIZE)?; } @@ -126,25 +133,25 @@ impl PageTableTrait for PageTable { /// Map the page of `vaddr` to the frame of `paddr` with `flags`. #[linkage = "weak"] #[export_name = "hal_pt_map"] - fn map(&mut self, _vaddr: VirtAddr, _paddr: PhysAddr, _flags: MMUFlags) -> Result<(), ()> { + fn map(&mut self, _vaddr: VirtAddr, _paddr: PhysAddr, _flags: MMUFlags) -> Result<()> { unimplemented!() } /// Unmap the page of `vaddr`. #[linkage = "weak"] #[export_name = "hal_pt_unmap"] - fn unmap(&mut self, _vaddr: VirtAddr) -> Result<(), ()> { + fn unmap(&mut self, _vaddr: VirtAddr) -> Result<()> { unimplemented!() } /// Change the `flags` of the page of `vaddr`. #[linkage = "weak"] #[export_name = "hal_pt_protect"] - fn protect(&mut self, _vaddr: VirtAddr, _flags: MMUFlags) -> Result<(), ()> { + fn protect(&mut self, _vaddr: VirtAddr, _flags: MMUFlags) -> Result<()> { unimplemented!() } /// Query the physical address which the page of `vaddr` maps to. #[linkage = "weak"] #[export_name = "hal_pt_query"] - fn query(&mut self, _vaddr: VirtAddr) -> Result { + fn query(&mut self, _vaddr: VirtAddr) -> Result { unimplemented!() } /// Get the physical address of root page table. @@ -155,7 +162,7 @@ impl PageTableTrait for PageTable { } #[linkage = "weak"] #[export_name = "hal_pt_unmap_cont"] - fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<(), ()> { + fn unmap_cont(&mut self, vaddr: VirtAddr, pages: usize) -> Result<()> { for i in 0..pages { self.unmap(vaddr + i * PAGE_SIZE)?; } diff --git a/linux-object/src/fs/mod.rs b/linux-object/src/fs/mod.rs index 1bdc3206e..466f2d34a 100644 --- a/linux-object/src/fs/mod.rs +++ b/linux-object/src/fs/mod.rs @@ -88,15 +88,15 @@ impl TryFrom<&str> for FileDesc { } } -impl Into for FileDesc { - fn into(self) -> usize { - self.0 as _ +impl From for usize { + fn from(f: FileDesc) -> Self { + f.0 as _ } } -impl Into for FileDesc { - fn into(self) -> i32 { - self.0 +impl From for i32 { + fn from(f: FileDesc) -> Self { + f.0 } } @@ -221,7 +221,7 @@ pub fn split_path(path: &str) -> (&str, &str) { let mut split = path.trim_end_matches('/').rsplitn(2, '/'); let file_name = split.next().unwrap(); let mut dir_path = split.next().unwrap_or("."); - if dir_path == "" { + if dir_path.is_empty() { dir_path = "/"; } (dir_path, file_name) diff --git a/linux-object/src/lib.rs b/linux-object/src/lib.rs index b1eec72c3..a1305d65f 100644 --- a/linux-object/src/lib.rs +++ b/linux-object/src/lib.rs @@ -2,6 +2,7 @@ #![no_std] #![deny(warnings, unsafe_code, missing_docs)] +#![allow(clippy::upper_case_acronyms)] #![feature(bool_to_option)] extern crate alloc; diff --git a/linux-object/src/time.rs b/linux-object/src/time.rs index 6861abede..b0a721143 100644 --- a/linux-object/src/time.rs +++ b/linux-object/src/time.rs @@ -7,7 +7,7 @@ use rcore_fs::vfs::*; /// TimeSpec struct for clock_gettime, similar to Timespec #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Default)] pub struct TimeSpec { /// seconds pub sec: usize, @@ -17,7 +17,7 @@ pub struct TimeSpec { /// TimeVal struct for gettimeofday #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone, Default)] pub struct TimeVal { /// seconds pub sec: usize, @@ -65,42 +65,30 @@ impl TimeSpec { } } -impl Into for TimeSpec { - fn into(self) -> Timespec { +impl From for Timespec { + fn from(t: TimeSpec) -> Self { Timespec { - sec: self.sec as i64, - nsec: self.nsec as i32, + sec: t.sec as i64, + nsec: t.nsec as i32, } } } -impl Into for TimeSpec { - fn into(self) -> Duration { - Duration::new(self.sec as u64, self.nsec as u32) +impl From for Duration { + fn from(t: TimeSpec) -> Self { + Duration::new(t.sec as u64, t.nsec as u32) } } -impl Into for TimeSpec { - fn into(self) -> TimeVal { +impl From for TimeVal { + fn from(t: TimeSpec) -> Self { TimeVal { - sec: self.sec, - usec: self.nsec / 1_000 as usize, + sec: t.sec, + usec: t.nsec / 1_000, } } } -impl Default for TimeVal { - fn default() -> Self { - TimeVal { sec: 0, usec: 0 } - } -} - -impl Default for TimeSpec { - fn default() -> Self { - TimeSpec { sec: 0, nsec: 0 } - } -} - /// RUsage for sys_getrusage() /// ignore other fields for now #[repr(C)] diff --git a/linux-syscall/src/lib.rs b/linux-syscall/src/lib.rs index db42e4698..7b9f7f1ef 100644 --- a/linux-syscall/src/lib.rs +++ b/linux-syscall/src/lib.rs @@ -20,6 +20,7 @@ #![no_std] #![deny(warnings, unsafe_code, missing_docs)] +#![allow(clippy::upper_case_acronyms)] #![feature(bool_to_option)] #[macro_use] diff --git a/zircon-loader/src/main.rs b/zircon-loader/src/main.rs index ec156e932..e8325766b 100644 --- a/zircon-loader/src/main.rs +++ b/zircon-loader/src/main.rs @@ -2,8 +2,11 @@ extern crate log; +use std::path::{Path, PathBuf}; use std::sync::Arc; -use {std::path::PathBuf, structopt::StructOpt, zircon_loader::*, zircon_object::object::*}; +use structopt::StructOpt; +use zircon_loader::*; +use zircon_object::object::*; #[derive(Debug, StructOpt)] #[structopt()] @@ -29,7 +32,7 @@ async fn main() { proc.wait_signal(Signal::USER_SIGNAL_0).await; } -fn open_images(path: &PathBuf) -> std::io::Result>> { +fn open_images(path: &Path) -> std::io::Result>> { Ok(Images { userboot: std::fs::read(path.join("userboot-libos.so"))?, vdso: std::fs::read(path.join("libzircon-libos.so"))?, diff --git a/zircon-object/src/dev/pci/mod.rs b/zircon-object/src/dev/pci/mod.rs index 4a9a7eac7..94a3608b6 100644 --- a/zircon-object/src/dev/pci/mod.rs +++ b/zircon-object/src/dev/pci/mod.rs @@ -20,6 +20,7 @@ pub use self::pio::{pio_config_read, pio_config_write}; /// Type of PCI address space. #[derive(PartialEq, Debug)] +#[allow(clippy::upper_case_acronyms)] pub enum PciAddrSpace { /// Memory mapping I/O. MMIO, diff --git a/zircon-object/src/dev/pci/nodes.rs b/zircon-object/src/dev/pci/nodes.rs index 90f760f6e..f929f31b7 100644 --- a/zircon-object/src/dev/pci/nodes.rs +++ b/zircon-object/src/dev/pci/nodes.rs @@ -1023,7 +1023,7 @@ impl PcieDevice { cfg.write16_(data_reg as usize, target_data as u16); } fn set_msi_multi_message_enb(&self, inner: &MutexGuard, irq_num: u32) { - assert!(1 <= irq_num && irq_num <= PCIE_MAX_MSI_IRQS); + assert!((1..=PCIE_MAX_MSI_IRQS).contains(&irq_num)); let log2 = u32::next_power_of_two(irq_num).trailing_zeros(); assert!(log2 <= 5); let cfg = self.cfg.as_ref().unwrap(); diff --git a/zircon-object/src/dev/resource.rs b/zircon-object/src/dev/resource.rs index 296496c49..3941866e0 100644 --- a/zircon-object/src/dev/resource.rs +++ b/zircon-object/src/dev/resource.rs @@ -4,6 +4,7 @@ numeric_enum! { #[repr(u32)] /// ResourceKind definition from fuchsia/zircon/system/public/zircon/syscalls/resource.h #[allow(missing_docs)] + #[allow(clippy::upper_case_acronyms)] #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub enum ResourceKind { MMIO = 0, @@ -97,7 +98,7 @@ impl Resource { pub fn get_info(&self) -> ResourceInfo { let name = self.base.name(); let name = name.as_bytes(); - let mut name_vec = [0 as u8; 32]; + let mut name_vec = [0u8; 32]; name_vec[..name.len()].clone_from_slice(name); ResourceInfo { kind: self.kind as _, diff --git a/zircon-object/src/error.rs b/zircon-object/src/error.rs index 818aba88f..6fa6aaa8c 100644 --- a/zircon-object/src/error.rs +++ b/zircon-object/src/error.rs @@ -8,6 +8,7 @@ pub type ZxResult = Result; /// - Positive values are reserved for protocol-specific error values, /// and will never be defined by the system. #[allow(non_camel_case_types)] +#[allow(clippy::upper_case_acronyms)] #[repr(i32)] #[derive(Debug, Clone, Copy, Eq, PartialEq)] pub enum ZxError { diff --git a/zircon-object/src/ipc/socket.rs b/zircon-object/src/ipc/socket.rs index ae40c30a1..ed1c5d321 100644 --- a/zircon-object/src/ipc/socket.rs +++ b/zircon-object/src/ipc/socket.rs @@ -166,7 +166,7 @@ impl Socket { } let mut inner = self.inner.lock(); let actual_count = data.len(); - inner.data.extend(&data[..]); + inner.data.extend(data); inner.datagram_len.push_back(actual_count); Ok(actual_count) } @@ -174,7 +174,7 @@ impl Socket { fn write_stream(&self, data: &[u8]) -> ZxResult { let actual_count = data.len(); let mut inner = self.inner.lock(); - inner.data.extend(&data[..]); + inner.data.extend(data); Ok(actual_count) } diff --git a/zircon-object/src/task/process.rs b/zircon-object/src/task/process.rs index f37cddc02..520305f9c 100644 --- a/zircon-object/src/task/process.rs +++ b/zircon-object/src/task/process.rs @@ -470,8 +470,10 @@ impl Process { /// Get information of this process. pub fn get_info(&self) -> ProcessInfo { - let mut info = ProcessInfo::default(); - info.debugger_attached = self.debug_exceptionate.has_channel(); + let mut info = ProcessInfo { + debugger_attached: self.debug_exceptionate.has_channel(), + ..Default::default() + }; match self.inner.lock().status { Status::Init => { info.started = false; diff --git a/zircon-object/src/vm/vmar.rs b/zircon-object/src/vm/vmar.rs index c6b90dad3..16982f932 100644 --- a/zircon-object/src/vm/vmar.rs +++ b/zircon-object/src/vm/vmar.rs @@ -67,7 +67,7 @@ impl VmAddressRegion { use core::sync::atomic::*; static VMAR_ID: AtomicUsize = AtomicUsize::new(0); let i = VMAR_ID.fetch_add(1, Ordering::SeqCst); - (0x2_00000000 + 0x100_00000000 * i, 0x100_00000000) + (0x2_0000_0000 + 0x100_0000_0000 * i, 0x100_0000_0000) }; #[cfg(not(feature = "aspace-separate"))] let (addr, size) = (USER_ASPACE_BASE as usize, USER_ASPACE_SIZE as usize); diff --git a/zircon-syscall/src/consts.rs b/zircon-syscall/src/consts.rs index bd79a5e12..ffc370055 100644 --- a/zircon-syscall/src/consts.rs +++ b/zircon-syscall/src/consts.rs @@ -5,6 +5,7 @@ numeric_enum! { #[repr(u32)] #[derive(Debug, Eq, PartialEq)] #[allow(non_camel_case_types)] +#[allow(clippy::upper_case_acronyms)] pub enum SyscallType { BTI_CREATE = 0, BTI_PIN = 1, diff --git a/zircon-syscall/src/object.rs b/zircon-syscall/src/object.rs index 100fcd3fe..d3232dbc3 100644 --- a/zircon-syscall/src/object.rs +++ b/zircon-syscall/src/object.rs @@ -305,8 +305,10 @@ impl Syscall<'_> { } Topic::KmemStats => { let mut info_ptr = UserOutPtr::::from_addr_size(buffer, buffer_size)?; - let mut kmem = KmemInfo::default(); - kmem.vmo_bytes = vmo_page_bytes() as u64; + let kmem = KmemInfo { + vmo_bytes: vmo_page_bytes() as u64, + ..Default::default() + }; info_ptr.write(kmem)?; } Topic::TaskStats => { diff --git a/zircon-syscall/src/vmar.rs b/zircon-syscall/src/vmar.rs index 4f9acd85c..af7009009 100644 --- a/zircon-syscall/src/vmar.rs +++ b/zircon-syscall/src/vmar.rs @@ -5,7 +5,7 @@ fn amount_of_alignments(options: u32) -> ZxResult { if align_pow2 == 0 { align_pow2 = PAGE_SIZE_LOG2; } - if (align_pow2 < PAGE_SIZE_LOG2) || (align_pow2 > 32) { + if !(PAGE_SIZE_LOG2..=32).contains(&align_pow2) { Err(ZxError::INVALID_ARGS) } else { Ok(1 << align_pow2)