const.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. "use strict";
  2. var
  3. /** @const */ LOG_ALL = -1,
  4. /** @const */ LOG_NONE = 0,
  5. /** @const */ LOG_OTHER = 0x000001,
  6. /** @const */ LOG_CPU = 0x000002,
  7. /** @const */ LOG_FPU = 0x000004,
  8. /** @const */ LOG_MEM = 0x000008,
  9. /** @const */ LOG_DMA = 0x000010,
  10. /** @const */ LOG_IO = 0x000020,
  11. /** @const */ LOG_PS2 = 0x000040,
  12. /** @const */ LOG_PIC = 0x000080,
  13. /** @const */ LOG_VGA = 0x000100,
  14. /** @const */ LOG_PIT = 0x000200,
  15. /** @const */ LOG_MOUSE = 0x000400,
  16. /** @const */ LOG_PCI = 0x000800,
  17. /** @const */ LOG_BIOS = 0x001000,
  18. /** @const */ LOG_FLOPPY = 0x002000,
  19. /** @const */ LOG_SERIAL = 0x004000,
  20. /** @const */ LOG_DISK = 0x008000,
  21. /** @const */ LOG_RTC = 0x010000,
  22. // unused 0x020000,
  23. /** @const */ LOG_ACPI = 0x040000,
  24. /** @const */ LOG_APIC = 0x080000,
  25. /** @const */ LOG_NET = 0x100000,
  26. /** @const */ LOG_VIRTIO = 0x200000,
  27. /** @const */ LOG_9P = 0x400000,
  28. /** @const */ LOG_SB16 = 0x800000;
  29. /**
  30. * @const
  31. * @type {Array<Array<string|number>>}
  32. */
  33. var LOG_NAMES = [
  34. [1, ""],
  35. [LOG_CPU, "CPU"],
  36. [LOG_DISK, "DISK"],
  37. [LOG_FPU, "FPU"],
  38. [LOG_MEM, "MEM"],
  39. [LOG_DMA, "DMA"],
  40. [LOG_IO, "IO"],
  41. [LOG_PS2, "PS2"],
  42. [LOG_PIC, "PIC"],
  43. [LOG_VGA, "VGA"],
  44. [LOG_PIT, "PIT"],
  45. [LOG_MOUSE, "MOUS"],
  46. [LOG_PCI, "PCI"],
  47. [LOG_BIOS, "BIOS"],
  48. [LOG_FLOPPY, "FLOP"],
  49. [LOG_SERIAL, "SERI"],
  50. [LOG_RTC, "RTC"],
  51. [LOG_ACPI, "ACPI"],
  52. [LOG_APIC, "APIC"],
  53. [LOG_NET, "NET"],
  54. [LOG_VIRTIO, "VIO"],
  55. [LOG_9P, "9P"],
  56. [LOG_SB16, "SB16"]
  57. ];
  58. var
  59. // flags register bitflags
  60. /** @const */ FLAG_CARRY = 1,
  61. /** @const */ FLAG_PARITY = 4,
  62. /** @const */ FLAG_ADJUST = 16,
  63. /** @const */ FLAG_ZERO = 64,
  64. /** @const */ FLAG_SIGN = 128,
  65. /** @const */ FLAG_TRAP = 256,
  66. /** @const */ FLAG_INTERRUPT = 512,
  67. /** @const */ FLAG_DIRECTION = 1024,
  68. /** @const */ FLAG_OVERFLOW = 2048,
  69. /** @const */ FLAG_IOPL = 1 << 12 | 1 << 13,
  70. /** @const */ FLAG_NT = 1 << 14,
  71. /** @const */ FLAG_RF = 1 << 16,
  72. /** @const */ FLAG_VM = 1 << 17,
  73. /** @const */ FLAG_AC = 1 << 18,
  74. /** @const */ FLAG_VIF = 1 << 19,
  75. /** @const */ FLAG_VIP = 1 << 20,
  76. /** @const */ FLAG_ID = 1 << 21,
  77. /**
  78. * default values of reserved flags bits
  79. * @const
  80. */
  81. FLAGS_DEFAULT = 1 << 1,
  82. /** @const */ REG_EAX = 0,
  83. /** @const */ REG_ECX = 1,
  84. /** @const */ REG_EDX = 2,
  85. /** @const */ REG_EBX = 3,
  86. /** @const */ REG_ESP = 4,
  87. /** @const */ REG_EBP = 5,
  88. /** @const */ REG_ESI = 6,
  89. /** @const */ REG_EDI = 7,
  90. /** @const */ REG_ES = 0,
  91. /** @const */ REG_CS = 1,
  92. /** @const */ REG_SS = 2,
  93. /** @const */ REG_DS = 3,
  94. /** @const */ REG_FS = 4,
  95. /** @const */ REG_GS = 5,
  96. /** @const */ REG_LDTR = 7; // local descriptor table register
  97. var
  98. /**
  99. * The minimum number of bytes that can be memory-mapped
  100. * by one device.
  101. *
  102. * @const
  103. */
  104. MMAP_BLOCK_BITS = 17,
  105. /** @const */
  106. MMAP_BLOCK_SIZE = 1 << MMAP_BLOCK_BITS,
  107. /** @const */
  108. MMAP_MAX = 0x100000000;
  109. /** @const */
  110. var CR0_PG = 1 << 31;
  111. /** @const */
  112. var CR4_PAE = 1 << 5;
  113. // https://github.com/qemu/seabios/blob/14221cd86eadba82255fdc55ed174d401c7a0a04/src/fw/paravirt.c#L205-L219
  114. /** @const */ var FW_CFG_SIGNATURE = 0x00;
  115. /** @const */ var FW_CFG_ID = 0x01;
  116. /** @const */ var FW_CFG_RAM_SIZE = 0x03;
  117. /** @const */ var FW_CFG_NB_CPUS = 0x05;
  118. /** @const */ var FW_CFG_MAX_CPUS = 0x0F;
  119. /** @const */ var FW_CFG_NUMA = 0x0D;
  120. /** @const */ var FW_CFG_FILE_DIR = 0x19;
  121. /** @const */ var FW_CFG_CUSTOM_START = 0x8000;
  122. // This value is specific to v86, choosen to hopefully not collide with other indexes
  123. /** @const */ var FW_CFG_FILE_START = 0xC000;
  124. /** @const */ var FW_CFG_SIGNATURE_QEMU = 0x554D4551;
  125. // See same constant in jit.rs
  126. /** @const */
  127. var WASM_TABLE_SIZE = 900;
  128. /** @const */
  129. var WASM_TABLE_OFFSET = 1024;
  130. /** @const */
  131. var MIXER_CHANNEL_LEFT = 0;
  132. /** @const */
  133. var MIXER_CHANNEL_RIGHT = 1;
  134. /** @const */
  135. var MIXER_CHANNEL_BOTH = 2;
  136. /** @const */
  137. var MIXER_SRC_MASTER = 0;
  138. /** @const */
  139. var MIXER_SRC_PCSPEAKER = 1;
  140. /** @const */
  141. var MIXER_SRC_DAC = 2;