2015-09-17 16:23:37 +00:00
|
|
|
#ifndef REPLAY_H
|
|
|
|
#define REPLAY_H
|
|
|
|
|
|
|
|
/*
|
|
|
|
* replay.h
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2015-09-17 16:23:54 +00:00
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stdint.h>
|
2015-09-17 16:23:37 +00:00
|
|
|
#include "qapi-types.h"
|
|
|
|
|
|
|
|
extern ReplayMode replay_mode;
|
|
|
|
|
2015-09-17 16:23:54 +00:00
|
|
|
/* Processing the instructions */
|
|
|
|
|
|
|
|
/*! Returns number of executed instructions. */
|
|
|
|
uint64_t replay_get_current_step(void);
|
2015-09-17 16:24:05 +00:00
|
|
|
/*! Returns number of instructions to execute in replay mode. */
|
|
|
|
int replay_get_instructions(void);
|
|
|
|
/*! Updates instructions counter in replay mode. */
|
|
|
|
void replay_account_executed_instructions(void);
|
2015-09-17 16:23:54 +00:00
|
|
|
|
2015-09-17 16:24:16 +00:00
|
|
|
/* 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.
|
|
|
|
\return 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);
|
|
|
|
|
2015-09-17 16:24:22 +00:00
|
|
|
/* Asynchronous events queue */
|
|
|
|
|
|
|
|
/*! Disables storing events in the queue */
|
|
|
|
void replay_disable_events(void);
|
|
|
|
/*! Returns true when saving events is enabled */
|
|
|
|
bool replay_events_enabled(void);
|
2015-09-17 16:24:16 +00:00
|
|
|
|
2015-09-17 16:23:37 +00:00
|
|
|
#endif
|