replay: interrupts and exceptions
[qemu/ar7.git] / include / sysemu / replay.h
blob8915523eafaced0da50e8c423afb92522846967b
1 #ifndef REPLAY_H
2 #define REPLAY_H
4 /*
5 * replay.h
7 * Copyright (c) 2010-2015 Institute for System Programming
8 * of the Russian Academy of Sciences.
10 * This work is licensed under the terms of the GNU GPL, version 2 or later.
11 * See the COPYING file in the top-level directory.
15 #include <stdbool.h>
16 #include <stdint.h>
17 #include "qapi-types.h"
19 extern ReplayMode replay_mode;
21 /* Processing the instructions */
23 /*! Returns number of executed instructions. */
24 uint64_t replay_get_current_step(void);
25 /*! Returns number of instructions to execute in replay mode. */
26 int replay_get_instructions(void);
27 /*! Updates instructions counter in replay mode. */
28 void replay_account_executed_instructions(void);
30 /* Interrupts and exceptions */
32 /*! Called by exception handler to write or read
33 exception processing events. */
34 bool replay_exception(void);
35 /*! Used to determine that exception is pending.
36 Does not proceed to the next event in the log. */
37 bool replay_has_exception(void);
38 /*! Called by interrupt handlers to write or read
39 interrupt processing events.
40 \return true if interrupt should be processed */
41 bool replay_interrupt(void);
42 /*! Tries to read interrupt event from the file.
43 Returns true, when interrupt request is pending */
44 bool replay_has_interrupt(void);
47 #endif