qemu fast fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@706 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
1f673135ac
commit
73332e5ccd
54
vl.c
54
vl.c
@ -52,6 +52,17 @@
|
|||||||
#define memalign(align, size) malloc(size)
|
#define memalign(align, size) malloc(size)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SDL
|
||||||
|
/* SDL use the pthreads and they modify sigaction. We don't
|
||||||
|
want that. */
|
||||||
|
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
|
||||||
|
extern void __libc_sigaction();
|
||||||
|
#define sigaction(sig, act, oact) __libc_sigaction(sig, act, oact)
|
||||||
|
#else
|
||||||
|
extern void __sigaction();
|
||||||
|
#define sigaction(sig, act, oact) __sigaction(sig, act, oact)
|
||||||
|
#endif
|
||||||
|
#endif /* CONFIG_SDL */
|
||||||
|
|
||||||
#include "disas.h"
|
#include "disas.h"
|
||||||
|
|
||||||
@ -1544,7 +1555,7 @@ int main_loop(void)
|
|||||||
}
|
}
|
||||||
ioh->max_size = max_size;
|
ioh->max_size = max_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = poll(ufds, pf - ufds, timeout);
|
ret = poll(ufds, pf - ufds, timeout);
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
/* XXX: better handling of removal */
|
/* XXX: better handling of removal */
|
||||||
@ -1669,18 +1680,6 @@ struct option long_options[] = {
|
|||||||
{ NULL, 0, NULL, 0 },
|
{ NULL, 0, NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_SDL
|
|
||||||
/* SDL use the pthreads and they modify sigaction. We don't
|
|
||||||
want that. */
|
|
||||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
|
|
||||||
extern void __libc_sigaction();
|
|
||||||
#define sigaction(sig, act, oact) __libc_sigaction(sig, act, oact)
|
|
||||||
#else
|
|
||||||
extern void __sigaction();
|
|
||||||
#define sigaction(sig, act, oact) __sigaction(sig, act, oact)
|
|
||||||
#endif
|
|
||||||
#endif /* CONFIG_SDL */
|
|
||||||
|
|
||||||
#if defined (TARGET_I386) && defined(USE_CODE_COPY)
|
#if defined (TARGET_I386) && defined(USE_CODE_COPY)
|
||||||
|
|
||||||
/* this stack is only used during signal handling */
|
/* this stack is only used during signal handling */
|
||||||
@ -2045,8 +2044,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init_timers();
|
|
||||||
|
|
||||||
/* init CPU state */
|
/* init CPU state */
|
||||||
env = cpu_init();
|
env = cpu_init();
|
||||||
global_env = env;
|
global_env = env;
|
||||||
@ -2070,25 +2067,13 @@ int main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(TARGET_I386)
|
|
||||||
pc_init(ram_size, vga_ram_size, boot_device,
|
|
||||||
ds, fd_filename, snapshot,
|
|
||||||
kernel_filename, kernel_cmdline, initrd_filename);
|
|
||||||
#elif defined(TARGET_PPC)
|
|
||||||
ppc_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* launched after the device init so that it can display or not a
|
|
||||||
banner */
|
|
||||||
monitor_init();
|
|
||||||
|
|
||||||
/* setup cpu signal handlers for MMU / self modifying code handling */
|
/* setup cpu signal handlers for MMU / self modifying code handling */
|
||||||
#if !defined(CONFIG_SOFTMMU)
|
#if !defined(CONFIG_SOFTMMU)
|
||||||
|
|
||||||
#if defined (TARGET_I386) && defined(USE_CODE_COPY)
|
#if defined (TARGET_I386) && defined(USE_CODE_COPY)
|
||||||
{
|
{
|
||||||
stack_t stk;
|
stack_t stk;
|
||||||
signal_stack = malloc(SIGNAL_STACK_SIZE);
|
signal_stack = memalign(16, SIGNAL_STACK_SIZE);
|
||||||
stk.ss_sp = signal_stack;
|
stk.ss_sp = signal_stack;
|
||||||
stk.ss_size = SIGNAL_STACK_SIZE;
|
stk.ss_size = SIGNAL_STACK_SIZE;
|
||||||
stk.ss_flags = 0;
|
stk.ss_flags = 0;
|
||||||
@ -2125,6 +2110,19 @@ int main(int argc, char **argv)
|
|||||||
sigaction(SIGPIPE, &act, NULL);
|
sigaction(SIGPIPE, &act, NULL);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
init_timers();
|
||||||
|
|
||||||
|
#if defined(TARGET_I386)
|
||||||
|
pc_init(ram_size, vga_ram_size, boot_device,
|
||||||
|
ds, fd_filename, snapshot,
|
||||||
|
kernel_filename, kernel_cmdline, initrd_filename);
|
||||||
|
#elif defined(TARGET_PPC)
|
||||||
|
ppc_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* launched after the device init so that it can display or not a
|
||||||
|
banner */
|
||||||
|
monitor_init();
|
||||||
|
|
||||||
gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
|
gui_timer = qemu_new_timer(rt_clock, gui_update, NULL);
|
||||||
qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
|
qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock));
|
||||||
|
Loading…
Reference in New Issue
Block a user