Revision 73332e5c vl.c
b/vl.c | ||
---|---|---|
52 | 52 |
#define memalign(align, size) malloc(size) |
53 | 53 |
#endif |
54 | 54 |
|
55 |
#ifdef CONFIG_SDL |
|
56 |
/* SDL use the pthreads and they modify sigaction. We don't |
|
57 |
want that. */ |
|
58 |
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) |
|
59 |
extern void __libc_sigaction(); |
|
60 |
#define sigaction(sig, act, oact) __libc_sigaction(sig, act, oact) |
|
61 |
#else |
|
62 |
extern void __sigaction(); |
|
63 |
#define sigaction(sig, act, oact) __sigaction(sig, act, oact) |
|
64 |
#endif |
|
65 |
#endif /* CONFIG_SDL */ |
|
55 | 66 |
|
56 | 67 |
#include "disas.h" |
57 | 68 |
|
... | ... | |
1544 | 1555 |
} |
1545 | 1556 |
ioh->max_size = max_size; |
1546 | 1557 |
} |
1547 |
|
|
1558 |
|
|
1548 | 1559 |
ret = poll(ufds, pf - ufds, timeout); |
1549 | 1560 |
if (ret > 0) { |
1550 | 1561 |
/* XXX: better handling of removal */ |
... | ... | |
1669 | 1680 |
{ NULL, 0, NULL, 0 }, |
1670 | 1681 |
}; |
1671 | 1682 |
|
1672 |
#ifdef CONFIG_SDL |
|
1673 |
/* SDL use the pthreads and they modify sigaction. We don't |
|
1674 |
want that. */ |
|
1675 |
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) |
|
1676 |
extern void __libc_sigaction(); |
|
1677 |
#define sigaction(sig, act, oact) __libc_sigaction(sig, act, oact) |
|
1678 |
#else |
|
1679 |
extern void __sigaction(); |
|
1680 |
#define sigaction(sig, act, oact) __sigaction(sig, act, oact) |
|
1681 |
#endif |
|
1682 |
#endif /* CONFIG_SDL */ |
|
1683 |
|
|
1684 | 1683 |
#if defined (TARGET_I386) && defined(USE_CODE_COPY) |
1685 | 1684 |
|
1686 | 1685 |
/* this stack is only used during signal handling */ |
... | ... | |
2045 | 2044 |
} |
2046 | 2045 |
} |
2047 | 2046 |
|
2048 |
init_timers(); |
|
2049 |
|
|
2050 | 2047 |
/* init CPU state */ |
2051 | 2048 |
env = cpu_init(); |
2052 | 2049 |
global_env = env; |
... | ... | |
2070 | 2067 |
#endif |
2071 | 2068 |
} |
2072 | 2069 |
|
2073 |
#if defined(TARGET_I386) |
|
2074 |
pc_init(ram_size, vga_ram_size, boot_device, |
|
2075 |
ds, fd_filename, snapshot, |
|
2076 |
kernel_filename, kernel_cmdline, initrd_filename); |
|
2077 |
#elif defined(TARGET_PPC) |
|
2078 |
ppc_init(); |
|
2079 |
#endif |
|
2080 |
|
|
2081 |
/* launched after the device init so that it can display or not a |
|
2082 |
banner */ |
|
2083 |
monitor_init(); |
|
2084 |
|
|
2085 | 2070 |
/* setup cpu signal handlers for MMU / self modifying code handling */ |
2086 | 2071 |
#if !defined(CONFIG_SOFTMMU) |
2087 | 2072 |
|
2088 | 2073 |
#if defined (TARGET_I386) && defined(USE_CODE_COPY) |
2089 | 2074 |
{ |
2090 | 2075 |
stack_t stk; |
2091 |
signal_stack = malloc(SIGNAL_STACK_SIZE);
|
|
2076 |
signal_stack = memalign(16, SIGNAL_STACK_SIZE);
|
|
2092 | 2077 |
stk.ss_sp = signal_stack; |
2093 | 2078 |
stk.ss_size = SIGNAL_STACK_SIZE; |
2094 | 2079 |
stk.ss_flags = 0; |
... | ... | |
2125 | 2110 |
sigaction(SIGPIPE, &act, NULL); |
2126 | 2111 |
} |
2127 | 2112 |
#endif |
2113 |
init_timers(); |
|
2114 |
|
|
2115 |
#if defined(TARGET_I386) |
|
2116 |
pc_init(ram_size, vga_ram_size, boot_device, |
|
2117 |
ds, fd_filename, snapshot, |
|
2118 |
kernel_filename, kernel_cmdline, initrd_filename); |
|
2119 |
#elif defined(TARGET_PPC) |
|
2120 |
ppc_init(); |
|
2121 |
#endif |
|
2122 |
|
|
2123 |
/* launched after the device init so that it can display or not a |
|
2124 |
banner */ |
|
2125 |
monitor_init(); |
|
2128 | 2126 |
|
2129 | 2127 |
gui_timer = qemu_new_timer(rt_clock, gui_update, NULL); |
2130 | 2128 |
qemu_mod_timer(gui_timer, qemu_get_clock(rt_clock)); |
Also available in: Unified diff