tools/tests: small end-to-end test suite for importing/pruning
As bigger changes lie ahead, we want a small end-to-end test suite that ensures that our importing and tracing does not fall apart. With this change, we add the infrastructure and two test-cases (fib, qsort) including ELFs, traces, and injection results. In order to run the basic-pruner test cases, one needs to setup a MySQL table and set the CMake option ENABLE_DATABASE_TESTS.
This commit is contained in:
committed by
Horst Schirmeier
parent
df44da9f33
commit
f92b930acb
@ -13,16 +13,21 @@ option(BUILD_DATA_AGGREGATOR "Build the data aggregation tools?" OFF)
|
|||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../src/core)
|
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../src/core)
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../src/core)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../src/core)
|
||||||
|
|
||||||
|
set(TEST_DRIVER_ARGS )
|
||||||
|
|
||||||
if(BUILD_IMPORT_TRACE)
|
if(BUILD_IMPORT_TRACE)
|
||||||
add_subdirectory(import-trace)
|
add_subdirectory(import-trace)
|
||||||
|
set(TEST_DRIVER_ARGS ${TEST_DRIVER_ARGS} --import-trace $<TARGET_FILE:import-trace>)
|
||||||
endif(BUILD_IMPORT_TRACE)
|
endif(BUILD_IMPORT_TRACE)
|
||||||
|
|
||||||
if(BUILD_PRUNE_TRACE)
|
if(BUILD_PRUNE_TRACE)
|
||||||
add_subdirectory(prune-trace)
|
add_subdirectory(prune-trace)
|
||||||
|
set(TEST_DRIVER_ARGS ${TEST_DRIVER_ARGS} --prune-trace $<TARGET_FILE:prune-trace>)
|
||||||
endif(BUILD_PRUNE_TRACE)
|
endif(BUILD_PRUNE_TRACE)
|
||||||
|
|
||||||
if(BUILD_DUMP_TRACE)
|
if(BUILD_DUMP_TRACE)
|
||||||
add_subdirectory(dump-trace)
|
add_subdirectory(dump-trace)
|
||||||
|
set(TEST_DRIVER_ARGS ${TEST_DRIVER_ARGS} --dump-trace $<TARGET_FILE:dump-trace>)
|
||||||
endif(BUILD_DUMP_TRACE)
|
endif(BUILD_DUMP_TRACE)
|
||||||
|
|
||||||
if(BUILD_CONVERT_TRACE)
|
if(BUILD_CONVERT_TRACE)
|
||||||
@ -44,3 +49,5 @@ endif(BUILD_FAULTSPACEPLOT)
|
|||||||
if(BUILD_DATA_AGGREGATOR)
|
if(BUILD_DATA_AGGREGATOR)
|
||||||
add_subdirectory(analysis/data-aggregator)
|
add_subdirectory(analysis/data-aggregator)
|
||||||
endif(BUILD_DATA_AGGREGATOR)
|
endif(BUILD_DATA_AGGREGATOR)
|
||||||
|
|
||||||
|
add_subdirectory(tests)
|
||||||
|
|||||||
35
tools/tests/CMakeLists.txt
Normal file
35
tools/tests/CMakeLists.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
option(ENABLE_DATABASE_TESTS "Perform tests that require a MySQL Database?" OFF)
|
||||||
|
|
||||||
|
# CREATE DATABASE fail_test;
|
||||||
|
# GRANT ALL ON fail_test.* TO 'fail_test'@'localhost' IDENTIFIED BY 'fail_test' WITH GRANT OPTION;
|
||||||
|
set(TEST_MYSQL_HOST "localhost" CACHE STRING "")
|
||||||
|
set(TEST_MYSQL_USER "fail_test" CACHE STRING "")
|
||||||
|
set(TEST_MYSQL_PASSWORD "fail_test" CACHE STRING "")
|
||||||
|
set(TEST_MYSQL_DATABASE "fail_test" CACHE STRING "")
|
||||||
|
set(TEST_MYSQL_PORT "3306" CACHE STRING "")
|
||||||
|
|
||||||
|
if(ENABLE_DATABASE_TESTS)
|
||||||
|
|
||||||
|
configure_file("my.cnf.in" "my.cnf")
|
||||||
|
set(TEST_DRIVER_ARGS ${TEST_DRIVER_ARGS} --my-cnf ${CMAKE_CURRENT_BINARY_DIR}/my.cnf)
|
||||||
|
|
||||||
|
foreach(BENCHMARK fib qsort)
|
||||||
|
add_test(
|
||||||
|
NAME dump-trace-${BENCHMARK}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
COMMAND ./run ${TEST_DRIVER_ARGS} dump-trace ${BENCHMARK}
|
||||||
|
)
|
||||||
|
set_tests_properties(dump-trace-${BENCHMARK} PROPERTIES SKIP_RETURN_CODE 127)
|
||||||
|
|
||||||
|
|
||||||
|
add_test(
|
||||||
|
NAME basic-pruner-${BENCHMARK}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
COMMAND ./run ${TEST_DRIVER_ARGS} basic-pruner ${BENCHMARK}
|
||||||
|
)
|
||||||
|
set_tests_properties(basic-pruner-${BENCHMARK} PROPERTIES SKIP_RETURN_CODE 127)
|
||||||
|
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
endif()
|
||||||
58
tools/tests/export-injection
Executable file
58
tools/tests/export-injection
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("variant_id")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
SELECT = f"""select t.instr1, t.instr2, (t.time2-t.time1+1), t.data_address, r.bitoffset, r.resulttype
|
||||||
|
from trace t
|
||||||
|
join variant v
|
||||||
|
on t.variant_id = v.id
|
||||||
|
join fspgroup g
|
||||||
|
on t.variant_id = g.variant_id
|
||||||
|
and t.instr2 = g.instr2
|
||||||
|
and t.data_address = g.data_address
|
||||||
|
join fsppilot p
|
||||||
|
on t.variant_id = p.variant_id
|
||||||
|
and g.fspmethod_id = p.fspmethod_id
|
||||||
|
and g.pilot_id = p.id
|
||||||
|
left outer join result_GenericExperimentMessage r
|
||||||
|
on r.pilot_id = p.id
|
||||||
|
where t.variant_id={args.variant_id}
|
||||||
|
and g.fspmethod_id = (select id from fspmethod where method = "basic")
|
||||||
|
;"""
|
||||||
|
|
||||||
|
proc = subprocess.Popen(["mysql", "-N"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, encoding="utf-8")
|
||||||
|
|
||||||
|
proc.stdin.write(SELECT)
|
||||||
|
proc.stdin.close()
|
||||||
|
classes = set()
|
||||||
|
insert = []
|
||||||
|
for line in proc.stdout.readlines():
|
||||||
|
index,resulttype = line.strip().rsplit("\t",1)
|
||||||
|
index = index.replace("\t", ",")
|
||||||
|
classes.add(resulttype)
|
||||||
|
|
||||||
|
insert.append(f"({index}, '{resulttype}')")
|
||||||
|
|
||||||
|
classes = ",".join([repr(x) for x in classes])
|
||||||
|
|
||||||
|
print("DROP TABLE IF EXISTS injection;")
|
||||||
|
print(f"""CREATE TABLE injection (
|
||||||
|
`instr1` int(10) unsigned NOT NULL,
|
||||||
|
`instr2` int(10) unsigned NOT NULL,
|
||||||
|
`duration` int(10) unsigned NOT NULL,
|
||||||
|
`data_address` int(10) unsigned NOT NULL,
|
||||||
|
`bitoffset` int(10) unsigned NOT NULL,
|
||||||
|
`resulttype` enum({classes}) NOT NULL,
|
||||||
|
PRIMARY KEY (`data_address`,`instr2`,`bitoffset`)
|
||||||
|
);
|
||||||
|
""")
|
||||||
|
|
||||||
|
print("INSERT INTO injection VALUES")
|
||||||
|
print(",".join(insert))
|
||||||
|
print(";")
|
||||||
7
tools/tests/fib/grub/boot/grub/grub.cfg
Normal file
7
tools/tests/fib/grub/boot/grub/grub.cfg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
set timeout=0
|
||||||
|
set default=0
|
||||||
|
|
||||||
|
menuentry "CoRedOS" {
|
||||||
|
multiboot /boot/system.elf
|
||||||
|
boot
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/grub/boot/system.elf
Executable file
BIN
tools/tests/fib/grub/boot/system.elf
Executable file
Binary file not shown.
14
tools/tests/fib/injection.sql
Normal file
14
tools/tests/fib/injection.sql
Normal file
File diff suppressed because one or more lines are too long
192577
tools/tests/fib/results.tsv
Normal file
192577
tools/tests/fib/results.tsv
Normal file
File diff suppressed because it is too large
Load Diff
133
tools/tests/fib/state/cmos
Normal file
133
tools/tests/fib/state/cmos
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
cmos = {
|
||||||
|
mem_address = 0x5d
|
||||||
|
ram = {
|
||||||
|
0x00 = 0x15
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x07
|
||||||
|
0x07 = 0x01
|
||||||
|
0x08 = 0x01
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x26
|
||||||
|
0x0b = 0x02
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x80
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
0x10 = 0x00
|
||||||
|
0x11 = 0x00
|
||||||
|
0x12 = 0x00
|
||||||
|
0x13 = 0x00
|
||||||
|
0x14 = 0x06
|
||||||
|
0x15 = 0x80
|
||||||
|
0x16 = 0x02
|
||||||
|
0x17 = 0x00
|
||||||
|
0x18 = 0x3c
|
||||||
|
0x19 = 0x00
|
||||||
|
0x1a = 0x00
|
||||||
|
0x1b = 0x00
|
||||||
|
0x1c = 0x00
|
||||||
|
0x1d = 0x00
|
||||||
|
0x1e = 0x00
|
||||||
|
0x1f = 0x00
|
||||||
|
0x20 = 0x00
|
||||||
|
0x21 = 0x00
|
||||||
|
0x22 = 0x00
|
||||||
|
0x23 = 0x00
|
||||||
|
0x24 = 0x00
|
||||||
|
0x25 = 0x00
|
||||||
|
0x26 = 0x00
|
||||||
|
0x27 = 0x00
|
||||||
|
0x28 = 0x00
|
||||||
|
0x29 = 0x00
|
||||||
|
0x2a = 0x00
|
||||||
|
0x2b = 0x00
|
||||||
|
0x2c = 0x00
|
||||||
|
0x2d = 0x00
|
||||||
|
0x2e = 0x00
|
||||||
|
0x2f = 0xc4
|
||||||
|
0x30 = 0x00
|
||||||
|
0x31 = 0x3c
|
||||||
|
0x32 = 0x20
|
||||||
|
0x33 = 0x00
|
||||||
|
0x34 = 0x00
|
||||||
|
0x35 = 0x00
|
||||||
|
0x36 = 0x00
|
||||||
|
0x37 = 0x20
|
||||||
|
0x38 = 0x00
|
||||||
|
0x39 = 0x00
|
||||||
|
0x3a = 0x00
|
||||||
|
0x3b = 0x00
|
||||||
|
0x3c = 0x00
|
||||||
|
0x3d = 0x03
|
||||||
|
0x3e = 0x00
|
||||||
|
0x3f = 0x00
|
||||||
|
0x40 = 0x00
|
||||||
|
0x41 = 0x00
|
||||||
|
0x42 = 0x00
|
||||||
|
0x43 = 0x00
|
||||||
|
0x44 = 0x00
|
||||||
|
0x45 = 0x00
|
||||||
|
0x46 = 0x00
|
||||||
|
0x47 = 0x00
|
||||||
|
0x48 = 0x00
|
||||||
|
0x49 = 0x00
|
||||||
|
0x4a = 0x00
|
||||||
|
0x4b = 0x00
|
||||||
|
0x4c = 0x00
|
||||||
|
0x4d = 0x00
|
||||||
|
0x4e = 0x00
|
||||||
|
0x4f = 0x00
|
||||||
|
0x50 = 0x00
|
||||||
|
0x51 = 0x00
|
||||||
|
0x52 = 0x00
|
||||||
|
0x53 = 0x00
|
||||||
|
0x54 = 0x00
|
||||||
|
0x55 = 0x00
|
||||||
|
0x56 = 0x00
|
||||||
|
0x57 = 0x00
|
||||||
|
0x58 = 0x00
|
||||||
|
0x59 = 0x00
|
||||||
|
0x5a = 0x00
|
||||||
|
0x5b = 0x00
|
||||||
|
0x5c = 0x00
|
||||||
|
0x5d = 0x00
|
||||||
|
0x5e = 0x00
|
||||||
|
0x5f = 0x00
|
||||||
|
0x60 = 0x00
|
||||||
|
0x61 = 0x00
|
||||||
|
0x62 = 0x00
|
||||||
|
0x63 = 0x00
|
||||||
|
0x64 = 0x00
|
||||||
|
0x65 = 0x00
|
||||||
|
0x66 = 0x00
|
||||||
|
0x67 = 0x00
|
||||||
|
0x68 = 0x00
|
||||||
|
0x69 = 0x00
|
||||||
|
0x6a = 0x00
|
||||||
|
0x6b = 0x00
|
||||||
|
0x6c = 0x00
|
||||||
|
0x6d = 0x00
|
||||||
|
0x6e = 0x00
|
||||||
|
0x6f = 0x00
|
||||||
|
0x70 = 0x00
|
||||||
|
0x71 = 0x00
|
||||||
|
0x72 = 0x00
|
||||||
|
0x73 = 0x00
|
||||||
|
0x74 = 0x00
|
||||||
|
0x75 = 0x00
|
||||||
|
0x76 = 0x00
|
||||||
|
0x77 = 0x00
|
||||||
|
0x78 = 0x00
|
||||||
|
0x79 = 0x00
|
||||||
|
0x7a = 0x00
|
||||||
|
0x7b = 0x00
|
||||||
|
0x7c = 0x00
|
||||||
|
0x7d = 0x00
|
||||||
|
0x7e = 0x00
|
||||||
|
0x7f = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
57
tools/tests/fib/state/config
Normal file
57
tools/tests/fib/state/config
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# configuration file generated by Bochs
|
||||||
|
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, gameport=1, pci_ide=0, acpi=0, ioapic=1
|
||||||
|
config_interface: textconfig
|
||||||
|
display_library: nogui
|
||||||
|
memory: host=16, guest=16
|
||||||
|
romimage: file="BIOS-bochs-latest"
|
||||||
|
vgaromimage: file="vgabios.bin"
|
||||||
|
boot: cdrom
|
||||||
|
floppy_bootsig_check: disabled=0
|
||||||
|
# no floppya
|
||||||
|
# no floppyb
|
||||||
|
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
|
||||||
|
ata0-slave: type=cdrom, path="img/micro/fib/system.iso", status=inserted, biosdetect=auto, model="Generic 1234"
|
||||||
|
ata1: enabled=0
|
||||||
|
ata2: enabled=0
|
||||||
|
ata3: enabled=0
|
||||||
|
parport1: enabled=0
|
||||||
|
parport2: enabled=0
|
||||||
|
com1: enabled=1, mode=null, dev=""
|
||||||
|
com2: enabled=0
|
||||||
|
com3: enabled=0
|
||||||
|
com4: enabled=0
|
||||||
|
usb_uhci: enabled=0
|
||||||
|
usb_ohci: enabled=0
|
||||||
|
i440fxsupport: enabled=0
|
||||||
|
vga_update_interval: 300000
|
||||||
|
vga: extension=vbe
|
||||||
|
cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
|
||||||
|
cpuid: cpuid_limit_winnt=0, mmx=1, sse=sse4_2, xapic=1, sep=1, aes=1, xsave=1, movbe=1, 1g_pages=0, pcid=0 fsgsbase=0, mwait=1, mwait_is_nop=0
|
||||||
|
cpuid: stepping=3, vendor_string="GenuineIntel", brand_string=" Intel(R) Pentium(R) 4 CPU "
|
||||||
|
print_timestamps: enabled=0
|
||||||
|
# no gdb stub
|
||||||
|
port_e9_hack: enabled=0
|
||||||
|
text_snapshot_check: enabled=0
|
||||||
|
private_colormap: enabled=0
|
||||||
|
clock: sync=none, time0=946681200
|
||||||
|
# no cmosimage
|
||||||
|
ne2k: card=0, enabled=0
|
||||||
|
ne2k: card=1, enabled=0
|
||||||
|
ne2k: card=2, enabled=0
|
||||||
|
ne2k: card=3, enabled=0
|
||||||
|
pnic: enabled=0
|
||||||
|
sb16: enabled=0
|
||||||
|
# no loader
|
||||||
|
log: -
|
||||||
|
logprefix: %t%e%d
|
||||||
|
panic: action=report
|
||||||
|
error: action=report
|
||||||
|
info: action=ignore
|
||||||
|
debug: action=ignore
|
||||||
|
pass: action=ignore
|
||||||
|
keyboard_type: mf
|
||||||
|
keyboard_serial_delay: 250
|
||||||
|
keyboard_paste_delay: 100000
|
||||||
|
keyboard_mapping: enabled=0, map=
|
||||||
|
user_shortcut: keys=none
|
||||||
|
mouse: enabled=0, type=ps2, toggle=ctrl+mbutton
|
||||||
1154
tools/tests/fib/state/cpu0
Normal file
1154
tools/tests/fib/state/cpu0
Normal file
File diff suppressed because it is too large
Load Diff
144
tools/tests/fib/state/dma
Normal file
144
tools/tests/fib/state/dma
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
dma = {
|
||||||
|
0 = {
|
||||||
|
flip_flop = false
|
||||||
|
status_reg = 0x00
|
||||||
|
command_reg = 0x00
|
||||||
|
ctrl_disabled = false
|
||||||
|
0 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = false
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
flip_flop = false
|
||||||
|
status_reg = 0x00
|
||||||
|
command_reg = 0x00
|
||||||
|
ctrl_disabled = false
|
||||||
|
0 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = false
|
||||||
|
mode_type = 3
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ext_page = {
|
||||||
|
0x80 = 0x00
|
||||||
|
0x81 = 0x00
|
||||||
|
0x82 = 0x00
|
||||||
|
0x83 = 0x00
|
||||||
|
0x84 = 0x00
|
||||||
|
0x85 = 0x00
|
||||||
|
0x86 = 0x00
|
||||||
|
0x87 = 0x00
|
||||||
|
0x88 = 0x00
|
||||||
|
0x89 = 0x00
|
||||||
|
0x8a = 0x00
|
||||||
|
0x8b = 0x00
|
||||||
|
0x8c = 0x00
|
||||||
|
0x8d = 0x00
|
||||||
|
0x8e = 0x00
|
||||||
|
0x8f = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/state/drive0.buffer
Normal file
BIN
tools/tests/fib/state/drive0.buffer
Normal file
Binary file not shown.
87
tools/tests/fib/state/floppy
Normal file
87
tools/tests/fib/state/floppy
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
floppy = {
|
||||||
|
data_rate = 2
|
||||||
|
command = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x18
|
||||||
|
8 = 0x55
|
||||||
|
9 = 0xfa
|
||||||
|
}
|
||||||
|
command_index = 0
|
||||||
|
command_size = 0
|
||||||
|
command_complete = true
|
||||||
|
pending_command = 0xfe
|
||||||
|
multi_track = false
|
||||||
|
pending_irq = false
|
||||||
|
reset_sensei = 0
|
||||||
|
format_count = 170
|
||||||
|
format_fillbyte = 0x5c
|
||||||
|
result = {
|
||||||
|
0 = 0x6d
|
||||||
|
1 = 0xe2
|
||||||
|
2 = 0x7f
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x04
|
||||||
|
6 = 0x10
|
||||||
|
7 = 0x20
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
}
|
||||||
|
result_index = 0
|
||||||
|
result_size = 0
|
||||||
|
DOR = 0x00
|
||||||
|
TDR = 0x00
|
||||||
|
TC = false
|
||||||
|
main_status_reg = 0x00
|
||||||
|
status_reg0 = 0x00
|
||||||
|
status_reg1 = 0x00
|
||||||
|
status_reg2 = 0x00
|
||||||
|
status_reg3 = 0x00
|
||||||
|
floppy_buffer_index = 0
|
||||||
|
lock = false
|
||||||
|
SRT = 0x00
|
||||||
|
HUT = 0x00
|
||||||
|
HLT = 0x00
|
||||||
|
config = 0x00
|
||||||
|
pretrk = 0
|
||||||
|
perp_mode = 0
|
||||||
|
buffer = floppy.buffer
|
||||||
|
drive0 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive1 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive2 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive3 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/state/floppy.buffer
Normal file
BIN
tools/tests/fib/state/floppy.buffer
Normal file
Binary file not shown.
8
tools/tests/fib/state/gameport
Normal file
8
tools/tests/fib/state/gameport
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
gameport = {
|
||||||
|
port = 0xf0
|
||||||
|
delay_x = 0
|
||||||
|
delay_y = 0
|
||||||
|
timer_x = false
|
||||||
|
timer_y = false
|
||||||
|
write_usec = 0
|
||||||
|
}
|
||||||
53
tools/tests/fib/state/hard_drive
Normal file
53
tools/tests/fib/state/hard_drive
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
hard_drive = {
|
||||||
|
0 = {
|
||||||
|
drive0 = {
|
||||||
|
buffer = drive0.buffer
|
||||||
|
status = {
|
||||||
|
busy = false
|
||||||
|
drive_ready = true
|
||||||
|
write_fault = false
|
||||||
|
seek_complete = true
|
||||||
|
drq = false
|
||||||
|
corrected_data = false
|
||||||
|
index_pulse = false
|
||||||
|
index_pulse_count = 1
|
||||||
|
err = false
|
||||||
|
}
|
||||||
|
error_register = 0x00
|
||||||
|
head_no = 0x00
|
||||||
|
sector_count = 0x03
|
||||||
|
sector_no = 0x00
|
||||||
|
cylinder_no = 0x4000
|
||||||
|
buffer_size = 0x00000800
|
||||||
|
buffer_index = 0x00000800
|
||||||
|
drq_index = 0x00000000
|
||||||
|
current_command = 0xa0
|
||||||
|
multiple_sectors = 0x00
|
||||||
|
lba_mode = 0x00
|
||||||
|
packet_dma = 0x00000000
|
||||||
|
control_reset = false
|
||||||
|
control_disable_irq = false
|
||||||
|
reset_in_progress = 0x00
|
||||||
|
features = 0x00
|
||||||
|
mdma_mode = 0x00
|
||||||
|
udma_mode = 0x00
|
||||||
|
hob_feature = 0x00
|
||||||
|
hob_nsector = 0x03
|
||||||
|
hob_sector = 0x00
|
||||||
|
hob_lcyl = 0x00
|
||||||
|
hob_hcyl = 0x40
|
||||||
|
num_sectors = 0x00000000
|
||||||
|
cdrom_locked = false
|
||||||
|
}
|
||||||
|
drive_select = 1
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
103
tools/tests/fib/state/ioapic
Normal file
103
tools/tests/fib/state/ioapic
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
ioapic = {
|
||||||
|
ioregsel = 0x00000000
|
||||||
|
intin = 0x00000001
|
||||||
|
irr = 0x00000001
|
||||||
|
ioredtbl = {
|
||||||
|
0x00 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x01 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x02 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x03 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x04 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x05 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x06 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x07 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x08 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x09 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0a = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0b = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0c = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0d = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0e = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0f = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x10 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x11 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x12 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x13 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x14 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x15 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x16 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x17 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
132
tools/tests/fib/state/keyboard
Normal file
132
tools/tests/fib/state/keyboard
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
keyboard = {
|
||||||
|
controller = {
|
||||||
|
tim = false
|
||||||
|
auxb = false
|
||||||
|
c_d = false
|
||||||
|
sysf = false
|
||||||
|
inpb = false
|
||||||
|
outb = false
|
||||||
|
kbd_clock_enabled = true
|
||||||
|
aux_clock_enabled = false
|
||||||
|
allow_irq1 = true
|
||||||
|
allow_irq12 = false
|
||||||
|
kbd_output_buffer = 0xfa
|
||||||
|
aux_output_buffer = 0x00
|
||||||
|
last_comm = 0x60
|
||||||
|
expecting_port60h = 0
|
||||||
|
expecting_mouse_parameter = 0
|
||||||
|
last_mouse_command = 0x55
|
||||||
|
timer_pending = 0
|
||||||
|
irq1_requested = false
|
||||||
|
irq12_requested = false
|
||||||
|
scancodes_translate = true
|
||||||
|
expecting_scancodes_set = false
|
||||||
|
current_scancodes_set = 1
|
||||||
|
bat_in_progress = false
|
||||||
|
}
|
||||||
|
mouse = {
|
||||||
|
sample_rate = 100
|
||||||
|
resolution_cpmm = 4
|
||||||
|
scaling = 1
|
||||||
|
mode = 10
|
||||||
|
saved_mode = 251
|
||||||
|
enable = false
|
||||||
|
button_status = 224
|
||||||
|
delayed_dx = 0
|
||||||
|
delayed_dy = 0
|
||||||
|
delayed_dz = 0
|
||||||
|
im_request = 0
|
||||||
|
im_mode = false
|
||||||
|
}
|
||||||
|
kbd_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0 = 0xfa
|
||||||
|
1 = 0xfa
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x00
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
10 = 0x00
|
||||||
|
11 = 0x00
|
||||||
|
12 = 0x00
|
||||||
|
13 = 0x00
|
||||||
|
14 = 0x00
|
||||||
|
15 = 0x00
|
||||||
|
}
|
||||||
|
head = 2
|
||||||
|
expecting_typematic = false
|
||||||
|
expecting_led_write = false
|
||||||
|
delay = 1
|
||||||
|
repeat_rate = 11
|
||||||
|
led_status = 0
|
||||||
|
scanning_enabled = true
|
||||||
|
}
|
||||||
|
mouse_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x00
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
10 = 0x00
|
||||||
|
11 = 0x00
|
||||||
|
12 = 0x00
|
||||||
|
13 = 0x00
|
||||||
|
14 = 0x00
|
||||||
|
15 = 0x00
|
||||||
|
16 = 0x00
|
||||||
|
17 = 0x00
|
||||||
|
18 = 0x00
|
||||||
|
19 = 0x00
|
||||||
|
20 = 0x00
|
||||||
|
21 = 0x00
|
||||||
|
22 = 0x00
|
||||||
|
23 = 0x00
|
||||||
|
24 = 0x00
|
||||||
|
25 = 0x00
|
||||||
|
26 = 0x00
|
||||||
|
27 = 0x00
|
||||||
|
28 = 0x00
|
||||||
|
29 = 0x00
|
||||||
|
30 = 0x00
|
||||||
|
31 = 0x00
|
||||||
|
32 = 0x00
|
||||||
|
33 = 0x00
|
||||||
|
34 = 0x00
|
||||||
|
35 = 0x00
|
||||||
|
36 = 0x00
|
||||||
|
37 = 0x00
|
||||||
|
38 = 0x00
|
||||||
|
39 = 0x00
|
||||||
|
40 = 0x00
|
||||||
|
41 = 0x00
|
||||||
|
42 = 0x00
|
||||||
|
43 = 0x00
|
||||||
|
44 = 0x00
|
||||||
|
45 = 0x00
|
||||||
|
46 = 0x00
|
||||||
|
47 = 0x00
|
||||||
|
}
|
||||||
|
head = 0
|
||||||
|
}
|
||||||
|
controller_Q = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
}
|
||||||
|
controller_Qsize = 0
|
||||||
|
controller_Qsource = 0
|
||||||
|
}
|
||||||
0
tools/tests/fib/state/logopts
Normal file
0
tools/tests/fib/state/logopts
Normal file
24
tools/tests/fib/state/memory
Normal file
24
tools/tests/fib/state/memory
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
memory = {
|
||||||
|
ram = memory.ram
|
||||||
|
len = 16777216
|
||||||
|
allocated = 16777216
|
||||||
|
used_blocks = 5
|
||||||
|
mapping = {
|
||||||
|
blk0 = 0
|
||||||
|
blk1 = 1
|
||||||
|
blk2 = 4
|
||||||
|
blk3 = 4294967295
|
||||||
|
blk4 = 4294967295
|
||||||
|
blk5 = 4294967295
|
||||||
|
blk6 = 4294967295
|
||||||
|
blk7 = 4294967295
|
||||||
|
blk8 = 4294967295
|
||||||
|
blk9 = 4294967295
|
||||||
|
blk10 = 4294967295
|
||||||
|
blk11 = 4294967295
|
||||||
|
blk12 = 4294967295
|
||||||
|
blk13 = 4294967295
|
||||||
|
blk14 = 3
|
||||||
|
blk15 = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/state/memory.ram
Normal file
BIN
tools/tests/fib/state/memory.ram
Normal file
Binary file not shown.
110
tools/tests/fib/state/pc_system
Normal file
110
tools/tests/fib/state/pc_system
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
pc_system = {
|
||||||
|
enable_a20 = true
|
||||||
|
a20_mask = 0xffffffffffffffff
|
||||||
|
currCountdown = 199
|
||||||
|
currCountdownPeriod = 250
|
||||||
|
ticksTotal = 79478750
|
||||||
|
lastTimeUsec = 0
|
||||||
|
usecSinceLast = 0
|
||||||
|
HRQ = false
|
||||||
|
timer = {
|
||||||
|
0 = {
|
||||||
|
inUse = true
|
||||||
|
period = 4294967295
|
||||||
|
timeToFire = 4294967295
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
inUse = true
|
||||||
|
period = 17985
|
||||||
|
timeToFire = 79484613
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
inUse = true
|
||||||
|
period = 5000000
|
||||||
|
timeToFire = 5000000
|
||||||
|
active = false
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
4 = {
|
||||||
|
inUse = true
|
||||||
|
period = 5000000
|
||||||
|
timeToFire = 80000000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
5 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1220
|
||||||
|
timeToFire = 75001220
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
6 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1250
|
||||||
|
timeToFire = 1250
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
7 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1500000
|
||||||
|
timeToFire = 79500000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
8 = {
|
||||||
|
inUse = true
|
||||||
|
period = 500
|
||||||
|
timeToFire = 79479000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
9 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1250
|
||||||
|
timeToFire = 79480000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
10 = {
|
||||||
|
inUse = true
|
||||||
|
period = 500000
|
||||||
|
timeToFire = 79728858
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
11 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
12 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
13 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
40
tools/tests/fib/state/pic
Normal file
40
tools/tests/fib/state/pic
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
pic = {
|
||||||
|
master = {
|
||||||
|
interrupt_offset = 0x08
|
||||||
|
auto_eoi = 0x00
|
||||||
|
imr = 0xb8
|
||||||
|
isr = 0x00
|
||||||
|
irr = 0x00
|
||||||
|
read_reg_select = 0
|
||||||
|
irq = 0x00
|
||||||
|
lowest_priority = 0x07
|
||||||
|
INT = false
|
||||||
|
IRQ_in = 0x01
|
||||||
|
in_init = false
|
||||||
|
requires_4 = true
|
||||||
|
byte_expected = 4
|
||||||
|
special_mask = false
|
||||||
|
polled = false
|
||||||
|
rotate_on_autoeoi = false
|
||||||
|
edge_level = 0x00
|
||||||
|
}
|
||||||
|
slave = {
|
||||||
|
interrupt_offset = 0x70
|
||||||
|
auto_eoi = 0x00
|
||||||
|
imr = 0x8f
|
||||||
|
isr = 0x00
|
||||||
|
irr = 0x00
|
||||||
|
read_reg_select = 0
|
||||||
|
irq = 0x00
|
||||||
|
lowest_priority = 0x07
|
||||||
|
INT = false
|
||||||
|
IRQ_in = 0x00
|
||||||
|
in_init = false
|
||||||
|
requires_4 = true
|
||||||
|
byte_expected = 4
|
||||||
|
special_mask = false
|
||||||
|
polled = false
|
||||||
|
rotate_on_autoeoi = false
|
||||||
|
edge_level = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
82
tools/tests/fib/state/pit
Normal file
82
tools/tests/fib/state/pit
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
pit = {
|
||||||
|
speaker_data_on = 0x00
|
||||||
|
refresh_clock_div2 = false
|
||||||
|
last_usec = 15893325
|
||||||
|
last_next_event_time = 42949
|
||||||
|
total_ticks = 1065898
|
||||||
|
total_usec = 893325
|
||||||
|
counter = {
|
||||||
|
0 = {
|
||||||
|
GATE = true
|
||||||
|
OUTpin = true
|
||||||
|
count = 42950
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 0
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 3
|
||||||
|
mode = 2
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 42950
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 2
|
||||||
|
read_state = 2
|
||||||
|
count_written = true
|
||||||
|
first_pass = false
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 42949
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
GATE = true
|
||||||
|
OUTpin = true
|
||||||
|
count = 41827
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 0
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 1
|
||||||
|
mode = 4
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 41827
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 0
|
||||||
|
read_state = 0
|
||||||
|
count_written = true
|
||||||
|
first_pass = false
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 0
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
GATE = false
|
||||||
|
OUTpin = true
|
||||||
|
count = 65534
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 65535
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 3
|
||||||
|
mode = 0
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 65534
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 2
|
||||||
|
read_state = 2
|
||||||
|
count_written = true
|
||||||
|
first_pass = true
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
488
tools/tests/fib/state/serial
Normal file
488
tools/tests/fib/state/serial
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
serial = {
|
||||||
|
0 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 115200
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x01
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = true
|
||||||
|
tsr_empty = true
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = true
|
||||||
|
dsr = true
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x01
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
detect_mouse = 0
|
||||||
|
mouse_delayed_dx = 0
|
||||||
|
mouse_delayed_dy = 0
|
||||||
|
mouse_delayed_dz = 0
|
||||||
|
mouse_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
0x10 = 0x00
|
||||||
|
0x11 = 0x00
|
||||||
|
0x12 = 0x00
|
||||||
|
0x13 = 0x00
|
||||||
|
0x14 = 0x00
|
||||||
|
0x15 = 0x00
|
||||||
|
0x16 = 0x00
|
||||||
|
0x17 = 0x00
|
||||||
|
0x18 = 0x00
|
||||||
|
0x19 = 0x00
|
||||||
|
0x1a = 0x00
|
||||||
|
0x1b = 0x00
|
||||||
|
0x1c = 0x00
|
||||||
|
0x1d = 0x00
|
||||||
|
0x1e = 0x00
|
||||||
|
0x1f = 0x00
|
||||||
|
0x20 = 0x00
|
||||||
|
0x21 = 0x00
|
||||||
|
0x22 = 0x00
|
||||||
|
0x23 = 0x00
|
||||||
|
0x24 = 0x00
|
||||||
|
0x25 = 0x00
|
||||||
|
0x26 = 0x00
|
||||||
|
0x27 = 0x00
|
||||||
|
0x28 = 0x00
|
||||||
|
0x29 = 0x00
|
||||||
|
0x2a = 0x00
|
||||||
|
0x2b = 0x00
|
||||||
|
0x2c = 0x00
|
||||||
|
0x2d = 0x00
|
||||||
|
0x2e = 0x00
|
||||||
|
0x2f = 0x00
|
||||||
|
}
|
||||||
|
head = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
147
tools/tests/fib/state/vga
Normal file
147
tools/tests/fib/state/vga
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
vga = {
|
||||||
|
misc_output = {
|
||||||
|
color_emulation = true
|
||||||
|
enable_ram = true
|
||||||
|
clock_select = 1
|
||||||
|
select_high_bank = true
|
||||||
|
horiz_sync_pol = true
|
||||||
|
vert_sync_pol = false
|
||||||
|
}
|
||||||
|
CRTC = {
|
||||||
|
address = 0x0f
|
||||||
|
reg = {
|
||||||
|
0x00 = 0x5f
|
||||||
|
0x01 = 0x4f
|
||||||
|
0x02 = 0x50
|
||||||
|
0x03 = 0x82
|
||||||
|
0x04 = 0x55
|
||||||
|
0x05 = 0x81
|
||||||
|
0x06 = 0xbf
|
||||||
|
0x07 = 0x1f
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x4f
|
||||||
|
0x0a = 0x0e
|
||||||
|
0x0b = 0x0f
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0xa0
|
||||||
|
0x10 = 0x9c
|
||||||
|
0x11 = 0x8e
|
||||||
|
0x12 = 0x8f
|
||||||
|
0x13 = 0x28
|
||||||
|
0x14 = 0x1f
|
||||||
|
0x15 = 0x96
|
||||||
|
0x16 = 0xb9
|
||||||
|
0x17 = 0xa3
|
||||||
|
0x18 = 0xff
|
||||||
|
}
|
||||||
|
write_protect = true
|
||||||
|
}
|
||||||
|
attribute_ctrl = {
|
||||||
|
flip_flop = false
|
||||||
|
address = 0x00000000
|
||||||
|
video_enabled = true
|
||||||
|
palette_reg = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x01
|
||||||
|
0x02 = 0x02
|
||||||
|
0x03 = 0x03
|
||||||
|
0x04 = 0x04
|
||||||
|
0x05 = 0x05
|
||||||
|
0x06 = 0x14
|
||||||
|
0x07 = 0x07
|
||||||
|
0x08 = 0x38
|
||||||
|
0x09 = 0x39
|
||||||
|
0x0a = 0x3a
|
||||||
|
0x0b = 0x3b
|
||||||
|
0x0c = 0x3c
|
||||||
|
0x0d = 0x3d
|
||||||
|
0x0e = 0x3e
|
||||||
|
0x0f = 0x3f
|
||||||
|
}
|
||||||
|
overscan_color = 0x00
|
||||||
|
color_plane_enable = 0x0f
|
||||||
|
horiz_pel_panning = 0x08
|
||||||
|
color_select = 0x00
|
||||||
|
mode_ctrl = {
|
||||||
|
graphics_alpha = false
|
||||||
|
display_type = false
|
||||||
|
enable_line_graphics = true
|
||||||
|
blink_intensity = true
|
||||||
|
pixel_panning_compat = false
|
||||||
|
pixel_clock_select = false
|
||||||
|
internal_palette_size = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pel = {
|
||||||
|
write_data_register = 0x00
|
||||||
|
write_data_cycle = 0
|
||||||
|
read_data_register = 0x00
|
||||||
|
read_data_cycle = 0
|
||||||
|
dac_state = 0
|
||||||
|
mask = 0xff
|
||||||
|
}
|
||||||
|
pel_data = vga.pel_data
|
||||||
|
graphics_ctrl = {
|
||||||
|
index = 5
|
||||||
|
set_reset = 0
|
||||||
|
enable_set_reset = 0
|
||||||
|
color_compare = 0
|
||||||
|
data_rotate = 0
|
||||||
|
raster_op = 0
|
||||||
|
read_map_select = 0
|
||||||
|
write_mode = 0
|
||||||
|
read_mode = 0
|
||||||
|
odd_even = true
|
||||||
|
chain_odd_even = true
|
||||||
|
shift_reg = 0
|
||||||
|
graphics_alpha = false
|
||||||
|
memory_mapping = 3
|
||||||
|
color_dont_care = 0x0f
|
||||||
|
bitmask = 0xff
|
||||||
|
latch0 = 0x00
|
||||||
|
latch1 = 0x00
|
||||||
|
latch2 = 0x00
|
||||||
|
latch3 = 0x00
|
||||||
|
}
|
||||||
|
sequencer = {
|
||||||
|
index = 3
|
||||||
|
map_mask = 3
|
||||||
|
reset1 = true
|
||||||
|
reset2 = true
|
||||||
|
reg1 = 0x00
|
||||||
|
char_map_select = 0
|
||||||
|
extended_mem = true
|
||||||
|
odd_even = false
|
||||||
|
chain_four = false
|
||||||
|
}
|
||||||
|
enabled = true
|
||||||
|
line_offset = 160
|
||||||
|
line_compare = 1023
|
||||||
|
vertical_display_end = 399
|
||||||
|
charmap_address = 0
|
||||||
|
x_dotclockdiv2 = false
|
||||||
|
y_doublescan = true
|
||||||
|
last_bpp = 8
|
||||||
|
memory = vga.memory
|
||||||
|
vbe = {
|
||||||
|
cur_dispi = 0xb0c5
|
||||||
|
xres = 640
|
||||||
|
yres = 480
|
||||||
|
bpp = 8
|
||||||
|
bank = 0
|
||||||
|
enabled = false
|
||||||
|
curindex = 4
|
||||||
|
visible_screen_size = 0
|
||||||
|
offset_x = 0
|
||||||
|
offset_y = 0
|
||||||
|
virtual_xres = 640
|
||||||
|
virtual_yres = 480
|
||||||
|
virtual_start = 0
|
||||||
|
bpp_multiplier = 1
|
||||||
|
lfb_enabled = false
|
||||||
|
get_capabilities = false
|
||||||
|
dac_8bit = false
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/state/vga.memory
Normal file
BIN
tools/tests/fib/state/vga.memory
Normal file
Binary file not shown.
BIN
tools/tests/fib/state/vga.pel_data
Normal file
BIN
tools/tests/fib/state/vga.pel_data
Normal file
Binary file not shown.
34
tools/tests/fib/state/virt_timer
Normal file
34
tools/tests/fib/state/virt_timer
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
virt_timer = {
|
||||||
|
timer = {
|
||||||
|
0 = {
|
||||||
|
inUse = true
|
||||||
|
period = 2147483647
|
||||||
|
timeToFire = 2147483647
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
inUse = true
|
||||||
|
period = 3599
|
||||||
|
timeToFire = 15896924
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
current_timers_time = 15893325
|
||||||
|
timers_next_event_time = 3599
|
||||||
|
last_sequential_time = 0
|
||||||
|
virtual_next_event_time = 3599
|
||||||
|
current_virtual_time = 15893325
|
||||||
|
last_real_time = 1578924690899518
|
||||||
|
total_real_usec = 0
|
||||||
|
last_realtime_delta = 0
|
||||||
|
last_usec = 0
|
||||||
|
usec_per_second = 1000000
|
||||||
|
stored_delta = 0
|
||||||
|
last_system_usec = 0
|
||||||
|
em_last_realtime = 0
|
||||||
|
total_ticks = 0
|
||||||
|
last_realtime_ticks = 0
|
||||||
|
ticks_per_second = 1000000
|
||||||
|
}
|
||||||
BIN
tools/tests/fib/system.elf
Executable file
BIN
tools/tests/fib/system.elf
Executable file
Binary file not shown.
BIN
tools/tests/fib/system.iso
Normal file
BIN
tools/tests/fib/system.iso
Normal file
Binary file not shown.
7
tools/tests/fib/trace.dump-trace-stats
Normal file
7
tools/tests/fib/trace.dump-trace-stats
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#instructions: 3127
|
||||||
|
#memLocations: 172
|
||||||
|
#memR: 711
|
||||||
|
#memR_bytes: 2844
|
||||||
|
#memW: 711
|
||||||
|
#memW_bytes: 2844
|
||||||
|
duration: 3127
|
||||||
BIN
tools/tests/fib/trace.pb
Normal file
BIN
tools/tests/fib/trace.pb
Normal file
Binary file not shown.
6
tools/tests/my.cnf.in
Normal file
6
tools/tests/my.cnf.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[client]
|
||||||
|
user=@TEST_MYSQL_USER@
|
||||||
|
password=@TEST_MYSQL_PASSWORD@
|
||||||
|
host=@TEST_MYSQL_HOST@
|
||||||
|
port=@TEST_MYSQL_PORT@
|
||||||
|
database=@TEST_MYSQL_DATABASE@
|
||||||
22
tools/tests/qsort/.gdb_history
Normal file
22
tools/tests/qsort/.gdb_history
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
b os_main
|
||||||
|
b start_trace
|
||||||
|
q
|
||||||
|
b os_main
|
||||||
|
b start_trace
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
s
|
||||||
|
q
|
||||||
|
c
|
||||||
|
list
|
||||||
|
symbol-file system.elf
|
||||||
|
list
|
||||||
|
q
|
||||||
|
q
|
||||||
|
c
|
||||||
|
bt
|
||||||
|
x 0x00100048
|
||||||
|
b partition
|
||||||
|
c
|
||||||
|
q
|
||||||
7
tools/tests/qsort/grub/boot/grub/grub.cfg
Normal file
7
tools/tests/qsort/grub/boot/grub/grub.cfg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
set timeout=0
|
||||||
|
set default=0
|
||||||
|
|
||||||
|
menuentry "CoRedOS" {
|
||||||
|
multiboot /boot/system.elf
|
||||||
|
boot
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/grub/boot/system.elf
Executable file
BIN
tools/tests/qsort/grub/boot/system.elf
Executable file
Binary file not shown.
14
tools/tests/qsort/injection.sql
Normal file
14
tools/tests/qsort/injection.sql
Normal file
File diff suppressed because one or more lines are too long
133
tools/tests/qsort/state/cmos
Normal file
133
tools/tests/qsort/state/cmos
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
cmos = {
|
||||||
|
mem_address = 0x5d
|
||||||
|
ram = {
|
||||||
|
0x00 = 0x16
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x07
|
||||||
|
0x07 = 0x01
|
||||||
|
0x08 = 0x01
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x26
|
||||||
|
0x0b = 0x02
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x80
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
0x10 = 0x00
|
||||||
|
0x11 = 0x00
|
||||||
|
0x12 = 0x00
|
||||||
|
0x13 = 0x00
|
||||||
|
0x14 = 0x06
|
||||||
|
0x15 = 0x80
|
||||||
|
0x16 = 0x02
|
||||||
|
0x17 = 0x00
|
||||||
|
0x18 = 0x3c
|
||||||
|
0x19 = 0x00
|
||||||
|
0x1a = 0x00
|
||||||
|
0x1b = 0x00
|
||||||
|
0x1c = 0x00
|
||||||
|
0x1d = 0x00
|
||||||
|
0x1e = 0x00
|
||||||
|
0x1f = 0x00
|
||||||
|
0x20 = 0x00
|
||||||
|
0x21 = 0x00
|
||||||
|
0x22 = 0x00
|
||||||
|
0x23 = 0x00
|
||||||
|
0x24 = 0x00
|
||||||
|
0x25 = 0x00
|
||||||
|
0x26 = 0x00
|
||||||
|
0x27 = 0x00
|
||||||
|
0x28 = 0x00
|
||||||
|
0x29 = 0x00
|
||||||
|
0x2a = 0x00
|
||||||
|
0x2b = 0x00
|
||||||
|
0x2c = 0x00
|
||||||
|
0x2d = 0x00
|
||||||
|
0x2e = 0x00
|
||||||
|
0x2f = 0xc4
|
||||||
|
0x30 = 0x00
|
||||||
|
0x31 = 0x3c
|
||||||
|
0x32 = 0x20
|
||||||
|
0x33 = 0x00
|
||||||
|
0x34 = 0x00
|
||||||
|
0x35 = 0x00
|
||||||
|
0x36 = 0x00
|
||||||
|
0x37 = 0x20
|
||||||
|
0x38 = 0x00
|
||||||
|
0x39 = 0x00
|
||||||
|
0x3a = 0x00
|
||||||
|
0x3b = 0x00
|
||||||
|
0x3c = 0x00
|
||||||
|
0x3d = 0x03
|
||||||
|
0x3e = 0x00
|
||||||
|
0x3f = 0x00
|
||||||
|
0x40 = 0x00
|
||||||
|
0x41 = 0x00
|
||||||
|
0x42 = 0x00
|
||||||
|
0x43 = 0x00
|
||||||
|
0x44 = 0x00
|
||||||
|
0x45 = 0x00
|
||||||
|
0x46 = 0x00
|
||||||
|
0x47 = 0x00
|
||||||
|
0x48 = 0x00
|
||||||
|
0x49 = 0x00
|
||||||
|
0x4a = 0x00
|
||||||
|
0x4b = 0x00
|
||||||
|
0x4c = 0x00
|
||||||
|
0x4d = 0x00
|
||||||
|
0x4e = 0x00
|
||||||
|
0x4f = 0x00
|
||||||
|
0x50 = 0x00
|
||||||
|
0x51 = 0x00
|
||||||
|
0x52 = 0x00
|
||||||
|
0x53 = 0x00
|
||||||
|
0x54 = 0x00
|
||||||
|
0x55 = 0x00
|
||||||
|
0x56 = 0x00
|
||||||
|
0x57 = 0x00
|
||||||
|
0x58 = 0x00
|
||||||
|
0x59 = 0x00
|
||||||
|
0x5a = 0x00
|
||||||
|
0x5b = 0x00
|
||||||
|
0x5c = 0x00
|
||||||
|
0x5d = 0x00
|
||||||
|
0x5e = 0x00
|
||||||
|
0x5f = 0x00
|
||||||
|
0x60 = 0x00
|
||||||
|
0x61 = 0x00
|
||||||
|
0x62 = 0x00
|
||||||
|
0x63 = 0x00
|
||||||
|
0x64 = 0x00
|
||||||
|
0x65 = 0x00
|
||||||
|
0x66 = 0x00
|
||||||
|
0x67 = 0x00
|
||||||
|
0x68 = 0x00
|
||||||
|
0x69 = 0x00
|
||||||
|
0x6a = 0x00
|
||||||
|
0x6b = 0x00
|
||||||
|
0x6c = 0x00
|
||||||
|
0x6d = 0x00
|
||||||
|
0x6e = 0x00
|
||||||
|
0x6f = 0x00
|
||||||
|
0x70 = 0x00
|
||||||
|
0x71 = 0x00
|
||||||
|
0x72 = 0x00
|
||||||
|
0x73 = 0x00
|
||||||
|
0x74 = 0x00
|
||||||
|
0x75 = 0x00
|
||||||
|
0x76 = 0x00
|
||||||
|
0x77 = 0x00
|
||||||
|
0x78 = 0x00
|
||||||
|
0x79 = 0x00
|
||||||
|
0x7a = 0x00
|
||||||
|
0x7b = 0x00
|
||||||
|
0x7c = 0x00
|
||||||
|
0x7d = 0x00
|
||||||
|
0x7e = 0x00
|
||||||
|
0x7f = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
57
tools/tests/qsort/state/config
Normal file
57
tools/tests/qsort/state/config
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# configuration file generated by Bochs
|
||||||
|
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, gameport=1, pci_ide=0, acpi=0, ioapic=1
|
||||||
|
config_interface: textconfig
|
||||||
|
display_library: nogui
|
||||||
|
memory: host=16, guest=16
|
||||||
|
romimage: file="BIOS-bochs-latest"
|
||||||
|
vgaromimage: file="vgabios.bin"
|
||||||
|
boot: cdrom
|
||||||
|
floppy_bootsig_check: disabled=0
|
||||||
|
# no floppya
|
||||||
|
# no floppyb
|
||||||
|
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
|
||||||
|
ata0-slave: type=cdrom, path="img/micro/qsort/system.iso", status=inserted, biosdetect=auto, model="Generic 1234"
|
||||||
|
ata1: enabled=0
|
||||||
|
ata2: enabled=0
|
||||||
|
ata3: enabled=0
|
||||||
|
parport1: enabled=0
|
||||||
|
parport2: enabled=0
|
||||||
|
com1: enabled=1, mode=null, dev=""
|
||||||
|
com2: enabled=0
|
||||||
|
com3: enabled=0
|
||||||
|
com4: enabled=0
|
||||||
|
usb_uhci: enabled=0
|
||||||
|
usb_ohci: enabled=0
|
||||||
|
i440fxsupport: enabled=0
|
||||||
|
vga_update_interval: 300000
|
||||||
|
vga: extension=vbe
|
||||||
|
cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
|
||||||
|
cpuid: cpuid_limit_winnt=0, mmx=1, sse=sse4_2, xapic=1, sep=1, aes=1, xsave=1, movbe=1, 1g_pages=0, pcid=0 fsgsbase=0, mwait=1, mwait_is_nop=0
|
||||||
|
cpuid: stepping=3, vendor_string="GenuineIntel", brand_string=" Intel(R) Pentium(R) 4 CPU "
|
||||||
|
print_timestamps: enabled=0
|
||||||
|
# no gdb stub
|
||||||
|
port_e9_hack: enabled=0
|
||||||
|
text_snapshot_check: enabled=0
|
||||||
|
private_colormap: enabled=0
|
||||||
|
clock: sync=none, time0=946681200
|
||||||
|
# no cmosimage
|
||||||
|
ne2k: card=0, enabled=0
|
||||||
|
ne2k: card=1, enabled=0
|
||||||
|
ne2k: card=2, enabled=0
|
||||||
|
ne2k: card=3, enabled=0
|
||||||
|
pnic: enabled=0
|
||||||
|
sb16: enabled=0
|
||||||
|
# no loader
|
||||||
|
log: -
|
||||||
|
logprefix: %t%e%d
|
||||||
|
panic: action=report
|
||||||
|
error: action=report
|
||||||
|
info: action=ignore
|
||||||
|
debug: action=ignore
|
||||||
|
pass: action=ignore
|
||||||
|
keyboard_type: mf
|
||||||
|
keyboard_serial_delay: 250
|
||||||
|
keyboard_paste_delay: 100000
|
||||||
|
keyboard_mapping: enabled=0, map=
|
||||||
|
user_shortcut: keys=none
|
||||||
|
mouse: enabled=0, type=ps2, toggle=ctrl+mbutton
|
||||||
1154
tools/tests/qsort/state/cpu0
Normal file
1154
tools/tests/qsort/state/cpu0
Normal file
File diff suppressed because it is too large
Load Diff
144
tools/tests/qsort/state/dma
Normal file
144
tools/tests/qsort/state/dma
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
dma = {
|
||||||
|
0 = {
|
||||||
|
flip_flop = false
|
||||||
|
status_reg = 0x00
|
||||||
|
command_reg = 0x00
|
||||||
|
ctrl_disabled = false
|
||||||
|
0 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = false
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
flip_flop = false
|
||||||
|
status_reg = 0x00
|
||||||
|
command_reg = 0x00
|
||||||
|
ctrl_disabled = false
|
||||||
|
0 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = false
|
||||||
|
mode_type = 3
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
DRQ = false
|
||||||
|
DACK = false
|
||||||
|
mask = true
|
||||||
|
mode_type = 0
|
||||||
|
address_decrement = 0
|
||||||
|
autoinit_enable = 0
|
||||||
|
transfer_type = 0
|
||||||
|
base_address = 0x0000
|
||||||
|
current_address = 0x0000
|
||||||
|
base_count = 0x0000
|
||||||
|
current_count = 0x0000
|
||||||
|
page_reg = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ext_page = {
|
||||||
|
0x80 = 0x00
|
||||||
|
0x81 = 0x00
|
||||||
|
0x82 = 0x00
|
||||||
|
0x83 = 0x00
|
||||||
|
0x84 = 0x00
|
||||||
|
0x85 = 0x00
|
||||||
|
0x86 = 0x00
|
||||||
|
0x87 = 0x00
|
||||||
|
0x88 = 0x00
|
||||||
|
0x89 = 0x00
|
||||||
|
0x8a = 0x00
|
||||||
|
0x8b = 0x00
|
||||||
|
0x8c = 0x00
|
||||||
|
0x8d = 0x00
|
||||||
|
0x8e = 0x00
|
||||||
|
0x8f = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/state/drive0.buffer
Normal file
BIN
tools/tests/qsort/state/drive0.buffer
Normal file
Binary file not shown.
87
tools/tests/qsort/state/floppy
Normal file
87
tools/tests/qsort/state/floppy
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
floppy = {
|
||||||
|
data_rate = 2
|
||||||
|
command = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x28
|
||||||
|
8 = 0xe5
|
||||||
|
9 = 0x03
|
||||||
|
}
|
||||||
|
command_index = 0
|
||||||
|
command_size = 0
|
||||||
|
command_complete = true
|
||||||
|
pending_command = 0xfe
|
||||||
|
multi_track = false
|
||||||
|
pending_irq = false
|
||||||
|
reset_sensei = 0
|
||||||
|
format_count = 229
|
||||||
|
format_fillbyte = 0x03
|
||||||
|
result = {
|
||||||
|
0 = 0x86
|
||||||
|
1 = 0x4b
|
||||||
|
2 = 0x56
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0xfc
|
||||||
|
6 = 0x10
|
||||||
|
7 = 0x20
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
}
|
||||||
|
result_index = 0
|
||||||
|
result_size = 0
|
||||||
|
DOR = 0x00
|
||||||
|
TDR = 0x00
|
||||||
|
TC = true
|
||||||
|
main_status_reg = 0x00
|
||||||
|
status_reg0 = 0x00
|
||||||
|
status_reg1 = 0x00
|
||||||
|
status_reg2 = 0x00
|
||||||
|
status_reg3 = 0x00
|
||||||
|
floppy_buffer_index = 0
|
||||||
|
lock = false
|
||||||
|
SRT = 0x00
|
||||||
|
HUT = 0x00
|
||||||
|
HLT = 0x00
|
||||||
|
config = 0x00
|
||||||
|
pretrk = 0
|
||||||
|
perp_mode = 0
|
||||||
|
buffer = floppy.buffer
|
||||||
|
drive0 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive1 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive2 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
drive3 = {
|
||||||
|
cylinder = 0
|
||||||
|
head = 0
|
||||||
|
sector = 0
|
||||||
|
eot = 0
|
||||||
|
media_present = false
|
||||||
|
DIR = 0x80
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/state/floppy.buffer
Normal file
BIN
tools/tests/qsort/state/floppy.buffer
Normal file
Binary file not shown.
8
tools/tests/qsort/state/gameport
Normal file
8
tools/tests/qsort/state/gameport
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
gameport = {
|
||||||
|
port = 0xf0
|
||||||
|
delay_x = 0
|
||||||
|
delay_y = 0
|
||||||
|
timer_x = false
|
||||||
|
timer_y = false
|
||||||
|
write_usec = 0
|
||||||
|
}
|
||||||
53
tools/tests/qsort/state/hard_drive
Normal file
53
tools/tests/qsort/state/hard_drive
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
hard_drive = {
|
||||||
|
0 = {
|
||||||
|
drive0 = {
|
||||||
|
buffer = drive0.buffer
|
||||||
|
status = {
|
||||||
|
busy = false
|
||||||
|
drive_ready = true
|
||||||
|
write_fault = false
|
||||||
|
seek_complete = true
|
||||||
|
drq = false
|
||||||
|
corrected_data = false
|
||||||
|
index_pulse = false
|
||||||
|
index_pulse_count = 9
|
||||||
|
err = false
|
||||||
|
}
|
||||||
|
error_register = 0x00
|
||||||
|
head_no = 0x00
|
||||||
|
sector_count = 0x03
|
||||||
|
sector_no = 0x00
|
||||||
|
cylinder_no = 0x4000
|
||||||
|
buffer_size = 0x00000800
|
||||||
|
buffer_index = 0x00000800
|
||||||
|
drq_index = 0x00000000
|
||||||
|
current_command = 0xa0
|
||||||
|
multiple_sectors = 0x00
|
||||||
|
lba_mode = 0x00
|
||||||
|
packet_dma = 0x00000000
|
||||||
|
control_reset = false
|
||||||
|
control_disable_irq = false
|
||||||
|
reset_in_progress = 0x00
|
||||||
|
features = 0x00
|
||||||
|
mdma_mode = 0x00
|
||||||
|
udma_mode = 0x00
|
||||||
|
hob_feature = 0x00
|
||||||
|
hob_nsector = 0x03
|
||||||
|
hob_sector = 0x00
|
||||||
|
hob_lcyl = 0x00
|
||||||
|
hob_hcyl = 0x40
|
||||||
|
num_sectors = 0x00000000
|
||||||
|
cdrom_locked = false
|
||||||
|
}
|
||||||
|
drive_select = 1
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
drive_select = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
103
tools/tests/qsort/state/ioapic
Normal file
103
tools/tests/qsort/state/ioapic
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
ioapic = {
|
||||||
|
ioregsel = 0x00000000
|
||||||
|
intin = 0x00000001
|
||||||
|
irr = 0x00000001
|
||||||
|
ioredtbl = {
|
||||||
|
0x00 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x01 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x02 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x03 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x04 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x05 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x06 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x07 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x08 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x09 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0a = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0b = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0c = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0d = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0e = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x0f = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x10 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x11 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x12 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x13 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x14 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x15 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x16 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
0x17 = {
|
||||||
|
lo = 0x00010000
|
||||||
|
hi = 0x00000000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
132
tools/tests/qsort/state/keyboard
Normal file
132
tools/tests/qsort/state/keyboard
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
keyboard = {
|
||||||
|
controller = {
|
||||||
|
tim = false
|
||||||
|
auxb = false
|
||||||
|
c_d = false
|
||||||
|
sysf = false
|
||||||
|
inpb = false
|
||||||
|
outb = false
|
||||||
|
kbd_clock_enabled = true
|
||||||
|
aux_clock_enabled = false
|
||||||
|
allow_irq1 = true
|
||||||
|
allow_irq12 = false
|
||||||
|
kbd_output_buffer = 0xfa
|
||||||
|
aux_output_buffer = 0x00
|
||||||
|
last_comm = 0x60
|
||||||
|
expecting_port60h = 0
|
||||||
|
expecting_mouse_parameter = 0
|
||||||
|
last_mouse_command = 0x56
|
||||||
|
timer_pending = 0
|
||||||
|
irq1_requested = false
|
||||||
|
irq12_requested = false
|
||||||
|
scancodes_translate = true
|
||||||
|
expecting_scancodes_set = false
|
||||||
|
current_scancodes_set = 1
|
||||||
|
bat_in_progress = false
|
||||||
|
}
|
||||||
|
mouse = {
|
||||||
|
sample_rate = 100
|
||||||
|
resolution_cpmm = 4
|
||||||
|
scaling = 1
|
||||||
|
mode = 10
|
||||||
|
saved_mode = 139
|
||||||
|
enable = false
|
||||||
|
button_status = 224
|
||||||
|
delayed_dx = 0
|
||||||
|
delayed_dy = 0
|
||||||
|
delayed_dz = 0
|
||||||
|
im_request = 0
|
||||||
|
im_mode = false
|
||||||
|
}
|
||||||
|
kbd_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0 = 0xfa
|
||||||
|
1 = 0xfa
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x00
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
10 = 0x00
|
||||||
|
11 = 0x00
|
||||||
|
12 = 0x00
|
||||||
|
13 = 0x00
|
||||||
|
14 = 0x00
|
||||||
|
15 = 0x00
|
||||||
|
}
|
||||||
|
head = 2
|
||||||
|
expecting_typematic = false
|
||||||
|
expecting_led_write = false
|
||||||
|
delay = 1
|
||||||
|
repeat_rate = 11
|
||||||
|
led_status = 0
|
||||||
|
scanning_enabled = true
|
||||||
|
}
|
||||||
|
mouse_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
5 = 0x00
|
||||||
|
6 = 0x00
|
||||||
|
7 = 0x00
|
||||||
|
8 = 0x00
|
||||||
|
9 = 0x00
|
||||||
|
10 = 0x00
|
||||||
|
11 = 0x00
|
||||||
|
12 = 0x00
|
||||||
|
13 = 0x00
|
||||||
|
14 = 0x00
|
||||||
|
15 = 0x00
|
||||||
|
16 = 0x00
|
||||||
|
17 = 0x00
|
||||||
|
18 = 0x00
|
||||||
|
19 = 0x00
|
||||||
|
20 = 0x00
|
||||||
|
21 = 0x00
|
||||||
|
22 = 0x00
|
||||||
|
23 = 0x00
|
||||||
|
24 = 0x00
|
||||||
|
25 = 0x00
|
||||||
|
26 = 0x00
|
||||||
|
27 = 0x00
|
||||||
|
28 = 0x00
|
||||||
|
29 = 0x00
|
||||||
|
30 = 0x00
|
||||||
|
31 = 0x00
|
||||||
|
32 = 0x00
|
||||||
|
33 = 0x00
|
||||||
|
34 = 0x00
|
||||||
|
35 = 0x00
|
||||||
|
36 = 0x00
|
||||||
|
37 = 0x00
|
||||||
|
38 = 0x00
|
||||||
|
39 = 0x00
|
||||||
|
40 = 0x00
|
||||||
|
41 = 0x00
|
||||||
|
42 = 0x00
|
||||||
|
43 = 0x00
|
||||||
|
44 = 0x00
|
||||||
|
45 = 0x00
|
||||||
|
46 = 0x00
|
||||||
|
47 = 0x00
|
||||||
|
}
|
||||||
|
head = 0
|
||||||
|
}
|
||||||
|
controller_Q = {
|
||||||
|
0 = 0x00
|
||||||
|
1 = 0x00
|
||||||
|
2 = 0x00
|
||||||
|
3 = 0x00
|
||||||
|
4 = 0x00
|
||||||
|
}
|
||||||
|
controller_Qsize = 0
|
||||||
|
controller_Qsource = 0
|
||||||
|
}
|
||||||
0
tools/tests/qsort/state/logopts
Normal file
0
tools/tests/qsort/state/logopts
Normal file
24
tools/tests/qsort/state/memory
Normal file
24
tools/tests/qsort/state/memory
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
memory = {
|
||||||
|
ram = memory.ram
|
||||||
|
len = 16777216
|
||||||
|
allocated = 16777216
|
||||||
|
used_blocks = 5
|
||||||
|
mapping = {
|
||||||
|
blk0 = 0
|
||||||
|
blk1 = 1
|
||||||
|
blk2 = 4
|
||||||
|
blk3 = 4294967295
|
||||||
|
blk4 = 4294967295
|
||||||
|
blk5 = 4294967295
|
||||||
|
blk6 = 4294967295
|
||||||
|
blk7 = 4294967295
|
||||||
|
blk8 = 4294967295
|
||||||
|
blk9 = 4294967295
|
||||||
|
blk10 = 4294967295
|
||||||
|
blk11 = 4294967295
|
||||||
|
blk12 = 4294967295
|
||||||
|
blk13 = 4294967295
|
||||||
|
blk14 = 3
|
||||||
|
blk15 = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/state/memory.ram
Normal file
BIN
tools/tests/qsort/state/memory.ram
Normal file
Binary file not shown.
110
tools/tests/qsort/state/pc_system
Normal file
110
tools/tests/qsort/state/pc_system
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
pc_system = {
|
||||||
|
enable_a20 = true
|
||||||
|
a20_mask = 0xffffffffffffffff
|
||||||
|
currCountdown = 42
|
||||||
|
currCountdownPeriod = 500
|
||||||
|
ticksTotal = 80001500
|
||||||
|
lastTimeUsec = 0
|
||||||
|
usecSinceLast = 0
|
||||||
|
HRQ = false
|
||||||
|
timer = {
|
||||||
|
0 = {
|
||||||
|
inUse = true
|
||||||
|
period = 4294967295
|
||||||
|
timeToFire = 4294967295
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
inUse = true
|
||||||
|
period = 17985
|
||||||
|
timeToFire = 80015867
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
inUse = true
|
||||||
|
period = 5000000
|
||||||
|
timeToFire = 5000000
|
||||||
|
active = false
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
4 = {
|
||||||
|
inUse = true
|
||||||
|
period = 5000000
|
||||||
|
timeToFire = 85000000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
5 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1220
|
||||||
|
timeToFire = 80001220
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
6 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1250
|
||||||
|
timeToFire = 1250
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
7 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1500000
|
||||||
|
timeToFire = 81000000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
8 = {
|
||||||
|
inUse = true
|
||||||
|
period = 500
|
||||||
|
timeToFire = 80002000
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
9 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1250
|
||||||
|
timeToFire = 80002500
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
10 = {
|
||||||
|
inUse = true
|
||||||
|
period = 500000
|
||||||
|
timeToFire = 80177346
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
11 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
12 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
13 = {
|
||||||
|
inUse = true
|
||||||
|
period = 1
|
||||||
|
timeToFire = 1
|
||||||
|
active = false
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
40
tools/tests/qsort/state/pic
Normal file
40
tools/tests/qsort/state/pic
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
pic = {
|
||||||
|
master = {
|
||||||
|
interrupt_offset = 0x08
|
||||||
|
auto_eoi = 0x00
|
||||||
|
imr = 0xb8
|
||||||
|
isr = 0x00
|
||||||
|
irr = 0x01
|
||||||
|
read_reg_select = 0
|
||||||
|
irq = 0x00
|
||||||
|
lowest_priority = 0x07
|
||||||
|
INT = true
|
||||||
|
IRQ_in = 0x01
|
||||||
|
in_init = false
|
||||||
|
requires_4 = true
|
||||||
|
byte_expected = 4
|
||||||
|
special_mask = false
|
||||||
|
polled = false
|
||||||
|
rotate_on_autoeoi = false
|
||||||
|
edge_level = 0x00
|
||||||
|
}
|
||||||
|
slave = {
|
||||||
|
interrupt_offset = 0x70
|
||||||
|
auto_eoi = 0x00
|
||||||
|
imr = 0x8f
|
||||||
|
isr = 0x00
|
||||||
|
irr = 0x00
|
||||||
|
read_reg_select = 0
|
||||||
|
irq = 0x00
|
||||||
|
lowest_priority = 0x07
|
||||||
|
INT = false
|
||||||
|
IRQ_in = 0x00
|
||||||
|
in_init = false
|
||||||
|
requires_4 = true
|
||||||
|
byte_expected = 4
|
||||||
|
special_mask = false
|
||||||
|
polled = false
|
||||||
|
rotate_on_autoeoi = false
|
||||||
|
edge_level = 0x00
|
||||||
|
}
|
||||||
|
}
|
||||||
82
tools/tests/qsort/state/pit
Normal file
82
tools/tests/qsort/state/pit
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
pit = {
|
||||||
|
speaker_data_on = 0x00
|
||||||
|
refresh_clock_div2 = true
|
||||||
|
last_usec = 15999576
|
||||||
|
last_next_event_time = 47244
|
||||||
|
total_ticks = 1192675
|
||||||
|
total_usec = 999576
|
||||||
|
counter = {
|
||||||
|
0 = {
|
||||||
|
GATE = true
|
||||||
|
OUTpin = true
|
||||||
|
count = 47245
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 0
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 3
|
||||||
|
mode = 2
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 47245
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 2
|
||||||
|
read_state = 2
|
||||||
|
count_written = true
|
||||||
|
first_pass = false
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 47244
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
GATE = true
|
||||||
|
OUTpin = true
|
||||||
|
count = 46122
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 0
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 1
|
||||||
|
mode = 4
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 46122
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 0
|
||||||
|
read_state = 0
|
||||||
|
count_written = true
|
||||||
|
first_pass = false
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 0
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
GATE = false
|
||||||
|
OUTpin = true
|
||||||
|
count = 65535
|
||||||
|
outlatch = 0
|
||||||
|
inlatch = 65535
|
||||||
|
status_latch = 0
|
||||||
|
rw_mode = 3
|
||||||
|
mode = 0
|
||||||
|
bcd_mode = false
|
||||||
|
null_count = false
|
||||||
|
count_LSB_latched = false
|
||||||
|
count_MSB_latched = false
|
||||||
|
status_latched = false
|
||||||
|
count_binary = 65535
|
||||||
|
triggerGATE = false
|
||||||
|
write_state = 2
|
||||||
|
read_state = 2
|
||||||
|
count_written = true
|
||||||
|
first_pass = true
|
||||||
|
state_bit_1 = false
|
||||||
|
state_bit_2 = false
|
||||||
|
next_change_time = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
488
tools/tests/qsort/state/serial
Normal file
488
tools/tests/qsort/state/serial
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
serial = {
|
||||||
|
0 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 115200
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x01
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = true
|
||||||
|
tsr_empty = true
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = true
|
||||||
|
dsr = true
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x01
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
2 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
3 = {
|
||||||
|
ls_interrupt = false
|
||||||
|
ms_interrupt = false
|
||||||
|
rx_interrupt = false
|
||||||
|
tx_interrupt = false
|
||||||
|
fifo_interrupt = false
|
||||||
|
ls_ipending = false
|
||||||
|
ms_ipending = false
|
||||||
|
rx_ipending = false
|
||||||
|
fifo_ipending = false
|
||||||
|
rx_fifo_end = 0
|
||||||
|
tx_fifo_end = 0
|
||||||
|
baudrate = 0
|
||||||
|
rx_pollstate = 0
|
||||||
|
rxbuffer = 0x00
|
||||||
|
thrbuffer = 0x00
|
||||||
|
int_enable = {
|
||||||
|
rxdata_enable = false
|
||||||
|
txhold_enable = false
|
||||||
|
rxlstat_enable = false
|
||||||
|
modstat_enable = false
|
||||||
|
}
|
||||||
|
int_ident = {
|
||||||
|
ipending = false
|
||||||
|
int_ID = 0x00
|
||||||
|
}
|
||||||
|
fifo_cntl = {
|
||||||
|
enable = false
|
||||||
|
rxtrigger = 0x00
|
||||||
|
}
|
||||||
|
line_cntl = {
|
||||||
|
wordlen_sel = 0x00
|
||||||
|
stopbits = false
|
||||||
|
parity_enable = false
|
||||||
|
evenparity_sel = false
|
||||||
|
stick_parity = false
|
||||||
|
break_cntl = false
|
||||||
|
dlab = false
|
||||||
|
}
|
||||||
|
modem_cntl = {
|
||||||
|
dtr = false
|
||||||
|
rts = false
|
||||||
|
out1 = false
|
||||||
|
out2 = false
|
||||||
|
local_loopback = false
|
||||||
|
}
|
||||||
|
line_status = {
|
||||||
|
rxdata_ready = false
|
||||||
|
overrun_error = false
|
||||||
|
parity_error = false
|
||||||
|
framing_error = false
|
||||||
|
break_int = false
|
||||||
|
thr_empty = false
|
||||||
|
tsr_empty = false
|
||||||
|
fifo_error = false
|
||||||
|
}
|
||||||
|
modem_status = {
|
||||||
|
delta_cts = false
|
||||||
|
delta_dsr = false
|
||||||
|
ri_trailedge = false
|
||||||
|
delta_dcd = false
|
||||||
|
cts = false
|
||||||
|
dsr = false
|
||||||
|
ri = false
|
||||||
|
dcd = false
|
||||||
|
}
|
||||||
|
scratch = 0x00
|
||||||
|
tsrbuffer = 0x00
|
||||||
|
rx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
tx_fifo = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
}
|
||||||
|
divisor_lsb = 0x00
|
||||||
|
divisor_msb = 0x00
|
||||||
|
}
|
||||||
|
detect_mouse = 0
|
||||||
|
mouse_delayed_dx = 0
|
||||||
|
mouse_delayed_dy = 0
|
||||||
|
mouse_delayed_dz = 0
|
||||||
|
mouse_internal_buffer = {
|
||||||
|
num_elements = 0
|
||||||
|
buffer = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x00
|
||||||
|
0x02 = 0x00
|
||||||
|
0x03 = 0x00
|
||||||
|
0x04 = 0x00
|
||||||
|
0x05 = 0x00
|
||||||
|
0x06 = 0x00
|
||||||
|
0x07 = 0x00
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x00
|
||||||
|
0x0a = 0x00
|
||||||
|
0x0b = 0x00
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0x00
|
||||||
|
0x10 = 0x00
|
||||||
|
0x11 = 0x00
|
||||||
|
0x12 = 0x00
|
||||||
|
0x13 = 0x00
|
||||||
|
0x14 = 0x00
|
||||||
|
0x15 = 0x00
|
||||||
|
0x16 = 0x00
|
||||||
|
0x17 = 0x00
|
||||||
|
0x18 = 0x00
|
||||||
|
0x19 = 0x00
|
||||||
|
0x1a = 0x00
|
||||||
|
0x1b = 0x00
|
||||||
|
0x1c = 0x00
|
||||||
|
0x1d = 0x00
|
||||||
|
0x1e = 0x00
|
||||||
|
0x1f = 0x00
|
||||||
|
0x20 = 0x00
|
||||||
|
0x21 = 0x00
|
||||||
|
0x22 = 0x00
|
||||||
|
0x23 = 0x00
|
||||||
|
0x24 = 0x00
|
||||||
|
0x25 = 0x00
|
||||||
|
0x26 = 0x00
|
||||||
|
0x27 = 0x00
|
||||||
|
0x28 = 0x00
|
||||||
|
0x29 = 0x00
|
||||||
|
0x2a = 0x00
|
||||||
|
0x2b = 0x00
|
||||||
|
0x2c = 0x00
|
||||||
|
0x2d = 0x00
|
||||||
|
0x2e = 0x00
|
||||||
|
0x2f = 0x00
|
||||||
|
}
|
||||||
|
head = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
147
tools/tests/qsort/state/vga
Normal file
147
tools/tests/qsort/state/vga
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
vga = {
|
||||||
|
misc_output = {
|
||||||
|
color_emulation = true
|
||||||
|
enable_ram = true
|
||||||
|
clock_select = 1
|
||||||
|
select_high_bank = true
|
||||||
|
horiz_sync_pol = true
|
||||||
|
vert_sync_pol = false
|
||||||
|
}
|
||||||
|
CRTC = {
|
||||||
|
address = 0x0f
|
||||||
|
reg = {
|
||||||
|
0x00 = 0x5f
|
||||||
|
0x01 = 0x4f
|
||||||
|
0x02 = 0x50
|
||||||
|
0x03 = 0x82
|
||||||
|
0x04 = 0x55
|
||||||
|
0x05 = 0x81
|
||||||
|
0x06 = 0xbf
|
||||||
|
0x07 = 0x1f
|
||||||
|
0x08 = 0x00
|
||||||
|
0x09 = 0x4f
|
||||||
|
0x0a = 0x0e
|
||||||
|
0x0b = 0x0f
|
||||||
|
0x0c = 0x00
|
||||||
|
0x0d = 0x00
|
||||||
|
0x0e = 0x00
|
||||||
|
0x0f = 0xa0
|
||||||
|
0x10 = 0x9c
|
||||||
|
0x11 = 0x8e
|
||||||
|
0x12 = 0x8f
|
||||||
|
0x13 = 0x28
|
||||||
|
0x14 = 0x1f
|
||||||
|
0x15 = 0x96
|
||||||
|
0x16 = 0xb9
|
||||||
|
0x17 = 0xa3
|
||||||
|
0x18 = 0xff
|
||||||
|
}
|
||||||
|
write_protect = true
|
||||||
|
}
|
||||||
|
attribute_ctrl = {
|
||||||
|
flip_flop = false
|
||||||
|
address = 0x00000000
|
||||||
|
video_enabled = true
|
||||||
|
palette_reg = {
|
||||||
|
0x00 = 0x00
|
||||||
|
0x01 = 0x01
|
||||||
|
0x02 = 0x02
|
||||||
|
0x03 = 0x03
|
||||||
|
0x04 = 0x04
|
||||||
|
0x05 = 0x05
|
||||||
|
0x06 = 0x14
|
||||||
|
0x07 = 0x07
|
||||||
|
0x08 = 0x38
|
||||||
|
0x09 = 0x39
|
||||||
|
0x0a = 0x3a
|
||||||
|
0x0b = 0x3b
|
||||||
|
0x0c = 0x3c
|
||||||
|
0x0d = 0x3d
|
||||||
|
0x0e = 0x3e
|
||||||
|
0x0f = 0x3f
|
||||||
|
}
|
||||||
|
overscan_color = 0x00
|
||||||
|
color_plane_enable = 0x0f
|
||||||
|
horiz_pel_panning = 0x08
|
||||||
|
color_select = 0x00
|
||||||
|
mode_ctrl = {
|
||||||
|
graphics_alpha = false
|
||||||
|
display_type = false
|
||||||
|
enable_line_graphics = true
|
||||||
|
blink_intensity = true
|
||||||
|
pixel_panning_compat = false
|
||||||
|
pixel_clock_select = false
|
||||||
|
internal_palette_size = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pel = {
|
||||||
|
write_data_register = 0x00
|
||||||
|
write_data_cycle = 0
|
||||||
|
read_data_register = 0x00
|
||||||
|
read_data_cycle = 0
|
||||||
|
dac_state = 0
|
||||||
|
mask = 0xff
|
||||||
|
}
|
||||||
|
pel_data = vga.pel_data
|
||||||
|
graphics_ctrl = {
|
||||||
|
index = 5
|
||||||
|
set_reset = 0
|
||||||
|
enable_set_reset = 0
|
||||||
|
color_compare = 0
|
||||||
|
data_rotate = 0
|
||||||
|
raster_op = 0
|
||||||
|
read_map_select = 0
|
||||||
|
write_mode = 0
|
||||||
|
read_mode = 0
|
||||||
|
odd_even = true
|
||||||
|
chain_odd_even = true
|
||||||
|
shift_reg = 0
|
||||||
|
graphics_alpha = false
|
||||||
|
memory_mapping = 3
|
||||||
|
color_dont_care = 0x0f
|
||||||
|
bitmask = 0xff
|
||||||
|
latch0 = 0x00
|
||||||
|
latch1 = 0x00
|
||||||
|
latch2 = 0x00
|
||||||
|
latch3 = 0x00
|
||||||
|
}
|
||||||
|
sequencer = {
|
||||||
|
index = 3
|
||||||
|
map_mask = 3
|
||||||
|
reset1 = true
|
||||||
|
reset2 = true
|
||||||
|
reg1 = 0x00
|
||||||
|
char_map_select = 0
|
||||||
|
extended_mem = true
|
||||||
|
odd_even = false
|
||||||
|
chain_four = false
|
||||||
|
}
|
||||||
|
enabled = true
|
||||||
|
line_offset = 160
|
||||||
|
line_compare = 1023
|
||||||
|
vertical_display_end = 399
|
||||||
|
charmap_address = 0
|
||||||
|
x_dotclockdiv2 = false
|
||||||
|
y_doublescan = true
|
||||||
|
last_bpp = 8
|
||||||
|
memory = vga.memory
|
||||||
|
vbe = {
|
||||||
|
cur_dispi = 0xb0c5
|
||||||
|
xres = 640
|
||||||
|
yres = 480
|
||||||
|
bpp = 8
|
||||||
|
bank = 0
|
||||||
|
enabled = false
|
||||||
|
curindex = 4
|
||||||
|
visible_screen_size = 0
|
||||||
|
offset_x = 0
|
||||||
|
offset_y = 0
|
||||||
|
virtual_xres = 640
|
||||||
|
virtual_yres = 480
|
||||||
|
virtual_start = 0
|
||||||
|
bpp_multiplier = 1
|
||||||
|
lfb_enabled = false
|
||||||
|
get_capabilities = false
|
||||||
|
dac_8bit = false
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/state/vga.memory
Normal file
BIN
tools/tests/qsort/state/vga.memory
Normal file
Binary file not shown.
BIN
tools/tests/qsort/state/vga.pel_data
Normal file
BIN
tools/tests/qsort/state/vga.pel_data
Normal file
Binary file not shown.
34
tools/tests/qsort/state/virt_timer
Normal file
34
tools/tests/qsort/state/virt_timer
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
virt_timer = {
|
||||||
|
timer = {
|
||||||
|
0 = {
|
||||||
|
inUse = true
|
||||||
|
period = 2147483647
|
||||||
|
timeToFire = 2147483647
|
||||||
|
active = true
|
||||||
|
continuous = true
|
||||||
|
}
|
||||||
|
1 = {
|
||||||
|
inUse = true
|
||||||
|
period = 3599
|
||||||
|
timeToFire = 16003175
|
||||||
|
active = true
|
||||||
|
continuous = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
current_timers_time = 15999576
|
||||||
|
timers_next_event_time = 3599
|
||||||
|
last_sequential_time = 0
|
||||||
|
virtual_next_event_time = 3599
|
||||||
|
current_virtual_time = 15999576
|
||||||
|
last_real_time = 1578924768451212
|
||||||
|
total_real_usec = 0
|
||||||
|
last_realtime_delta = 0
|
||||||
|
last_usec = 0
|
||||||
|
usec_per_second = 1000000
|
||||||
|
stored_delta = 0
|
||||||
|
last_system_usec = 0
|
||||||
|
em_last_realtime = 0
|
||||||
|
total_ticks = 0
|
||||||
|
last_realtime_ticks = 0
|
||||||
|
ticks_per_second = 1000000
|
||||||
|
}
|
||||||
BIN
tools/tests/qsort/system.elf
Executable file
BIN
tools/tests/qsort/system.elf
Executable file
Binary file not shown.
BIN
tools/tests/qsort/system.iso
Normal file
BIN
tools/tests/qsort/system.iso
Normal file
Binary file not shown.
7
tools/tests/qsort/trace.dump-trace-stats
Normal file
7
tools/tests/qsort/trace.dump-trace-stats
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#instructions: 925
|
||||||
|
#memLocations: 360
|
||||||
|
#memR: 340
|
||||||
|
#memR_bytes: 1360
|
||||||
|
#memW: 292
|
||||||
|
#memW_bytes: 1168
|
||||||
|
duration: 925
|
||||||
BIN
tools/tests/qsort/trace.pb
Normal file
BIN
tools/tests/qsort/trace.pb
Normal file
Binary file not shown.
260
tools/tests/run
Executable file
260
tools/tests/run
Executable file
@ -0,0 +1,260 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import logging
|
||||||
|
import tempfile
|
||||||
|
import os
|
||||||
|
|
||||||
|
class SkipTestException(RuntimeError): ...
|
||||||
|
|
||||||
|
def arg_string(arg, exception=SkipTestException):
|
||||||
|
if not arg:
|
||||||
|
raise exception("no argument %s was given." % name)
|
||||||
|
return arg
|
||||||
|
|
||||||
|
def arg_file(arg, fmt_str="%s", exception=SkipTestException):
|
||||||
|
if not arg:
|
||||||
|
raise exception("no argument %s was given." % name)
|
||||||
|
fn = fmt_str % arg
|
||||||
|
if not os.path.exists(fn):
|
||||||
|
raise exception("no file %s was found (dervied from %s)." % (fn, arg))
|
||||||
|
return fn
|
||||||
|
|
||||||
|
def check_call(cmd, **kwargs):
|
||||||
|
logging.debug("Executing: '%s'", "' '".join(cmd))
|
||||||
|
subprocess.check_call(cmd, **kwargs)
|
||||||
|
|
||||||
|
def check_output(cmd):
|
||||||
|
logging.debug("Executing: '%s'", "' '".join(cmd))
|
||||||
|
output = subprocess.check_output(cmd).decode()
|
||||||
|
return output
|
||||||
|
|
||||||
|
|
||||||
|
def dump_trace():
|
||||||
|
"""This calls dump-trace --stats and compares the result to a pre-recorderd output"""
|
||||||
|
global args
|
||||||
|
dump_trace = arg_string(args.dump_trace)
|
||||||
|
trace_pb = arg_file(args.benchmark, "%s/trace.pb")
|
||||||
|
trace_pb_stats = arg_file(args.benchmark, "%s/trace.dump-trace-stats")
|
||||||
|
|
||||||
|
with open(trace_pb_stats) as fd:
|
||||||
|
trace_pb_stats = fd.read()
|
||||||
|
|
||||||
|
cmd = [dump_trace, '--stats', trace_pb]
|
||||||
|
logging.info("Executing: '%s'", "' '".join(cmd))
|
||||||
|
stats = subprocess.check_output(cmd).decode()
|
||||||
|
|
||||||
|
if stats != trace_pb_stats:
|
||||||
|
logging.error("Mismatch with the prerecorded trace stats file:")
|
||||||
|
print(trace_pb_stats, stats)
|
||||||
|
return -1
|
||||||
|
|
||||||
|
|
||||||
|
# Database related
|
||||||
|
def mysql(statement):
|
||||||
|
global args
|
||||||
|
my_cnf = arg_file(args.my_cnf)
|
||||||
|
|
||||||
|
cmd = ["mysql", "--defaults-file="+my_cnf, "-e", statement]
|
||||||
|
|
||||||
|
output = check_output(cmd)
|
||||||
|
|
||||||
|
header = None
|
||||||
|
for line in output.strip().split("\n"):
|
||||||
|
fields = line.split("\t")
|
||||||
|
if not header:
|
||||||
|
header = fields
|
||||||
|
else:
|
||||||
|
yield dict(zip(header,fields))
|
||||||
|
|
||||||
|
def import_trace():
|
||||||
|
global args
|
||||||
|
import_trace = arg_string(args.import_trace)
|
||||||
|
trace_pb = arg_file(args.benchmark, "%s/trace.pb")
|
||||||
|
my_cnf = arg_file(args.my_cnf)
|
||||||
|
trace_pb_stats = arg_file(args.benchmark, "%s/trace.dump-trace-stats")
|
||||||
|
with open(trace_pb_stats) as fd:
|
||||||
|
trace_pb_stats = [x.split(":") for x in fd.read().strip().split("\n")]
|
||||||
|
trace_pb_stats = {x[0].strip(): x[1].strip() for x in trace_pb_stats}
|
||||||
|
|
||||||
|
list(mysql("DROP TABLE IF EXISTS variant"))
|
||||||
|
list(mysql("DROP TABLE IF EXISTS trace"))
|
||||||
|
|
||||||
|
|
||||||
|
for location, extra_argv in [
|
||||||
|
("memory", ["-i", "mem"]),
|
||||||
|
("register", ["-i", "regs", "--flags"])]:
|
||||||
|
cmd = [import_trace,
|
||||||
|
"--database-option-file", my_cnf,
|
||||||
|
"-t", trace_pb,
|
||||||
|
"-e", arg_file(args.benchmark, "%s/system.elf"),
|
||||||
|
"-v", args.benchmark,
|
||||||
|
"-b", location,
|
||||||
|
] + extra_argv
|
||||||
|
check_call(cmd)
|
||||||
|
|
||||||
|
result = mysql(f"""SELECT v.id as variant_id,
|
||||||
|
min(instr1) as min_instr,
|
||||||
|
max(instr2) as max_instr,
|
||||||
|
min(time1) as min_time,
|
||||||
|
max(time2) as max_time
|
||||||
|
FROM trace t
|
||||||
|
JOIN variant v ON v.id = t.variant_id
|
||||||
|
WHERE v.variant = "{args.benchmark}" and v.benchmark = "{location}"
|
||||||
|
""")
|
||||||
|
trace_stats = next(result)
|
||||||
|
|
||||||
|
# Check if the number of imported instructions is equal to the result
|
||||||
|
# of dump-trace --stats
|
||||||
|
trace_instrs = int(trace_stats["max_instr"]) - int(trace_stats['min_instr']) + 1
|
||||||
|
stats_instrs = int(trace_pb_stats["#instructions"])
|
||||||
|
assert trace_instrs == stats_instrs,\
|
||||||
|
f"Number of instructions differs for {args.benchmark}/{location}"
|
||||||
|
|
||||||
|
trace_time = int(trace_stats["max_time"]) - int(trace_stats['min_time']) + 1
|
||||||
|
stats_time = int(trace_pb_stats["duration"])
|
||||||
|
assert trace_time == stats_time,\
|
||||||
|
f"Lenght of imported trace differs for {args.benchmark}/{location}"
|
||||||
|
|
||||||
|
|
||||||
|
# Infer the number of fault locations
|
||||||
|
result = mysql(f"""SELECT DISTINCT data_address, width
|
||||||
|
FROM trace t
|
||||||
|
JOIN variant v ON v.id = t.variant_id
|
||||||
|
WHERE v.variant = "{args.benchmark}" and v.benchmark = "{location}"
|
||||||
|
""")
|
||||||
|
bits = set()
|
||||||
|
for r in result:
|
||||||
|
for offset in range(0, int(r['width'])):
|
||||||
|
for bit in range(0, 8):
|
||||||
|
bits.add((int(r['data_address']) + offset, bit))
|
||||||
|
|
||||||
|
logging.info(f"{len(bits)} fault locations ({location})")
|
||||||
|
|
||||||
|
|
||||||
|
if location == "memory":
|
||||||
|
assert len(bits) == int(trace_pb_stats["#memLocations"]) * 8,\
|
||||||
|
"Number of fault locations (memory) is not equal to dump-trace"
|
||||||
|
|
||||||
|
result = mysql(f"""SELECT sum((t.time2 - t.time1 + 1) * width * 8) as fault_space_size
|
||||||
|
FROM trace t
|
||||||
|
JOIN variant v ON v.id = t.variant_id
|
||||||
|
WHERE v.variant = "{args.benchmark}" and v.benchmark = "{location}"
|
||||||
|
""")
|
||||||
|
fault_space_size = int(next(result)['fault_space_size'])
|
||||||
|
assert fault_space_size == len(bits) * trace_time,\
|
||||||
|
f"Equivalence Sets do not add up to a square fault space (location={location})"
|
||||||
|
|
||||||
|
|
||||||
|
def basic_pruner():
|
||||||
|
# Import Trace has alrady happened
|
||||||
|
prune_trace = arg_string(args.prune_trace)
|
||||||
|
my_cnf = arg_file(args.my_cnf)
|
||||||
|
|
||||||
|
list(mysql("DROP TABLE IF EXISTS fspgroup"))
|
||||||
|
list(mysql("DROP TABLE IF EXISTS fsppilot"))
|
||||||
|
|
||||||
|
for variant in mysql("select * from variant"):
|
||||||
|
cmd = [prune_trace, "--database-option-file", my_cnf,
|
||||||
|
"-v", variant['variant'], "-b", variant['benchmark'],
|
||||||
|
"-p", "BasicPruner"
|
||||||
|
]
|
||||||
|
|
||||||
|
check_output(cmd)
|
||||||
|
|
||||||
|
# Is every trace event covered by a fsppilot?
|
||||||
|
sql = f"""SELECT p.id is null as no_pilot, count(*) as intervals, sum((t.time2 - t.time1 + 1) * t.width * 8) as area,
|
||||||
|
count(distinct p.id) as pilots
|
||||||
|
FROM trace t
|
||||||
|
LEFT OUTER JOIN fspgroup g
|
||||||
|
on t.variant_id = g.variant_id
|
||||||
|
and t.instr2 = g.instr2
|
||||||
|
and t.data_address = g.data_address
|
||||||
|
LEFT OUTER JOIN fsppilot p
|
||||||
|
on t.variant_id = p.variant_id
|
||||||
|
and g.fspmethod_id = p.fspmethod_id
|
||||||
|
and g.pilot_id = p.id
|
||||||
|
WHERE t.variant_id = {variant['id']}
|
||||||
|
GROUP by p.id is null
|
||||||
|
"""
|
||||||
|
for result in mysql(sql):
|
||||||
|
if result['no_pilot'] != '0':
|
||||||
|
assert False, "Found Equivalence intervals without pilots"
|
||||||
|
else:
|
||||||
|
logging.info(f"{variant['benchmark']}: {result['pilots']} fsppilots, {result['intervals']} intervals, {result['area']}")
|
||||||
|
|
||||||
|
|
||||||
|
# Check if pruning results match the injection table
|
||||||
|
sql = f"""SELECT t.instr2, t.data_address, i1.bitoffset, i1.resulttype as `should`, i2.resulttype as `is`
|
||||||
|
FROM trace t
|
||||||
|
JOIN injection i1 on t.instr2 = i1.instr2 and t.data_address = i1.data_address
|
||||||
|
JOIN fspgroup g
|
||||||
|
on t.variant_id = g.variant_id
|
||||||
|
and t.instr2 = g.instr2
|
||||||
|
and t.data_address = g.data_address
|
||||||
|
JOIN fsppilot p
|
||||||
|
on t.variant_id = p.variant_id
|
||||||
|
and g.fspmethod_id = p.fspmethod_id
|
||||||
|
and g.pilot_id = p.id
|
||||||
|
JOIN injection i2
|
||||||
|
on p.instr2 = i2.instr2 and p.data_address = i2.data_address
|
||||||
|
WHERE t.variant_id = {variant['id']} and i1.bitoffset = i2.bitoffset and i1.resulttype != i2.resulttype"""
|
||||||
|
|
||||||
|
differ = False
|
||||||
|
for row in mysql(sql):
|
||||||
|
logger.info("mismatch: %s", row.values)
|
||||||
|
differ = True
|
||||||
|
|
||||||
|
assert not differ, "There was a result mismatch for the basic pruner"
|
||||||
|
|
||||||
|
|
||||||
|
def import_injection():
|
||||||
|
my_cnf = arg_file(args.my_cnf)
|
||||||
|
injection = arg_file(args.benchmark, "%s/injection.sql")
|
||||||
|
logging.info("Import injection results")
|
||||||
|
with open(injection, "rb", 0) as fd:
|
||||||
|
check_call(["mysql", "--defaults-file=" + my_cnf], stdin=fd)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import argparse
|
||||||
|
import sys
|
||||||
|
|
||||||
|
tests = {
|
||||||
|
'dump-trace': [dump_trace],
|
||||||
|
'basic-pruner': [import_trace, import_injection, basic_pruner],
|
||||||
|
}
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser("FAIL* Test Driver")
|
||||||
|
|
||||||
|
parser.add_argument("--dump-trace", help="dump-trace binary")
|
||||||
|
parser.add_argument("--import-trace", help="import-trace binary")
|
||||||
|
parser.add_argument("--prune-trace", help="prune-trace binary")
|
||||||
|
|
||||||
|
parser.add_argument("--my-cnf", help="MYSQL configuration file")
|
||||||
|
|
||||||
|
parser.add_argument("-v", "--verbose", action="store_true", default=False,
|
||||||
|
help="be verbose")
|
||||||
|
|
||||||
|
parser.add_argument("test_mode", help="Which test to execute?",
|
||||||
|
choices=tests.keys())
|
||||||
|
|
||||||
|
parser.add_argument("benchmark", help="Benchmark")
|
||||||
|
|
||||||
|
global args
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.verbose:
|
||||||
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
else:
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
||||||
|
|
||||||
|
# Dispatch to a given test mode
|
||||||
|
try:
|
||||||
|
for func in tests[args.test_mode]:
|
||||||
|
func()
|
||||||
|
except SkipTestException as e:
|
||||||
|
print("Skipping Test, because:", e)
|
||||||
|
sys.exit(127)
|
||||||
|
|
||||||
Reference in New Issue
Block a user