summaryrefslogtreecommitdiffstats
path: root/vl.c
Commit message (Collapse)AuthorAgeFilesLines
* Use sysctl instead of /proc to find executable path on FreeBSDJuergen Lock2010-03-301-4/+8
| | | | | | | ..since /proc usually isn't mounted on FreeBSD. Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Refactor target specific handling, compile vl.c only onceBlue Swirl2010-03-291-439/+37
| | | | | | | | | | | | | Move target specific functions and RAM handling to arch_init.c. Add a flag to QEMUOptions structure to indicate for which architectures the option is allowed, check the flag in run time and remove conditional code in option handling. Now that no target dependencies remain, compile vl.c only once for all targets. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Refactor CPUState handling out of vl.cBlue Swirl2010-03-291-746/+3
| | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Refactor a few architecture dependent pieces in vl.cBlue Swirl2010-03-291-25/+47
| | | | | | These will be moved later. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Move KVM and Xen global flags to vl.cBlue Swirl2010-03-291-0/+4
| | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Adjust debug handlingBlue Swirl2010-03-291-3/+3
| | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix driftfix optionBlue Swirl2010-03-271-3/+3
| | | | | | Based on patch by Zachary Amsden. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Refactor numa mode settingBlue Swirl2010-03-271-8/+15
| | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Compile ide/core only onceBlue Swirl2010-03-271-1/+1
| | | | | | | | | Make win2k install hack unconditional as it is still restricted to x86 only in vl.c. Replace TARGET_PAGE_SIZE and 4096 with PAGE_SIZE. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Revert "Introduce a default qmp session"Anthony Liguori2010-03-211-63/+0
| | | | | | | | This reverts commit 3290c4aac5b97bb1e3b2b28d94669f2c611ce84a. Conflicts: vl.c
* Revert "qmp: don't make -qmp disable the default monitor"Anthony Liguori2010-03-211-11/+2
| | | | This reverts commit d49f626ed00cecc90fb1ff88da9bdf11e57094d1.
* Revert "Convert atexit users to exit_notifier"Anthony Liguori2010-03-211-5/+2
| | | | | | | | | | | | This reverts commit d7234f4d7e373a708e1df9ab565a71b71b189025. Conflicts: hw/xen_machine_pv.c This should have never been committed. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Revert "Add exit notifiers"Anthony Liguori2010-03-211-27/+0
| | | | | | | | This reverts commit 3b6304f706ef7eebc0b3b3f3a5093ec75448ee19. This was mistakenly committed. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Fix mingw32 buildBlue Swirl2010-03-201-3/+14
| | | | | | | | | | | mkdir() only takes path argument on mingw32: CC i386-softmmu/vl.o /src/qemu/vl.c: In function 'qmp_add_default': /src/qemu/vl.c:3763: error: too many arguments to function 'mkdir' /src/qemu/vl.c:3769: error: too many arguments to function 'mkdir' Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Introduce a default qmp sessionAnthony Liguori2010-03-191-0/+52
| | | | | | | | | Basically, -qmp unix:%{home}/.qemu/qmp/%{uuid}.sock,server,nowait %{uuid} will be -uuid if it's specified, otherwise, if libuuid is available, we generate a uuid. If it's not available, we don't create one. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* qmp: don't make -qmp disable the default monitorAnthony Liguori2010-03-191-2/+11
| | | | | | | | | | Instead, we introduce a default_qmp flag. We don't use it yet, but will in the next patch. This has a user-visible impact as specifying just -qmp will now also show a monitor on the 'vc'. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Convert atexit users to exit_notifierAnthony Liguori2010-03-191-2/+5
| | | | | | | | All of these users have global state so we really don't see a benefit from exit_notifier. However, using exit_notifier means that there's one less justification for having global state in the first place. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Add exit notifiersAnthony Liguori2010-03-191-0/+27
| | | | | | Like atexit() but with state Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Handle deleted IOHandlers in a single bufferJuan Quintela2010-03-191-10/+7
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* rename IOCanRWHandler to IOCanReadHandlerJuan Quintela2010-03-191-2/+2
| | | | | | | It was always only used for reads Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Convert io handlers to QLISTJuan Quintela2010-03-191-21/+14
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* split out qemu-timer.cPaolo Bonzini2010-03-171-1166/+0
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* disentangle tcg and deadline calculationPaolo Bonzini2010-03-171-8/+15
| | | | | | | | | | Just tell main_loop_wait whether to be blocking or nonblocking, so that there is no need to call qemu_cpus_have_work from the timer subsystem. Instead, tcg_cpu_exec can say "we want the main loop not to block because we have stuff to do". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* place together more #ifdef CONFIG_IOTHREAD blocksPaolo Bonzini2010-03-171-41/+37
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* move vmstate registration of vmstate_timers earlierPaolo Bonzini2010-03-171-31/+31
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* new function qemu_icount_deltaPaolo Bonzini2010-03-171-11/+18
| | | | | | | | Tweaking the rounding in qemu_next_deadline ensures that there's no change whatsoever. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* add qemu_alarm_pendingPaolo Bonzini2010-03-171-3/+8
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* add qemu_icount_roundPaolo Bonzini2010-03-171-6/+7
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* centralize handling of -icountPaolo Bonzini2010-03-171-14/+19
| | | | | | | A simple patch to place together all handling of -icount. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* introduce and use qemu_clock_enablePaolo Bonzini2010-03-171-2/+14
| | | | | | | | By adding the possibility to turn on/off a clock, yet another incestuous relationship between timers and CPUs can be disentangled. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* change qemu_run_timers interfacePaolo Bonzini2010-03-171-10/+8
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* extract timer handling out of main_loop_waitPaolo Bonzini2010-03-171-22/+25
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* remove qemu_rearm_alarm_timer from main loopPaolo Bonzini2010-03-171-1/+7
| | | | | | | Make the timer subsystem register its own callback instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* tweak qemu_notify_eventPaolo Bonzini2010-03-171-7/+3
| | | | | | | | | | Instead of testing specially next_cpu in host_alarm_handler, just do that in qemu_notify_event. The idea is, if we are not running (or not yet running) target CPU code, prepare things so that the execution loop is exited asap; just make that clear. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* do not use qemu_event_increment outside qemu_notify_eventPaolo Bonzini2010-03-171-1/+2
| | | | | | | | | | | | | | | qemu_notify_event in the non-iothread case is only stopping the current CPU. However, if the CPU is idle and the main loop is in the select call then a call to qemu_event_increment is needed too (as done in host_alarm_handler). Since in general one doesn't know whether the CPU is executing or not, it is a safe bet to always do qemu_event_increment. Another way to see it: after this patch qemu_event_increment is the "common part" of qemu_notify_event for both the CONFIG_IOTHREAD and !CONFIG_IOTHREAD cases, which makes sense. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* more alarm timer cleanupPaolo Bonzini2010-03-171-11/+18
| | | | | | | | | | | | | The timer_alarm_pending variable is related to the alarm timer but not placed in the struct. Also, in qemu_mod_timer the wrong flag was being tested: the timer is rearmed in the alarm timer "bottom half", so the right flag to test there is the "pending" flag. Finally, I hoisted the NULL checks from alarm_has_dynticks to host_alarm_handler. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* only one flag is needed for alarm_timerPaolo Bonzini2010-03-171-16/+15
| | | | | | | | The ALARM_FLAG_DYNTICKS can be testing simply by checking if there is a rearm function. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* fix error in win32_rearm_timerPaolo Bonzini2010-03-171-1/+1
| | | | | | | | The TIME_ONESHOT and TIME_PERIODIC flags are mutually exclusive. The code after the patch matches the flags used in win32_start_timer. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* avoid dubiously clever code in win32_start_timerPaolo Bonzini2010-03-171-4/+2
| | | | | | | | | | | The code is initializing an unsigned int to UINT_MAX using "-1", so that the following always-true comparison seems to be always-false at a first look. Since alarm timer initializations are never nested, it is simpler to unconditionally store the result of timeGetDevCaps into data->period. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Merge remote branch 'markus/qerror' into stagingAnthony Liguori2010-03-171-19/+25
|\
| * qemu-option: Move the implied first name into QemuOptsListMarkus Armbruster2010-03-161-6/+6
| | | | | | | | | | | | | | | | | | | | | | We sometimes permit omitting the first option name, for example -device foo is short for -device driver=foo. The name to use ("driver" in the example) is passed as argument to qemu_opts_parse(). For each QemuOptsList, we use at most one such name. Move the name into QemuOptsList, and pass whether to permit the abbreviation. This ensures continued consistency, and simplifies the commit after next in this series.
| * error: Track locations on command lineMarkus Armbruster2010-03-161-4/+5
| | | | | | | | | | | | | | New LOC_CMDLINE. Use it for tracking option with argument in lookup_opt(). We now report errors like this qemu: -device smbus-eeprom: Did not find I2C bus for smbus-eeprom
| * error: Track locations in configuration filesMarkus Armbruster2010-03-161-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New LOC_FILE. Use it for tracking file name and line number in qemu_config_parse(). We now report errors like qemu:foo.conf:42: Did not find I2C bus for smbus-eeprom In particular, gems like this message: -device: no driver specified become almost nice now: qemu:foo.conf:44: -device: no driver specified (A later commit will get rid of the bogus -device:)
| * error: Include the program name in error messages to stderrMarkus Armbruster2010-03-161-0/+2
| |
| * error: Replace qemu_error() by error_report()Markus Armbruster2010-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | error_report() terminates the message with a newline. Strip it it from its arguments. This fixes a few error messages lacking a newline: net_handle_fd_param()'s "No file descriptor named %s found", and tap_open()'s "vnet_hdr=1 requested, but no kernel support for IFF_VNET_HDR available" (all three versions). There's one place that passes arguments without newlines intentionally: load_vmstate(). Fix it up.
| * error: Simplify error sink setupMarkus Armbruster2010-03-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | qemu_error_sink can either point to a monitor or a file. In practice, it always points to the current monitor if we have one, else to stderr. Simply route errors to the current monitor or else to stderr, and remove qemu_error_sink along with the functions to control it. Actually, the old code switches the sink slightly later, in handle_user_command() and handle_qmp_command(), than it gets switched now, implicitly, by setting the current monitor in monitor_read() and monitor_control_read(). Likewise, it switches back slightly earlier (same places). Doesn't make a difference, because there are no calls of qemu_error() in between.
| * savevm: Fix -loadvm to report errors to stderr, not the monitorMarkus Armbruster2010-03-161-1/+1
| | | | | | | | | | | | | | A monitor may not even exist. Change load_vmstate() to use qemu_error() instead of monitor_printf(). Parameter mon is now unused, remove it.
* | Don't set default monitor when there is a mux'ed oneJan Kiszka2010-03-141-0/+9
|/ | | | | | | This fixes eg. "-nographic -serial mon:stdio [-serial ...]". Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* QMP: Really move the RESET event to qemu_system_reset()Luiz Capitulino2010-03-101-2/+1
| | | | | | | | | | | | | | Something bad has happened in the merge of commit 0ee44250, as the log message says it's supposed to be in qemu_system_reset() but it is do_vm_stop(). Possibly, it was a problem with the conflict resolution with ea375f9a (which has been merged first). This commit moves (again) the RESET event into qemu_system_reset(). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* QMP: Introduce RTC_CHANGE eventLuiz Capitulino2010-03-081-0/+9
| | | | | | | Emitted whenever the RTC time changes. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
OpenPOWER on IntegriCloud