Revision 1df912cf vl.c
b/vl.c | ||
---|---|---|
1 | 1 |
/* |
2 |
* QEMU based User Mode Linux
|
|
2 |
* QEMU PC System Emulator
|
|
3 | 3 |
* |
4 |
* This file is part of proprietary software - it is published here |
|
5 |
* only for demonstration and information purposes. |
|
4 |
* Copyright (c) 2003 Fabrice Bellard |
|
6 | 5 |
* |
7 |
* Copyright (c) 2003 Fabrice Bellard |
|
6 |
* Permission is hereby granted, free of charge, to any person obtaining a copy |
|
7 |
* of this software and associated documentation files (the "Software"), to deal |
|
8 |
* in the Software without restriction, including without limitation the rights |
|
9 |
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
10 |
* copies of the Software, and to permit persons to whom the Software is |
|
11 |
* furnished to do so, subject to the following conditions: |
|
12 |
* |
|
13 |
* The above copyright notice and this permission notice shall be included in |
|
14 |
* all copies or substantial portions of the Software. |
|
15 |
* |
|
16 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
17 |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
18 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
|
19 |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
20 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
21 |
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
22 |
* THE SOFTWARE. |
|
8 | 23 |
*/ |
9 | 24 |
#include <stdlib.h> |
10 | 25 |
#include <stdio.h> |
26 |
#include <stdarg.h> |
|
11 | 27 |
#include <string.h> |
12 | 28 |
#include <getopt.h> |
13 | 29 |
#include <inttypes.h> |
... | ... | |
163 | 179 |
|
164 | 180 |
char phys_ram_file[1024]; |
165 | 181 |
CPUX86State *global_env; |
182 |
CPUX86State *cpu_single_env; |
|
166 | 183 |
FILE *logfile = NULL; |
167 | 184 |
int loglevel; |
168 | 185 |
IOPortReadFunc *ioport_readb_table[MAX_IOPORTS]; |
... | ... | |
1658 | 1675 |
static void host_alarm_handler(int host_signum, siginfo_t *info, |
1659 | 1676 |
void *puc) |
1660 | 1677 |
{ |
1661 |
/* just exit from the cpu to have a change to handle timers */
|
|
1678 |
/* just exit from the cpu to have a chance to handle timers */
|
|
1662 | 1679 |
cpu_x86_interrupt(global_env); |
1663 | 1680 |
timer_irq_pending = 1; |
1664 | 1681 |
} |
... | ... | |
1811 | 1828 |
/* init CPU state */ |
1812 | 1829 |
env = cpu_init(); |
1813 | 1830 |
global_env = env; |
1831 |
cpu_single_env = env; |
|
1814 | 1832 |
|
1815 | 1833 |
/* setup basic memory access */ |
1816 | 1834 |
env->cr[0] = 0x00000033; |
... | ... | |
1893 | 1911 |
} |
1894 | 1912 |
} |
1895 | 1913 |
|
1896 |
/* just for testing */
|
|
1914 |
/* timer IRQ */
|
|
1897 | 1915 |
if (timer_irq_pending) { |
1898 | 1916 |
pic_set_irq(0, 1); |
1899 | 1917 |
pic_set_irq(0, 0); |
Also available in: Unified diff