9aa7a88028
Fixed a "feature" in pc_system.cc with setting timers to small values that can cause bochs to hang. Significantly improved the performance of the new PIT. It's probably ready to become the default now. Added a preliminary implementation of the slowdown timer that Bryce and I had talked about.
33 lines
427 B
C++
33 lines
427 B
C++
|
|
#ifdef BX_USE_SLOWDOWN_TIMER
|
|
|
|
class bx_slowdown_timer_c {
|
|
|
|
private:
|
|
struct {
|
|
Bit64u start_time;
|
|
Bit64u start_emulated_time;
|
|
Bit64u lasttime;
|
|
|
|
int timer_handle;
|
|
|
|
Bit64u MAXmultiplier;
|
|
Bit64u Q; // (Q (in seconds))
|
|
} s;
|
|
|
|
public:
|
|
bx_slowdown_timer_c();
|
|
|
|
int init();
|
|
|
|
static void timer_handler(void * this_ptr);
|
|
|
|
void handle_timer();
|
|
|
|
};
|
|
|
|
extern bx_slowdown_timer_c bx_slowdown_timer;
|
|
|
|
#endif
|
|
|