use crate::proc::context::{CpuContext, IpcMessage, Reply}; pub fn extract_from_context(ctx: &mut CpuContext) -> IpcMessage { let msg = IpcMessage::from_regs([ctx.rsi, ctx.rdx, ctx.r10, ctx.r8, ctx.r9, ctx.r12]); ctx.rsi = 0; ctx.rdx = 0; ctx.r10 = 0; ctx.r8 = 0; ctx.r9 = 0; ctx.r12 = 0; msg } pub fn extract_reply_from_context(ctx: &mut CpuContext) -> IpcMessage { let msg = IpcMessage::from_reply_regs([ctx.rdx, ctx.r10, ctx.r8, ctx.r9, ctx.r12]); ctx.rdx = 0; ctx.r10 = 0; ctx.r8 = 0; ctx.r9 = 0; ctx.r12 = 0; msg } pub fn inject_into_context(ctx: &mut CpuContext, msg: &IpcMessage) { ctx.rsi = msg.regs[0]; ctx.rdx = msg.regs[1]; ctx.r10 = msg.regs[2]; ctx.r8 = msg.regs[3]; ctx.r9 = msg.regs[4]; ctx.r12 = msg.regs[5]; }