实现SystemV共享内存 (#690)

* 实现SystemV共享内存

* 测试shm

* 添加测试程序

* 完善细节

* 修正shm的时间数据错误的问题

* fix: devfs的metadata权限为0x777的错误

---------

Co-authored-by: longjin <longjin@DragonOS.org>
This commit is contained in:
Jomo
2024-04-07 14:04:19 +08:00
committed by GitHub
parent eb49bb993a
commit 6fc066ac11
49 changed files with 1567 additions and 202 deletions

View File

@ -22,7 +22,7 @@ use crate::{
syscall::user_access::{UserBufferReader, UserBufferWriter},
time::{
timer::{next_n_us_timer_jiffies, Timer, WakeUpHelper},
TimeSpec,
PosixTimeSpec,
},
};
@ -220,7 +220,7 @@ impl Futex {
uaddr: VirtAddr,
flags: FutexFlag,
val: u32,
abs_time: Option<TimeSpec>,
abs_time: Option<PosixTimeSpec>,
bitset: u32,
) -> Result<usize, SystemError> {
if bitset == 0 {

View File

@ -3,7 +3,7 @@ use system_error::SystemError;
use crate::{
mm::{verify_area, VirtAddr},
syscall::Syscall,
time::TimeSpec,
time::PosixTimeSpec,
};
use super::{
@ -16,7 +16,7 @@ impl Syscall {
uaddr: VirtAddr,
operation: FutexFlag,
val: u32,
timeout: Option<TimeSpec>,
timeout: Option<PosixTimeSpec>,
uaddr2: VirtAddr,
val2: u32,
val3: u32,

View File

@ -16,7 +16,7 @@ use crate::{
kmsg::KMSG,
log::{LogLevel, LogMessage},
},
time::TimeSpec,
time::PosixTimeSpec,
};
#[macro_export]
@ -120,7 +120,7 @@ pub struct Logger;
impl Logger {
pub fn log(&self, log_level: usize, message: fmt::Arguments) {
if unsafe { KMSG.is_some() } {
let timestamp: TimeSpec = TimeSpec::now();
let timestamp: PosixTimeSpec = PosixTimeSpec::now_cpu_time();
let log_level = LogLevel::from(log_level);
let log_message = LogMessage::new(timestamp, log_level, message.to_string());