use deepsize2::DeepSizeOf;
use serde::{Deserialize, Serialize};
use crate::{SyscallCode, TrapError, TrapResult};
use super::MemoryReadRecord;
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, DeepSizeOf)]
#[repr(C)]
pub struct SyscallEvent {
pub pc: u64,
pub next_pc: u64,
pub clk: u64,
pub should_send: bool,
pub syscall_code: SyscallCode,
pub syscall_id: u32,
pub arg1: u64,
pub arg2: u64,
pub exit_code: u32,
pub sig_return_pc_record: Option<MemoryReadRecord>,
pub trap_result: Option<TrapResult>,
pub trap_error: Option<TrapError>,
}