pub fn retrieve(&mut self, needed_for_replay: bool) -> Option<u64> {
        let is_replay = self.t.session().is_replaying();
        let is_implicit_offset = is_implict_offset_syscall(self.t.arch(), self.syscallno);
        ed_assert!(self.t, needed_for_replay || !is_replay);
        // There is no way we can figure out this information now, so retrieve it
        // from the trace (we record it below under the same circumstance).
        if is_replay && is_implicit_offset {
            return self
                .t
                .as_replay_task()
                .unwrap()
                .current_trace_frame()
                .event()
                .syscall()
                .write_offset;
        }
        // DIFF NOTE: This is an i64 in rr
        let maybe_offset = retrieve_offset(self.t, self.syscallno, self.regs);
        if needed_for_replay && is_implicit_offset {
            self.t
                .as_record_task_mut()
                .unwrap()
                .ev_mut()
                .syscall_mut()
                .write_offset = maybe_offset;
        }

        maybe_offset
    }
/// DIFF NOTE: In rr this returns an i64. We return a Option<u64>.
/// Need to be careful with the logic here
DIFF NOTE: In rr this returns an i64. We return a Option.
Need to be careful with the logic here
DIFF NOTE : In rr this returns an i64 . We return a Option . Need to be careful with the logic here
pub fn retrieve(&mut self, needed_for_replay: bool) -> Option<u64> {
        let is_replay = self.t.session().is_replaying();
        let is_implicit_offset = is_implict_offset_syscall(self.t.arch(), self.syscallno);
        ed_assert!(self.t, needed_for_replay || !is_replay);
        // There is no way we can figure out this information now, so retrieve it
        // from the trace (we record it below under the same circumstance).
        if is_replay && is_implicit_offset {
            return self
                .t
                .as_replay_task()
                .unwrap()
                .current_trace_frame()
                .event()
                .syscall()
                .write_offset;
        }
        // DIFF NOTE: This is an i64 in rr
        let maybe_offset = retrieve_offset(self.t, self.syscallno, self.regs);
        if needed_for_replay && is_implicit_offset {
            self.t
                .as_record_task_mut()
                .unwrap()
                .ev_mut()
                .syscall_mut()
                .write_offset = maybe_offset;
        }
        maybe_offset
    }
pub fn retrieve ( & mut self , needed_for_replay : bool ) -> Option < u64 > { let is_replay = self . t . session ( ) . is_replaying ( ) ; let is_implicit_offset = is_implict_offset_syscall ( self . t . arch ( ) , self . syscallno ) ; ed_assert ! ( self t needed_for_replay is_replay ) ; // There is no way we can figure out this information now, so retrieve it // from the trace (we record it below under the same circumstance). if is_replay && is_implicit_offset { return self . t . as_replay_task ( ) . unwrap ( ) . current_trace_frame ( ) . event ( ) . syscall ( ) . write_offset ; } // DIFF NOTE: This is an i64 in rr let maybe_offset = retrieve_offset ( self . t , self . syscallno , self . regs ) ; if needed_for_replay && is_implicit_offset { self . t . as_record_task_mut ( ) . unwrap ( ) . ev_mut ( ) . syscall_mut ( ) . write_offset = maybe_offset ; } maybe_offset }
DIFF NOTE: In rr this returns an i64.
DIFF NOTE : In rr this returns an i64 .
&mut self
needed_for_replay
bool