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
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