mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-25 02:13:24 +00:00
Update image and Rust toolchain
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
97323f612b
commit
12d01ca1e4
@ -17,7 +17,6 @@
|
||||
#![feature(linked_list_remove)]
|
||||
#![feature(trait_alias)]
|
||||
#![feature(register_tool)]
|
||||
#![feature(trait_upcasting)]
|
||||
#![feature(format_args_nl)]
|
||||
#![feature(int_roundings)]
|
||||
#![feature(step_trait)]
|
||||
|
@ -21,7 +21,9 @@ impl Inner {
|
||||
return;
|
||||
};
|
||||
|
||||
if let Some(leader) = &self.leader && Arc::ptr_eq(leader, &process) {
|
||||
if let Some(leader) = &self.leader
|
||||
&& Arc::ptr_eq(leader, &process)
|
||||
{
|
||||
self.leader = None;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,9 @@ impl Inner {
|
||||
}
|
||||
|
||||
pub(in crate::process) fn remove_process(&mut self, process: &Arc<Process>) {
|
||||
if let Some(leader) = &self.leader && Arc::ptr_eq(leader, process) {
|
||||
if let Some(leader) = &self.leader
|
||||
&& Arc::ptr_eq(leader, process)
|
||||
{
|
||||
self.leader = None;
|
||||
}
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ impl Elf {
|
||||
|
||||
// An offset to be subtracted from ELF vaddr for PIE
|
||||
pub fn base_load_address_offset(&self) -> u64 {
|
||||
let phdr = self.program_headers.get(0).unwrap();
|
||||
let phdr = self.program_headers.first().unwrap();
|
||||
phdr.virtual_addr - phdr.offset
|
||||
}
|
||||
}
|
||||
|
@ -199,12 +199,14 @@ fn base_map_addr(elf: &Elf, root_vmar: &Vmar<Full>) -> Result<Vaddr> {
|
||||
.program_headers
|
||||
.iter()
|
||||
.filter_map(|program_header| {
|
||||
if let Ok(type_) = program_header.get_type() && type_ == program::Type::Load {
|
||||
let ph_max_addr = program_header.virtual_addr + program_header.mem_size;
|
||||
Some(ph_max_addr as usize)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
if let Ok(type_) = program_header.get_type()
|
||||
&& type_ == program::Type::Load
|
||||
{
|
||||
let ph_max_addr = program_header.virtual_addr + program_header.mem_size;
|
||||
Some(ph_max_addr as usize)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.max()
|
||||
.ok_or(Error::with_message(
|
||||
|
@ -122,15 +122,21 @@ fn do_select(
|
||||
let fd = poll_fd.fd().unwrap();
|
||||
let revents = poll_fd.revents().get();
|
||||
let (readable, writable, except) = convert_events_to_rwe(&revents);
|
||||
if let Some(ref mut fds) = readfds && readable {
|
||||
if let Some(ref mut fds) = readfds
|
||||
&& readable
|
||||
{
|
||||
fds.set(fd)?;
|
||||
total_revents += 1;
|
||||
}
|
||||
if let Some(ref mut fds) = writefds && writable {
|
||||
if let Some(ref mut fds) = writefds
|
||||
&& writable
|
||||
{
|
||||
fds.set(fd)?;
|
||||
total_revents += 1;
|
||||
}
|
||||
if let Some(ref mut fds) = exceptfds && except {
|
||||
if let Some(ref mut fds) = exceptfds
|
||||
&& except
|
||||
{
|
||||
fds.set(fd)?;
|
||||
total_revents += 1;
|
||||
}
|
||||
|
@ -1,10 +1,7 @@
|
||||
mod addr;
|
||||
mod socket;
|
||||
|
||||
pub use addr::{
|
||||
read_socket_addr_from_user, write_socket_addr_to_user, InetAddr, SaFamily, SockAddr,
|
||||
SockAddrInet, SockAddrInet6, SockAddrUnix,
|
||||
};
|
||||
pub use addr::{read_socket_addr_from_user, write_socket_addr_to_user, SaFamily};
|
||||
pub use socket::{Protocol, SockFlags, SockType, SOCK_TYPE_MASK};
|
||||
|
||||
#[macro_export]
|
||||
|
Reference in New Issue
Block a user