VirtualBox

source: vbox/trunk/include/VBox/bios.h

Last change on this file was 100456, checked in by vboxsync, 10 months ago

BIOS: Added a way for the APM BIOS to halt the virtual CPU through port I/O instead of HLT to solve problems with obstinate guests (see bugref:6549).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1/** @file
2 * X86 (and AMD64) Local APIC registers (VMM,++).
3 *
4 * bios.mac is generated from this file by running 'kmk -f Maintenance.kmk incs'.
5 */
6
7/*
8 * Copyright (C) 2017-2023 Oracle and/or its affiliates.
9 *
10 * This file is part of VirtualBox base platform packages, as
11 * available from https://www.virtualbox.org.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation, in version 3 of the
16 * License.
17 *
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, see <https://www.gnu.org/licenses>.
25 *
26 * The contents of this file may alternatively be used under the terms
27 * of the Common Development and Distribution License Version 1.0
28 * (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
29 * in the VirtualBox distribution, in which case the provisions of the
30 * CDDL are applicable instead of those of the GPL.
31 *
32 * You may elect to license modified versions of this file under the
33 * terms and conditions of either the GPL or the CDDL or both.
34 *
35 * SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
36 */
37
38#ifndef VBOX_INCLUDED_bios_h
39#define VBOX_INCLUDED_bios_h
40#ifndef RT_WITHOUT_PRAGMA_ONCE
41# pragma once
42#endif
43
44/** The BIOS control port.
45 * Write "Shutdown" byte by byte to shutdown the VM.
46 * Write "Bootfail" to indicate no bootable device.
47 * Write "Prochalt" to execute alternative CPU halt.
48 * @sa VBOX_BIOS_OLD_SHUTDOWN_PORT */
49#define VBOX_BIOS_SHUTDOWN_PORT 0x040f
50
51/** Write this value to shut down VM. */
52#define VBOX_BIOS_CTL_SHUTDOWN 0x8001
53/** Write this value to report boot failure. */
54#define VBOX_BIOS_CTL_BOOTFAIL 0x8002
55/** Write this value to halt CPU. */
56#define VBOX_BIOS_CTL_PROCHALT 0x8003
57
58/** The old shutdown port number.
59 * Older versions of VirtualBox uses this as does Bochs.
60 * @sa VBOX_BIOS_CONTROL_PORT */
61#define VBOX_BIOS_OLD_SHUTDOWN_PORT 0x8900
62
63
64#endif /* !VBOX_INCLUDED_bios_h */
65
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use