arch/x86-64: implement IrqFrame signal frame
This commit is contained in:
parent
77e5fcc947
commit
cdd401552e
@ -136,7 +136,26 @@ struct Pointer {
|
|||||||
|
|
||||||
impl TaskFrame for IrqFrame {
|
impl TaskFrame for IrqFrame {
|
||||||
fn store(&self) -> SavedFrame {
|
fn store(&self) -> SavedFrame {
|
||||||
todo!()
|
SavedFrame {
|
||||||
|
rax: self.rax,
|
||||||
|
rcx: self.rcx,
|
||||||
|
rdx: self.rdx,
|
||||||
|
rbx: self.rbx,
|
||||||
|
rsi: self.rsi,
|
||||||
|
rdi: self.rdi,
|
||||||
|
rbp: self.rbp,
|
||||||
|
r8: self.r8,
|
||||||
|
r9: self.r9,
|
||||||
|
r10: self.r10,
|
||||||
|
r11: self.r11,
|
||||||
|
r12: self.r12,
|
||||||
|
r13: self.r13,
|
||||||
|
r14: self.r14,
|
||||||
|
r15: self.r15,
|
||||||
|
user_ip: self.rip,
|
||||||
|
user_sp: self.rsp,
|
||||||
|
rflags: self.rflags,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn restore(&mut self, _saved: &SavedFrame) {
|
fn restore(&mut self, _saved: &SavedFrame) {
|
||||||
@ -144,31 +163,31 @@ impl TaskFrame for IrqFrame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn argument(&self) -> u64 {
|
fn argument(&self) -> u64 {
|
||||||
todo!();
|
self.rdi as _
|
||||||
}
|
}
|
||||||
|
|
||||||
fn user_ip(&self) -> usize {
|
fn user_ip(&self) -> usize {
|
||||||
todo!()
|
self.rip as _
|
||||||
}
|
}
|
||||||
|
|
||||||
fn user_sp(&self) -> usize {
|
fn user_sp(&self) -> usize {
|
||||||
todo!()
|
self.rsp as _
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_argument(&mut self, value: u64) {
|
fn set_argument(&mut self, value: u64) {
|
||||||
self.rdi = value;
|
self.rdi = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_return_value(&mut self, _value: u64) {
|
fn set_return_value(&mut self, value: u64) {
|
||||||
todo!()
|
self.rax = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_user_ip(&mut self, _value: usize) {
|
fn set_user_ip(&mut self, value: usize) {
|
||||||
todo!()
|
self.rip = value as _;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_user_sp(&mut self, _value: usize) {
|
fn set_user_sp(&mut self, value: usize) {
|
||||||
todo!()
|
self.rsp = value as _;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ use kernel_util::{
|
|||||||
device::RawDeviceMemoryMapping,
|
device::RawDeviceMemoryMapping,
|
||||||
table::EntryLevelExt,
|
table::EntryLevelExt,
|
||||||
},
|
},
|
||||||
sync::{guard::GuardedRef, SpinFence},
|
sync::SpinFence,
|
||||||
util::OneTimeInit,
|
util::OneTimeInit,
|
||||||
};
|
};
|
||||||
use yboot_proto::{v1::AvailableMemoryRegion, LoadProtocolV1};
|
use yboot_proto::{v1::AvailableMemoryRegion, LoadProtocolV1};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user