1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * QEMU replay core API
- *
- * Copyright (c) 2010-2015 Institute for System Programming
- * of the Russian Academy of Sciences.
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- */
- #ifndef EXEC_REPLAY_H
- #define EXEC_REPLAY_H
- #include "qapi/qapi-types-replay.h"
- extern ReplayMode replay_mode;
- /* Replay process control functions */
- /* Enables recording or saving event log with specified parameters */
- void replay_configure(struct QemuOpts *opts);
- /* Initializes timers used for snapshotting and enables events recording */
- void replay_start(void);
- /* Closes replay log file and frees other resources. */
- void replay_finish(void);
- /* Adds replay blocker with the specified error description */
- void replay_add_blocker(const char *feature);
- /* Returns name of the replay log file */
- const char *replay_get_filename(void);
- /*
- * Start making one step in backward direction.
- * Used by gdbstub for backwards debugging.
- * Returns true on success.
- */
- bool replay_reverse_step(void);
- /*
- * Start searching the last breakpoint/watchpoint.
- * Used by gdbstub for backwards debugging.
- * Returns true if the process successfully started.
- */
- bool replay_reverse_continue(void);
- /*
- * Returns true if replay module is processing
- * reverse_continue or reverse_step request
- */
- bool replay_running_debug(void);
- /* Called in reverse debugging mode to collect breakpoint information */
- void replay_breakpoint(void);
- /* Called when gdb is attached to gdbstub */
- void replay_gdb_attached(void);
- /* Interrupts and exceptions */
- /* Called by exception handler to write or read exception processing events */
- bool replay_exception(void);
- /*
- * Used to determine that exception is pending.
- * Does not proceed to the next event in the log.
- */
- bool replay_has_exception(void);
- /*
- * Called by interrupt handlers to write or read interrupt processing events.
- * Returns true if interrupt should be processed.
- */
- bool replay_interrupt(void);
- /*
- * Tries to read interrupt event from the file.
- * Returns true, when interrupt request is pending.
- */
- bool replay_has_interrupt(void);
- /* Processing data from random generators */
- /* Saves the values from the random number generator */
- void replay_save_random(int ret, void *buf, size_t len);
- /* Loads the saved values for the random number generator */
- int replay_read_random(void *buf, size_t len);
- #endif
|