2025-03-18 00:29:11 -07:00
|
|
|
export const
|
2013-11-06 01:12:55 +01:00
|
|
|
/** @const */ LOG_ALL = -1,
|
|
|
|
|
/** @const */ LOG_NONE = 0,
|
|
|
|
|
|
2024-07-24 07:22:53 -07:00
|
|
|
/** @const */ LOG_OTHER = 0x0000001,
|
|
|
|
|
/** @const */ LOG_CPU = 0x0000002,
|
|
|
|
|
/** @const */ LOG_FPU = 0x0000004,
|
|
|
|
|
/** @const */ LOG_MEM = 0x0000008,
|
|
|
|
|
/** @const */ LOG_DMA = 0x0000010,
|
|
|
|
|
/** @const */ LOG_IO = 0x0000020,
|
|
|
|
|
/** @const */ LOG_PS2 = 0x0000040,
|
|
|
|
|
/** @const */ LOG_PIC = 0x0000080,
|
|
|
|
|
/** @const */ LOG_VGA = 0x0000100,
|
|
|
|
|
/** @const */ LOG_PIT = 0x0000200,
|
|
|
|
|
/** @const */ LOG_MOUSE = 0x0000400,
|
|
|
|
|
/** @const */ LOG_PCI = 0x0000800,
|
|
|
|
|
/** @const */ LOG_BIOS = 0x0001000,
|
|
|
|
|
/** @const */ LOG_FLOPPY = 0x0002000,
|
|
|
|
|
/** @const */ LOG_SERIAL = 0x0004000,
|
|
|
|
|
/** @const */ LOG_DISK = 0x0008000,
|
|
|
|
|
/** @const */ LOG_RTC = 0x0010000,
|
|
|
|
|
// unused 0x0020000,
|
|
|
|
|
/** @const */ LOG_ACPI = 0x0040000,
|
|
|
|
|
/** @const */ LOG_APIC = 0x0080000,
|
|
|
|
|
/** @const */ LOG_NET = 0x0100000,
|
|
|
|
|
/** @const */ LOG_VIRTIO = 0x0200000,
|
|
|
|
|
/** @const */ LOG_9P = 0x0400000,
|
|
|
|
|
/** @const */ LOG_SB16 = 0x0800000,
|
|
|
|
|
/** @const */ LOG_FETCH = 0x1000000;
|
2013-11-06 01:12:55 +01:00
|
|
|
|
|
|
|
|
|
2015-12-31 00:31:08 +01:00
|
|
|
/**
|
|
|
|
|
* @const
|
|
|
|
|
* @type {Array<Array<string|number>>}
|
|
|
|
|
*/
|
2025-03-18 00:29:11 -07:00
|
|
|
export const LOG_NAMES = [
|
2014-12-21 21:32:18 +01:00
|
|
|
[1, ""],
|
|
|
|
|
[LOG_CPU, "CPU"],
|
|
|
|
|
[LOG_DISK, "DISK"],
|
|
|
|
|
[LOG_FPU, "FPU"],
|
|
|
|
|
[LOG_MEM, "MEM"],
|
|
|
|
|
[LOG_DMA, "DMA"],
|
|
|
|
|
[LOG_IO, "IO"],
|
|
|
|
|
[LOG_PS2, "PS2"],
|
|
|
|
|
[LOG_PIC, "PIC"],
|
|
|
|
|
[LOG_VGA, "VGA"],
|
|
|
|
|
[LOG_PIT, "PIT"],
|
|
|
|
|
[LOG_MOUSE, "MOUS"],
|
|
|
|
|
[LOG_PCI, "PCI"],
|
|
|
|
|
[LOG_BIOS, "BIOS"],
|
2016-11-21 19:59:48 +01:00
|
|
|
[LOG_FLOPPY, "FLOP"],
|
2014-12-21 21:32:18 +01:00
|
|
|
[LOG_SERIAL, "SERI"],
|
|
|
|
|
[LOG_RTC, "RTC"],
|
|
|
|
|
[LOG_ACPI, "ACPI"],
|
|
|
|
|
[LOG_APIC, "APIC"],
|
|
|
|
|
[LOG_NET, "NET"],
|
|
|
|
|
[LOG_VIRTIO, "VIO"],
|
2014-12-21 22:05:23 +01:00
|
|
|
[LOG_9P, "9P"],
|
2024-07-24 07:22:53 -07:00
|
|
|
[LOG_SB16, "SB16"],
|
|
|
|
|
[LOG_FETCH, "FETC"],
|
2014-12-21 21:32:18 +01:00
|
|
|
];
|
|
|
|
|
|
2025-03-18 00:29:11 -07:00
|
|
|
export const
|
2013-11-06 01:12:55 +01:00
|
|
|
|
|
|
|
|
// flags register bitflags
|
2021-03-30 21:20:49 -05:00
|
|
|
/** @const */ FLAG_CARRY = 1,
|
|
|
|
|
/** @const */ FLAG_PARITY = 4,
|
|
|
|
|
/** @const */ FLAG_ADJUST = 16,
|
|
|
|
|
/** @const */ FLAG_ZERO = 64,
|
|
|
|
|
/** @const */ FLAG_SIGN = 128,
|
|
|
|
|
/** @const */ FLAG_TRAP = 256,
|
|
|
|
|
/** @const */ FLAG_INTERRUPT = 512,
|
|
|
|
|
/** @const */ FLAG_DIRECTION = 1024,
|
|
|
|
|
/** @const */ FLAG_OVERFLOW = 2048,
|
|
|
|
|
/** @const */ FLAG_IOPL = 1 << 12 | 1 << 13,
|
|
|
|
|
/** @const */ FLAG_NT = 1 << 14,
|
|
|
|
|
/** @const */ FLAG_RF = 1 << 16,
|
|
|
|
|
/** @const */ FLAG_VM = 1 << 17,
|
|
|
|
|
/** @const */ FLAG_AC = 1 << 18,
|
|
|
|
|
/** @const */ FLAG_VIF = 1 << 19,
|
|
|
|
|
/** @const */ FLAG_VIP = 1 << 20,
|
|
|
|
|
/** @const */ FLAG_ID = 1 << 21,
|
2013-11-06 01:12:55 +01:00
|
|
|
|
2015-09-16 03:25:09 +02:00
|
|
|
/**
|
2013-12-01 23:22:09 +01:00
|
|
|
* default values of reserved flags bits
|
2013-11-06 01:12:55 +01:00
|
|
|
* @const
|
|
|
|
|
*/
|
2021-03-30 21:20:49 -05:00
|
|
|
FLAGS_DEFAULT = 1 << 1,
|
2013-11-06 01:12:55 +01:00
|
|
|
|
|
|
|
|
|
2021-03-30 21:20:49 -05:00
|
|
|
/** @const */ REG_EAX = 0,
|
|
|
|
|
/** @const */ REG_ECX = 1,
|
|
|
|
|
/** @const */ REG_EDX = 2,
|
|
|
|
|
/** @const */ REG_EBX = 3,
|
|
|
|
|
/** @const */ REG_ESP = 4,
|
|
|
|
|
/** @const */ REG_EBP = 5,
|
|
|
|
|
/** @const */ REG_ESI = 6,
|
|
|
|
|
/** @const */ REG_EDI = 7,
|
2013-11-06 01:12:55 +01:00
|
|
|
|
2021-03-30 21:20:49 -05:00
|
|
|
/** @const */ REG_ES = 0,
|
|
|
|
|
/** @const */ REG_CS = 1,
|
|
|
|
|
/** @const */ REG_SS = 2,
|
|
|
|
|
/** @const */ REG_DS = 3,
|
|
|
|
|
/** @const */ REG_FS = 4,
|
|
|
|
|
/** @const */ REG_GS = 5,
|
2014-07-07 02:37:40 +02:00
|
|
|
|
2021-03-30 21:20:49 -05:00
|
|
|
/** @const */ REG_LDTR = 7; // local descriptor table register
|
2013-11-06 01:12:55 +01:00
|
|
|
|
2025-03-18 00:29:11 -07:00
|
|
|
export const
|
2015-09-16 03:25:09 +02:00
|
|
|
/**
|
2013-12-20 22:05:49 +01:00
|
|
|
* The minimum number of bytes that can be memory-mapped
|
2015-09-16 03:25:09 +02:00
|
|
|
* by one device.
|
2013-12-20 22:05:49 +01:00
|
|
|
*
|
2015-09-16 03:25:09 +02:00
|
|
|
* @const
|
|
|
|
|
*/
|
2015-04-12 19:50:50 +02:00
|
|
|
MMAP_BLOCK_BITS = 17,
|
2013-12-20 22:05:49 +01:00
|
|
|
/** @const */
|
2024-01-21 17:40:13 -08:00
|
|
|
MMAP_BLOCK_SIZE = 1 << MMAP_BLOCK_BITS,
|
|
|
|
|
/** @const */
|
|
|
|
|
MMAP_MAX = 0x100000000;
|
2013-12-20 22:05:49 +01:00
|
|
|
|
2015-12-30 18:50:57 +01:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const CR0_PG = 1 << 31;
|
2022-01-14 14:21:55 -06:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const CR4_PAE = 1 << 5;
|
2015-09-14 23:57:05 +02:00
|
|
|
|
|
|
|
|
|
2018-10-05 16:43:44 -03:00
|
|
|
// https://github.com/qemu/seabios/blob/14221cd86eadba82255fdc55ed174d401c7a0a04/src/fw/paravirt.c#L205-L219
|
|
|
|
|
|
2025-03-18 00:29:11 -07:00
|
|
|
/** @const */ export const FW_CFG_SIGNATURE = 0x00;
|
|
|
|
|
/** @const */ export const FW_CFG_ID = 0x01;
|
|
|
|
|
/** @const */ export const FW_CFG_RAM_SIZE = 0x03;
|
|
|
|
|
/** @const */ export const FW_CFG_NB_CPUS = 0x05;
|
|
|
|
|
/** @const */ export const FW_CFG_MAX_CPUS = 0x0F;
|
|
|
|
|
/** @const */ export const FW_CFG_NUMA = 0x0D;
|
|
|
|
|
/** @const */ export const FW_CFG_FILE_DIR = 0x19;
|
2017-03-23 13:03:12 -05:00
|
|
|
|
2025-03-18 00:29:11 -07:00
|
|
|
/** @const */ export const FW_CFG_CUSTOM_START = 0x8000;
|
2018-10-05 16:43:44 -03:00
|
|
|
// This value is specific to v86, choosen to hopefully not collide with other indexes
|
2025-03-18 00:29:11 -07:00
|
|
|
/** @const */ export const FW_CFG_FILE_START = 0xC000;
|
2017-03-23 13:03:12 -05:00
|
|
|
|
2025-03-18 00:29:11 -07:00
|
|
|
/** @const */ export const FW_CFG_SIGNATURE_QEMU = 0x554D4551;
|
2017-03-06 19:03:06 -05:00
|
|
|
|
2017-06-22 12:23:35 -05:00
|
|
|
|
2018-11-20 16:28:55 -06:00
|
|
|
// See same constant in jit.rs
|
2017-06-22 12:23:35 -05:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const WASM_TABLE_SIZE = 900;
|
2017-06-22 12:23:35 -05:00
|
|
|
|
|
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const WASM_TABLE_OFFSET = 1024;
|
2018-03-18 10:09:45 +13:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_CHANNEL_LEFT = 0;
|
2018-03-18 10:09:45 +13:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_CHANNEL_RIGHT = 1;
|
2018-03-18 10:09:45 +13:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_CHANNEL_BOTH = 2;
|
2018-03-18 10:09:45 +13:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_SRC_MASTER = 0;
|
2018-03-18 10:09:45 +13:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_SRC_PCSPEAKER = 1;
|
2018-03-18 10:09:45 +13:00
|
|
|
/** @const */
|
2025-03-18 00:29:11 -07:00
|
|
|
export const MIXER_SRC_DAC = 2;
|