diff --git a/arch/src/lib.rs b/arch/src/lib.rs index e03943fe1c..43f203aa15 100644 --- a/arch/src/lib.rs +++ b/arch/src/lib.rs @@ -482,12 +482,12 @@ pub fn add_goldfish_battery( match battery_jail.as_ref() { Some(jail) => { - let mut keep_fds = goldfish_bat.keep_fds(); - syslog::push_fds(&mut keep_fds); + let mut keep_rds = goldfish_bat.keep_rds(); + syslog::push_fds(&mut keep_rds); mmio_bus .insert( Arc::new(Mutex::new( - ProxyDevice::new(goldfish_bat, &jail, keep_fds) + ProxyDevice::new(goldfish_bat, &jail, keep_rds) .map_err(DeviceRegistrationError::ProxyDeviceCreation)?, )), mmio_base, diff --git a/arch/src/serial.rs b/arch/src/serial.rs index cf7d7b08fc..f6bea537fb 100644 --- a/arch/src/serial.rs +++ b/arch/src/serial.rs @@ -7,7 +7,6 @@ use std::collections::BTreeMap; use std::fmt::{self, Display}; use std::fs::{File, OpenOptions}; use std::io::{self, stdin, stdout, ErrorKind}; -use std::os::unix::io::AsRawFd; use std::os::unix::net::UnixDatagram; use std::path::{Path, PathBuf}; use std::str::FromStr; @@ -286,7 +285,7 @@ impl SerialParameters { .open(path.parent().ok_or(Error::InvalidPath)?) .map_err(Error::FileError)?; - short_path.push(dir.as_raw_fd().to_string()); + short_path.push(dir.as_raw_descriptor().to_string()); short_path.push(path.file_name().ok_or(Error::InvalidPath)?); path_cow = Cow::Owned(short_path); _dir_fd = Some(dir); diff --git a/devices/src/bat.rs b/devices/src/bat.rs index 424bf37844..bf940ddb22 100644 --- a/devices/src/bat.rs +++ b/devices/src/bat.rs @@ -4,11 +4,12 @@ use crate::{BusAccessInfo, BusDevice}; use acpi_tables::{aml, aml::Aml}; -use base::{error, warn, AsRawDescriptor, Descriptor, Event, PollContext, PollToken}; +use base::{ + error, warn, AsRawDescriptor, Descriptor, Event, PollToken, RawDescriptor, WaitContext, +}; use msg_socket::{MsgReceiver, MsgSender}; use power_monitor::{BatteryStatus, CreatePowerMonitorFn}; use std::fmt::{self, Display}; -use std::os::unix::io::RawFd; use std::sync::Arc; use std::thread; use sync::Mutex; @@ -137,7 +138,7 @@ fn command_monitor( state: Arc>, create_power_monitor: Option>, ) { - let poll_ctx: PollContext = match PollContext::build_with(&[ + let wait_ctx: WaitContext = match WaitContext::build_with(&[ (&Descriptor(socket.as_raw_descriptor()), Token::Commands), ( &Descriptor(irq_resample_evt.as_raw_descriptor()), @@ -147,14 +148,14 @@ fn command_monitor( ]) { Ok(pc) => pc, Err(e) => { - error!("failed to build PollContext: {}", e); + error!("failed to build WaitContext: {}", e); return; } }; let mut power_monitor = match create_power_monitor { Some(f) => match f() { - Ok(p) => match poll_ctx.add(&Descriptor(p.poll_fd()), Token::Monitor) { + Ok(p) => match wait_ctx.add(&Descriptor(p.poll_fd()), Token::Monitor) { Ok(()) => Some(p), Err(e) => { error!("failed to add power monitor to poll context: {}", e); @@ -178,7 +179,7 @@ fn command_monitor( } 'poll: loop { - let events = match poll_ctx.wait() { + let events = match wait_ctx.wait() { Ok(v) => v, Err(e) => { error!("error while polling for events: {}", e); @@ -186,8 +187,8 @@ fn command_monitor( } }; - for event in events.iter_readable() { - match event.token() { + for event in events.iter().filter(|e| e.is_readable) { + match event.token { Token::Commands => { let req = match socket.recv() { Ok(req) => req, @@ -323,17 +324,17 @@ impl GoldfishBattery { } /// return the fds used by this device - pub fn keep_fds(&self) -> Vec { - let mut fds = vec![ + pub fn keep_rds(&self) -> Vec { + let mut rds = vec![ self.irq_evt.as_raw_descriptor(), self.irq_resample_evt.as_raw_descriptor(), ]; if let Some(socket) = &self.socket { - fds.push(socket.as_raw_descriptor()); + rds.push(socket.as_raw_descriptor()); } - fds + rds } /// start a monitor thread to monitor the events from host