Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
5393208094 | |||
180d2348e3 | |||
cca4c8e4d0 | |||
6e75385afc | |||
57ab9ce5b6 | |||
df0fbed343 | |||
256f9affcd | |||
c1886a27f8 | |||
307793332e |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -51,4 +51,3 @@ apps/loader
|
||||
apps/asciivju
|
||||
apps/justawindow
|
||||
runtests
|
||||
cov_t*.*
|
||||
|
9
README
9
README
@@ -103,11 +103,6 @@ Testing
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
# Build
|
||||
|
||||
Install toolchain for the 32-bit target, e.g. gcc-multilib, lib32-glibc,
|
||||
32-bit and develop packages of libfuse and libsdl2, fasm.
|
||||
|
||||
# umka_os
|
||||
|
||||
To create tap devices.
|
||||
@@ -122,10 +117,6 @@ Allow reading process_vm_readv syscall.
|
||||
|
||||
# sysctl -w kernel.yama.ptrace_scope=0
|
||||
|
||||
Insert msr linux kernel module to collect coverage.
|
||||
|
||||
# modprobe msr
|
||||
|
||||
|
||||
Links & Acknowledgements
|
||||
------------------------
|
||||
|
13
TODO
13
TODO
@@ -1,10 +1,9 @@
|
||||
make mkfs.* use config files (-c for mkfs.xfs)
|
||||
export and initialize mouse_delay and mouse_speed_factor (test and cover func mouse_acceleration)
|
||||
lsstat to decrease tests size
|
||||
separate dirs for each image
|
||||
include umka_os to tests
|
||||
tests with writing to block devices (read-only base image + discardable image for writing)
|
||||
separate dirs for each image and test
|
||||
library loader
|
||||
validate against the reference XFS implementation
|
||||
stressing via ref impl (how?)
|
||||
custom test runner
|
||||
make mkfs.xfs use config file via -c option
|
||||
writing tests
|
||||
compare with reference XFS implementation
|
||||
stressing via ref impl
|
||||
multithreaded: kofu one.t two.t
|
||||
|
66
img/gen.sh
66
img/gen.sh
@@ -30,13 +30,7 @@ gpt_large.qcow2 () {
|
||||
local img=$FUNCNAME
|
||||
qemu-img create -f qcow2 -o $QCOW2_OPTS,cluster_size=2097152 $img 2E > /dev/null
|
||||
sudo qemu-nbd -c $NBD_DEV $img
|
||||
sleep 1
|
||||
# This is weird but the sleep above prevents the following error of the
|
||||
# sgdisk below. A better understanding and fix is needed.
|
||||
# Problem reading disk in BasicMBRData::ReadMBRData()!
|
||||
# Warning! Read error 22; strange behavior now likely!
|
||||
# Caution! Secondary header was placed beyond the disk's limits! Moving the
|
||||
# header, but other problems may occur!
|
||||
|
||||
$SGDISK --clear --new=0:0:+1023MiB --new=0:0:+1023GiB --new=0:0:+1023TiB \
|
||||
--new=0:0:+1023PiB $NBD_DEV > /dev/null
|
||||
|
||||
@@ -433,7 +427,6 @@ xfs_v4_xattr.qcow2 () {
|
||||
}
|
||||
|
||||
xfs_v4_btrees_l2.qcow2 () {
|
||||
echo "[*] This can take about ten minutes"
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
@@ -726,7 +719,7 @@ fat32_test0.raw () {
|
||||
sudo mount -o codepage=866,iocharset=utf8,umask=111,dmask=000 $p1 $TEMP_DIR
|
||||
|
||||
$RANDDIR $TEMP_DIR 1000 8 255 65536
|
||||
$DIRTOTEST $TEMP_DIR $img hd0 > "../test/t045/run.us"
|
||||
$DIRTOTEST $TEMP_DIR $img hd0 > "../test/045/run.us"
|
||||
|
||||
# tree $TEMP_DIR
|
||||
# du -sh $TEMP_DIR
|
||||
@@ -848,7 +841,6 @@ exfat_s05k_c8k_b8k.qcow2 () {
|
||||
}
|
||||
|
||||
xfs_samehash_s05k.raw () {
|
||||
echo "[*] This can take about one hour"
|
||||
local img=$FUNCNAME
|
||||
# local img_raw=$(basename $img .qcow2).raw
|
||||
local img_raw=$img
|
||||
@@ -896,7 +888,7 @@ ext2_s05k.qcow2 () {
|
||||
local p1="$LOOP_DEV"p1
|
||||
|
||||
$MKFS_EXT2 $EXT_MKFS_OPTS -N 1200000 $p1
|
||||
debugfs -w -R "set_super_value hash_seed $EXT_HASH_SEED" $p1
|
||||
debugfs -w -R "set_super_value hash_seed $EXT_HASH_SEED" $p1 > /dev/null
|
||||
sudo mount $p1 $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
@@ -926,7 +918,6 @@ ext2_s05k.qcow2 () {
|
||||
}
|
||||
|
||||
ext4_s05k.qcow2 () {
|
||||
echo "[*] This can take about ten minutes"
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
@@ -936,7 +927,7 @@ ext4_s05k.qcow2 () {
|
||||
local p1="$LOOP_DEV"p1
|
||||
|
||||
$MKFS_EXT4 $EXT_MKFS_OPTS -N 1200000 $p1
|
||||
debugfs -w -R "set_super_value hash_seed $EXT_HASH_SEED" $p1
|
||||
debugfs -w -R "set_super_value hash_seed $EXT_HASH_SEED" $p1 > /dev/null
|
||||
sudo mount $p1 $TEMP_DIR
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
#
|
||||
@@ -1039,53 +1030,6 @@ fat16_s05k.qcow2 () {
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
iso9660_s2k_dir_all.qcow2 () {
|
||||
echo "[*] This can take about thirty minutes"
|
||||
local img=$FUNCNAME
|
||||
local img_raw=$(basename $img .qcow2).raw
|
||||
|
||||
sudo chown $USER $TEMP_DIR -R
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_a
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_b
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_b 0 3 0 2
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_c
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_c 0 5 201 43
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_d
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_d 0 50 201 43
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_e
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_e 0 1000 201 43
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_f
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_f 0 5000 231 13
|
||||
|
||||
mkdir $TEMP_DIR/dir_ls_g
|
||||
$MKDIRRANGE $TEMP_DIR/dir_ls_g 0 46656 231 13
|
||||
|
||||
mkdir $TEMP_DIR/dir_stat_a
|
||||
|
||||
mkdir $TEMP_DIR/dir_stat_b
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_stat_b d 3
|
||||
|
||||
mkdir $TEMP_DIR/dir_stat_c
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_stat_c d 100
|
||||
|
||||
mkdir $TEMP_DIR/dir_stat_d
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_stat_d d 5000
|
||||
|
||||
mkdir $TEMP_DIR/dir_stat_e
|
||||
$MKDOUBLEDIRS $TEMP_DIR/dir_stat_e d 3861
|
||||
|
||||
mkisofs -J -R -T -V 'KolibriOS' -input-charset 'UTF-8' -quiet $TEMP_DIR > $img_raw
|
||||
rm $TEMP_DIR/* -rf
|
||||
qemu-img convert -m 2 -O qcow2 -o $QCOW2_OPTS $img_raw $img
|
||||
rm $img_raw
|
||||
}
|
||||
|
||||
images=(gpt_large.qcow2 gpt_partitions_s05k.qcow2 gpt_partitions_s4k.qcow2
|
||||
kolibri.raw jfs.qcow2 xfs_lookup_v4.qcow2 xfs_lookup_v5.qcow2
|
||||
xfs_nrext64.qcow2 xfs_bigtime.qcow2 xfs_borg_bit.qcow2
|
||||
@@ -1097,7 +1041,7 @@ images=(gpt_large.qcow2 gpt_partitions_s05k.qcow2 gpt_partitions_s4k.qcow2
|
||||
xfs_v5_files_s05k_b4k_n8k.qcow2 fat32_test0.raw
|
||||
exfat_s05k_c16k_b16k.qcow2 exfat_s05k_c8k_b8k.qcow2
|
||||
xfs_samehash_s05k.raw ext2_s05k.qcow2 ext4_s05k.qcow2 fat12_s05k.qcow2
|
||||
fat16_s05k.qcow2 iso9660_s2k_dir_all.qcow2)
|
||||
fat16_s05k.qcow2)
|
||||
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
LOOP_DEV=$(losetup --find)
|
||||
|
7
makefile
7
makefile
@@ -3,7 +3,7 @@ ifndef KOLIBRIOS
|
||||
endif
|
||||
|
||||
FASM_EXE ?= fasm
|
||||
FASM_FLAGS=-dUEFI=1 -dextended_primary_loader=1 -dUMKA=1 -dHOST=$(HOST) -m 2000000 -dlang=en_US
|
||||
FASM_FLAGS=-dUEFI=1 -dextended_primary_loader=1 -dUMKA=1 -dHOST=$(HOST) -m 2000000
|
||||
|
||||
HOST ?= linux
|
||||
CC ?= gcc
|
||||
@@ -28,8 +28,7 @@ else
|
||||
endif
|
||||
|
||||
CFLAGS=$(WARNINGS) $(NOWARNINGS) -std=c11 -g -O0 -DNDEBUG -masm=intel \
|
||||
-D_POSIX_C_SOURCE=200809L -I$(HOST) -Ideps -I. -fno-pie -D_POSIX \
|
||||
-fno-common
|
||||
-D_POSIX_C_SOURCE=200809L -I$(HOST) -Ideps -I. -fno-pie -D_POSIX
|
||||
CFLAGS_32=$(CFLAGS) -m32 -D_FILE_OFFSET_BITS=64 -D__USE_TIME_BITS64
|
||||
LDFLAGS=-no-pie
|
||||
LDFLAGS_32=$(LDFLAGS) -m32
|
||||
@@ -84,7 +83,7 @@ umka_os: umka_os.o umka.o shell.o deps/lodepng/lodepng.o vdisk.o vdisk/raw.o \
|
||||
vnet/file.o vnet/null.o trace.o trace_lbr.o $(HOST)/pci.o \
|
||||
$(HOST)/thread.o umkaio.o umkart.o deps/isocline/src/isocline.o \
|
||||
deps/optparse/optparse.o
|
||||
$(CC) $(LDFLAGS_32) $^ `sdl2-config --libs` -o $@ -T umka.ld
|
||||
$(CC) $(LDFLAGS_32) `sdl2-config --libs` $^ -o $@ -T umka.ld
|
||||
|
||||
umka_gen_devices_dat: umka_gen_devices_dat.o umka.o $(HOST)/pci.o \
|
||||
$(HOST)/thread.o umkart.o
|
||||
|
28
runtests.c
28
runtests.c
@@ -37,7 +37,6 @@ _Thread_local char reffname[PATH_MAX];
|
||||
_Thread_local char outfname[PATH_MAX];
|
||||
|
||||
int coverage = 0;
|
||||
int no_timeout = 0;
|
||||
int silent_success = 1;
|
||||
|
||||
static int
|
||||
@@ -126,7 +125,7 @@ struct test_wait_arg {
|
||||
pthread_cond_t *cond;
|
||||
};
|
||||
|
||||
static time_t
|
||||
static unsigned
|
||||
get_test_timeout(const char *testname) {
|
||||
sprintf(timeoutfname, "%s/%s", testname, TIMEOUT_FILENAME);
|
||||
FILE *f = fopen(timeoutfname, "rb");
|
||||
@@ -179,33 +178,21 @@ run_test(const void *arg) {
|
||||
int child;
|
||||
if (!(child = fork())) {
|
||||
chdir(test_name);
|
||||
if (coverage) {
|
||||
char covfile[64];
|
||||
sprintf(covfile, "../cov_%s", test_name);
|
||||
execl("/usr/bin/taskset", "taskset", "1", "sudo",
|
||||
"../../umka_shell", "-ri", "run.us", "-o", "out.log", "-c",
|
||||
covfile, NULL);
|
||||
} else {
|
||||
execl("../../umka_shell", "../../umka_shell", "-ri", "run.us", "-o",
|
||||
"out.log", NULL);
|
||||
}
|
||||
fprintf(stderr, "Can't run test command: %s\n", strerror(errno));
|
||||
return (void *)-1;
|
||||
}
|
||||
pthread_t t;
|
||||
struct test_wait_arg wa = {.pid = child, .cond = &cond};
|
||||
pthread_create(&t, NULL, thread_wait, &wa);
|
||||
time_t tout = get_test_timeout(test_name);
|
||||
unsigned tout = get_test_timeout(test_name);
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_REALTIME, &ts);
|
||||
if (no_timeout) {
|
||||
ts.tv_sec += 60*60*24*7; // a week
|
||||
} else {
|
||||
ts.tv_sec += tout;
|
||||
}
|
||||
int status;
|
||||
if ((status = pthread_cond_timedwait(&cond, &mutex, &ts))) {
|
||||
fprintf(stderr, "[!] %s: timeout (%llim%llis)\n", test_name,
|
||||
fprintf(stderr, "[!] %s: timeout (%um%us)\n", test_name,
|
||||
tout/60, tout % 60);
|
||||
kill(child, SIGKILL);
|
||||
result = (void *)(intptr_t)status;
|
||||
@@ -283,24 +270,19 @@ main(int argc, char *argv[]) {
|
||||
(void)argc;
|
||||
// int action = ACTION_RUN;
|
||||
size_t nthreads = 1;
|
||||
|
||||
struct optparse opts;
|
||||
optparse_init(&opts, argv);
|
||||
int opt;
|
||||
|
||||
while ((opt = optparse(&opts, "cj:st")) != -1) {
|
||||
while ((opt = optparse(&opts, "j:s")) != -1) {
|
||||
switch (opt) {
|
||||
case 'c':
|
||||
coverage = 1;
|
||||
break;
|
||||
case 'j':
|
||||
nthreads = strtoul(opts.optarg, NULL, 0);
|
||||
break;
|
||||
case 's':
|
||||
silent_success = 0;
|
||||
break;
|
||||
case 't':
|
||||
no_timeout = 1;
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "[!] Unknown option: '%c'\n", opt);
|
||||
exit(1);
|
||||
|
183
shell.c
183
shell.c
@@ -51,12 +51,124 @@
|
||||
|
||||
#define SHELL_CMD_BUF_LEN 0x10
|
||||
|
||||
enum {
|
||||
UMKA_CMD_NONE,
|
||||
UMKA_CMD_SET_MOUSE_DATA,
|
||||
UMKA_CMD_WAIT_FOR_IDLE,
|
||||
UMKA_CMD_WAIT_FOR_OS_IDLE,
|
||||
UMKA_CMD_WAIT_FOR_WINDOW,
|
||||
UMKA_CMD_SYS_CSLEEP,
|
||||
UMKA_CMD_SYS_PROCESS_INFO,
|
||||
UMKA_CMD_SYS_GET_MOUSE_POS_SCREEN,
|
||||
UMKA_CMD_SYS_LFN,
|
||||
};
|
||||
|
||||
enum {
|
||||
SHELL_CMD_STATUS_EMPTY,
|
||||
SHELL_CMD_STATUS_READY,
|
||||
SHELL_CMD_STATUS_DONE,
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data_arg {
|
||||
uint32_t btn_state;
|
||||
int32_t xmoving;
|
||||
int32_t ymoving;
|
||||
int32_t vscroll;
|
||||
int32_t hscroll;
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data {
|
||||
struct cmd_set_mouse_data_arg arg;
|
||||
struct cmd_set_mouse_data_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn_arg {
|
||||
f70or80_t f70or80;
|
||||
f7080s1arg_t *bufptr;
|
||||
f7080ret_t *r;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn_ret {
|
||||
f7080ret_t status;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn {
|
||||
struct cmd_sys_lfn_arg arg;
|
||||
struct cmd_sys_lfn_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info_arg {
|
||||
int32_t pid;
|
||||
void *param;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info {
|
||||
struct cmd_sys_process_info_arg arg;
|
||||
struct cmd_sys_process_info_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen_arg {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen_ret {
|
||||
struct point16s pos;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen {
|
||||
struct cmd_sys_get_mouse_pos_screen_arg arg;
|
||||
struct cmd_sys_get_mouse_pos_screen_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep_arg {
|
||||
uint32_t csec;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep {
|
||||
struct cmd_sys_csleep_arg arg;
|
||||
struct cmd_sys_csleep_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window_arg {
|
||||
char *wnd_title;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window {
|
||||
struct cmd_wait_for_window_arg arg;
|
||||
struct cmd_wait_for_window_ret ret;
|
||||
};
|
||||
|
||||
struct umka_cmd {
|
||||
atomic_int status;
|
||||
uint32_t type;
|
||||
union {
|
||||
// internal funcs
|
||||
struct cmd_set_mouse_data set_mouse_data;
|
||||
struct cmd_wait_for_window wait_for_window;
|
||||
// syscalls
|
||||
struct cmd_sys_csleep sys_csleep;
|
||||
struct cmd_sys_process_info sys_process_info;
|
||||
struct cmd_sys_lfn sys_lfn;
|
||||
struct cmd_sys_get_mouse_pos_screen sys_get_mouse_pos_screen;
|
||||
};
|
||||
};
|
||||
|
||||
struct umka_cmd umka_cmd_buf[SHELL_CMD_BUF_LEN];
|
||||
|
||||
char prompt_line[PATH_MAX];
|
||||
@@ -69,6 +181,21 @@ typedef struct {
|
||||
void (*func) (struct shell_ctx *, int, char **);
|
||||
} func_table_t;
|
||||
|
||||
void
|
||||
shell_run_cmd_sync(struct shell_ctx *ctx);
|
||||
|
||||
static void
|
||||
shell_run_cmd(struct shell_ctx *ctx) {
|
||||
struct umka_cmd *cmd = umka_cmd_buf;
|
||||
atomic_store_explicit(&cmd->status, SHELL_CMD_STATUS_READY,
|
||||
memory_order_release);
|
||||
if (atomic_load_explicit(ctx->running, memory_order_acquire) == UMKA_RUNNING_YES) {
|
||||
pthread_cond_wait(&ctx->cmd_done, &ctx->cmd_mutex);
|
||||
} else {
|
||||
shell_run_cmd_sync(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
shell_run_cmd_wait_test(void /* struct appdata * with wait_param is in ebx */) {
|
||||
appdata_t *app;
|
||||
@@ -77,9 +204,6 @@ shell_run_cmd_wait_test(void /* struct appdata * with wait_param is in ebx */) {
|
||||
return (uint32_t)(atomic_load_explicit(&cmd->status, memory_order_acquire) == SHELL_CMD_STATUS_READY);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_run_cmd_sync(struct shell_ctx *ctx);
|
||||
|
||||
static void
|
||||
thread_cmd_runner(void *arg) {
|
||||
umka_sti();
|
||||
@@ -420,16 +544,11 @@ cmd_send_scancode(struct shell_ctx *ctx, int argc, char **argv) {
|
||||
argc -= 1;
|
||||
argv += 1;
|
||||
|
||||
struct umka_cmd *cmd = shell_get_cmd(ctx);
|
||||
cmd->type = UMKA_CMD_SEND_SCANCODE;
|
||||
struct cmd_send_scancode_arg *c = &cmd->send_scancode.arg;
|
||||
while (argc) {
|
||||
char *endptr;
|
||||
size_t code = strtoul(argv[0], &endptr, 0);
|
||||
if (*endptr == '\0') {
|
||||
c->scancode = code;
|
||||
shell_run_cmd(ctx);
|
||||
shell_clear_cmd(cmd);
|
||||
umka_set_keyboard_data(code);
|
||||
argc--;
|
||||
argv++;
|
||||
} else {
|
||||
@@ -712,8 +831,6 @@ disk_list_partitions(struct shell_ctx *ctx, disk_t *d) {
|
||||
fsname = "exfat";
|
||||
} else if (p->fs_user_functions == ntfs_user_functions) {
|
||||
fsname = "ntfs";
|
||||
} else if (p->fs_user_functions == iso9660_user_functions) {
|
||||
fsname = "iso9660";
|
||||
} else {
|
||||
fsname = "???";
|
||||
}
|
||||
@@ -1268,16 +1385,17 @@ cmd_mouse_move(struct shell_ctx *ctx, int argc, char **argv) {
|
||||
}
|
||||
uint32_t btn_state = lbheld + (rbheld << 1) + (mbheld << 2) + (yabs << 30)
|
||||
+ (xabs << 31);
|
||||
struct umka_cmd *cmd = shell_get_cmd(ctx);
|
||||
cmd->type = UMKA_CMD_SET_MOUSE_DATA;
|
||||
struct umka_cmd *cmd = umka_cmd_buf;
|
||||
struct cmd_set_mouse_data_arg *c = &cmd->set_mouse_data.arg;
|
||||
cmd->type = UMKA_CMD_SET_MOUSE_DATA;
|
||||
c->btn_state = btn_state;
|
||||
c->xmoving = xmoving;
|
||||
c->ymoving = ymoving;
|
||||
c->vscroll = vscroll;
|
||||
c->hscroll = hscroll;
|
||||
shell_run_cmd(ctx);
|
||||
shell_clear_cmd(cmd);
|
||||
atomic_store_explicit(&cmd->status, SHELL_CMD_STATUS_EMPTY,
|
||||
memory_order_release);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -4210,7 +4328,7 @@ func_table_t cmd_cmds[] = {
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
||||
static void
|
||||
void
|
||||
shell_run_cmd_sync(struct shell_ctx *ctx) {
|
||||
struct umka_cmd *cmd = umka_cmd_buf;
|
||||
switch (cmd->type) {
|
||||
@@ -4248,18 +4366,9 @@ shell_run_cmd_sync(struct shell_ctx *ctx) {
|
||||
COVERAGE_OFF();
|
||||
break;
|
||||
}
|
||||
case UMKA_CMD_SEND_SCANCODE: {
|
||||
struct cmd_send_scancode_arg *c = &cmd->send_scancode.arg;
|
||||
COVERAGE_ON();
|
||||
umka_set_keyboard_data(c->scancode);
|
||||
COVERAGE_OFF();
|
||||
break;
|
||||
}
|
||||
case UMKA_CMD_SYS_LFN: {
|
||||
struct cmd_sys_lfn_arg *c = &cmd->sys_lfn.arg;
|
||||
COVERAGE_ON();
|
||||
umka_sys_lfn(c->bufptr, c->r, c->f70or80);
|
||||
COVERAGE_OFF();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -4271,30 +4380,6 @@ shell_run_cmd_sync(struct shell_ctx *ctx) {
|
||||
pthread_cond_signal(&ctx->cmd_done);
|
||||
}
|
||||
|
||||
struct umka_cmd *
|
||||
shell_get_cmd(struct shell_ctx *shell) {
|
||||
(void)shell;
|
||||
return umka_cmd_buf;
|
||||
}
|
||||
|
||||
void
|
||||
shell_run_cmd(struct shell_ctx *ctx) {
|
||||
struct umka_cmd *cmd = umka_cmd_buf;
|
||||
atomic_store_explicit(&cmd->status, SHELL_CMD_STATUS_READY,
|
||||
memory_order_release);
|
||||
if (atomic_load_explicit(ctx->running, memory_order_acquire) == UMKA_RUNNING_YES) {
|
||||
pthread_cond_wait(&ctx->cmd_done, &ctx->cmd_mutex);
|
||||
} else {
|
||||
shell_run_cmd_sync(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
shell_clear_cmd(struct umka_cmd *cmd) {
|
||||
atomic_store_explicit(&cmd->status, SHELL_CMD_STATUS_EMPTY,
|
||||
memory_order_release);
|
||||
}
|
||||
|
||||
static void
|
||||
cmd_help(struct shell_ctx *ctx, int argc, char **argv) {
|
||||
const char *usage = \
|
||||
@@ -4343,7 +4428,7 @@ run_test(struct shell_ctx *ctx) {
|
||||
|
||||
pthread_mutex_lock(&ctx->cmd_mutex);
|
||||
int is_tty = isatty(fileno(stdin));
|
||||
char **argv = (char**)calloc(MAX_COMMAND_ARGS + 1, sizeof(char*));
|
||||
char **argv = (char**)calloc(sizeof(char*), (MAX_COMMAND_ARGS + 1));
|
||||
ic_set_default_completer(completer, NULL);
|
||||
ic_set_default_highlighter(highlighter, NULL);
|
||||
ic_enable_auto_tab(1);
|
||||
|
135
shell.h
135
shell.h
@@ -59,140 +59,7 @@ shell_close(struct shell_ctx *shell);
|
||||
void *
|
||||
run_test(struct shell_ctx *ctx);
|
||||
|
||||
enum {
|
||||
UMKA_CMD_NONE,
|
||||
UMKA_CMD_SET_MOUSE_DATA,
|
||||
UMKA_CMD_WAIT_FOR_IDLE,
|
||||
UMKA_CMD_WAIT_FOR_OS_IDLE,
|
||||
UMKA_CMD_WAIT_FOR_WINDOW,
|
||||
UMKA_CMD_SYS_CSLEEP,
|
||||
UMKA_CMD_SYS_PROCESS_INFO,
|
||||
UMKA_CMD_SYS_GET_MOUSE_POS_SCREEN,
|
||||
UMKA_CMD_SYS_LFN,
|
||||
UMKA_CMD_SEND_SCANCODE,
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data_arg {
|
||||
uint32_t btn_state;
|
||||
int32_t xmoving;
|
||||
int32_t ymoving;
|
||||
int32_t vscroll;
|
||||
int32_t hscroll;
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_set_mouse_data {
|
||||
struct cmd_set_mouse_data_arg arg;
|
||||
struct cmd_set_mouse_data_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn_arg {
|
||||
f70or80_t f70or80;
|
||||
f7080s1arg_t *bufptr;
|
||||
f7080ret_t *r;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn_ret {
|
||||
f7080ret_t status;
|
||||
};
|
||||
|
||||
struct cmd_sys_lfn {
|
||||
struct cmd_sys_lfn_arg arg;
|
||||
struct cmd_sys_lfn_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info_arg {
|
||||
int32_t pid;
|
||||
void *param;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_process_info {
|
||||
struct cmd_sys_process_info_arg arg;
|
||||
struct cmd_sys_process_info_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen_arg {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen_ret {
|
||||
struct point16s pos;
|
||||
};
|
||||
|
||||
struct cmd_sys_get_mouse_pos_screen {
|
||||
struct cmd_sys_get_mouse_pos_screen_arg arg;
|
||||
struct cmd_sys_get_mouse_pos_screen_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep_arg {
|
||||
uint32_t csec;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_sys_csleep {
|
||||
struct cmd_sys_csleep_arg arg;
|
||||
struct cmd_sys_csleep_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window_arg {
|
||||
char *wnd_title;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_wait_for_window {
|
||||
struct cmd_wait_for_window_arg arg;
|
||||
struct cmd_wait_for_window_ret ret;
|
||||
};
|
||||
|
||||
struct cmd_send_scancode_arg {
|
||||
int scancode;
|
||||
};
|
||||
|
||||
struct cmd_send_scancode_ret {
|
||||
char stub;
|
||||
};
|
||||
|
||||
struct cmd_send_scancode {
|
||||
struct cmd_send_scancode_arg arg;
|
||||
struct cmd_send_scancode_ret ret;
|
||||
};
|
||||
|
||||
struct umka_cmd {
|
||||
atomic_int status;
|
||||
uint32_t type;
|
||||
union {
|
||||
// internal funcs
|
||||
struct cmd_set_mouse_data set_mouse_data;
|
||||
struct cmd_send_scancode send_scancode;
|
||||
struct cmd_wait_for_window wait_for_window;
|
||||
// syscalls
|
||||
struct cmd_sys_csleep sys_csleep;
|
||||
struct cmd_sys_process_info sys_process_info;
|
||||
struct cmd_sys_lfn sys_lfn;
|
||||
struct cmd_sys_get_mouse_pos_screen sys_get_mouse_pos_screen;
|
||||
};
|
||||
};
|
||||
|
||||
struct umka_cmd *
|
||||
shell_get_cmd(struct shell_ctx *shell);
|
||||
|
||||
void
|
||||
shell_run_cmd(struct shell_ctx *ctx);
|
||||
|
||||
void
|
||||
shell_clear_cmd(struct umka_cmd *cmd);
|
||||
umka_run_cmd_sync(struct shell_ctx *ctx);
|
||||
|
||||
#endif // SHELL_H_INCLUDED
|
||||
|
15
test/d037/run.us
Normal file
15
test/d037/run.us
Normal file
@@ -0,0 +1,15 @@
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table /data/work/mirror/acpica/tests/aslts/tmp/aml/20201217/nopt/64/arithmetic.aml
|
||||
|
||||
acpi_enable
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
||||
|
||||
acpi_call \MAIN
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
1
test/d037/tags.txt
Normal file
1
test/d037/tags.txt
Normal file
@@ -0,0 +1 @@
|
||||
acpi: aml
|
1
test/d037/timeout.txt
Normal file
1
test/d037/timeout.txt
Normal file
@@ -0,0 +1 @@
|
||||
10s
|
17
test/d039/run.us
Normal file
17
test/d039/run.us
Normal file
@@ -0,0 +1,17 @@
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/008/acpi/dsdt.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt1.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt2.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt3.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt4.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt5.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt6.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt7.dat
|
||||
acpi_preload_table machines/008/acpi/ssdt8.dat
|
||||
|
||||
acpi_enable
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
1
test/d039/tags.txt
Normal file
1
test/d039/tags.txt
Normal file
@@ -0,0 +1 @@
|
||||
acpi: aml
|
1
test/d039/timeout.txt
Normal file
1
test/d039/timeout.txt
Normal file
@@ -0,0 +1 @@
|
||||
10s
|
422
test/d041/ref.log
Normal file
422
test/d041/ref.log
Normal file
@@ -0,0 +1,422 @@
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/unit/acpi/alloc_free.aml
|
||||
table #0
|
||||
|
||||
/> acpi_enable
|
||||
acpi.aml.process_table begin
|
||||
table length 0x0000012C
|
||||
Table signature: 'DSDT'
|
||||
Table length (with header): 0x0000012C
|
||||
Revision: 0x01
|
||||
OEM ID: 'UMKA '
|
||||
OEM Table ID: 'UMKADSDT'
|
||||
OEM Table Revision: 0x00000001
|
||||
|
||||
table/position: [0x00000024]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000025
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: INT5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: ''
|
||||
aml._.get_node_by_name end
|
||||
aml._.data_ref_object begin
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.byte_const begin
|
||||
aml._.byte_const end
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.data_ref_object end
|
||||
aml._.name end
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.object end
|
||||
aml._.term_obj end
|
||||
table/position: [0x0000002B]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x0000002C
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: REF5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: ''
|
||||
aml._.get_node_by_name end
|
||||
aml._.data_ref_object begin
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.byte_const begin
|
||||
aml._.byte_const end
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.data_ref_object end
|
||||
aml._.name end
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.object end
|
||||
aml._.term_obj end
|
||||
table/position: [0x00000032]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.method begin
|
||||
pkg_length: 0x000000EA
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000035
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: AREF
|
||||
aml._.name_string end
|
||||
aml._.attach_node begin
|
||||
aml._.get_node_by_name begin
|
||||
name: ''
|
||||
aml._.get_node_by_name end
|
||||
aml._.attach_node end
|
||||
aml._.method end
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.term_obj end
|
||||
table/position: [0x0000011D]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.method begin
|
||||
pkg_length: 0x0000000E
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x0000011F
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: MAIN
|
||||
aml._.name_string end
|
||||
aml._.attach_node begin
|
||||
aml._.get_node_by_name begin
|
||||
name: ''
|
||||
aml._.get_node_by_name end
|
||||
aml._.attach_node end
|
||||
aml._.method end
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.term_obj end
|
||||
==========ACPI_TREE==========
|
||||
\MAIN Method length:0x00000008 Args:0 serialize:0 sync_level:0
|
||||
\AREF Method length:0x000000E3 Args:1 serialize:0 sync_level:0
|
||||
\REF5 Integer = 0x0000000000000002
|
||||
\INT5 Integer = 0x0000000000000005
|
||||
\_TZ_ Scope
|
||||
\_SI_ Scope
|
||||
\_SB_ Scope
|
||||
\_PR_ Scope
|
||||
\_GPE Scope
|
||||
-----------------------------
|
||||
acpi.aml.process_table end
|
||||
==========ACPI_TREE==========
|
||||
\MAIN Method length:0x00000008 Args:0 serialize:0 sync_level:0
|
||||
\AREF Method length:0x000000E3 Args:1 serialize:0 sync_level:0
|
||||
\REF5 Integer = 0x0000000000000002
|
||||
\INT5 Integer = 0x0000000000000005
|
||||
\_TZ_ Scope
|
||||
\_SI_ Scope
|
||||
\_SB_ Scope
|
||||
\_PR_ Scope
|
||||
\_GPE Scope
|
||||
-----------------------------
|
||||
|
||||
/> acpi_get_node_alloc_cnt
|
||||
nodes allocated: 11
|
||||
/> acpi_get_node_free_cnt
|
||||
nodes freed: 0
|
||||
/> acpi_get_node_cnt
|
||||
nodes in namespace: 11
|
||||
|
||||
/> acpi_call \MAIN
|
||||
acpi.call_name begin
|
||||
aml._.get_node_by_name begin
|
||||
name: '\MAIN'
|
||||
aml._.get_node_by_name end
|
||||
acpi.call_node begin
|
||||
# func name MAIN
|
||||
# bytes 0x46455241
|
||||
# bytes 0x35544E49
|
||||
# bytes 0x0001DE69
|
||||
table/position: [0x00000124]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000124
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: AREF
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'AREF'
|
||||
aml._.get_node_by_name end
|
||||
aml._.method_invocation begin
|
||||
arg_count: 1
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000128
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: INT5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'INT5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000128
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: INT5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'INT5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.term_arg end
|
||||
table/position: [0x0000003A]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.store begin
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x0000003B
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: INT5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'INT5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x0000003B
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: INT5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'INT5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.term_arg end
|
||||
aml._.super_name begin
|
||||
aml._.simple_name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.simple_name end
|
||||
aml._.debug_obj begin
|
||||
aml._.debug_obj end
|
||||
aml._.super_name end
|
||||
aml._.store_table begin
|
||||
types 2 to 19
|
||||
aml._.store_table.integer_to_debug_object begin
|
||||
AML_DBG: 0x0000000000000005
|
||||
aml._.store_table.integer_to_debug_object end
|
||||
aml._.store_table end
|
||||
aml._.store end
|
||||
aml._.term_obj end
|
||||
table/position: [0x00000041]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.store begin
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.arg_obj begin
|
||||
aml._.arg_obj end
|
||||
aml._.term_arg end
|
||||
aml._.super_name begin
|
||||
aml._.simple_name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.simple_name end
|
||||
aml._.debug_obj begin
|
||||
aml._.debug_obj end
|
||||
aml._.super_name end
|
||||
aml._.store_table begin
|
||||
types 2 to 19
|
||||
aml._.store_table.integer_to_debug_object begin
|
||||
AML_DBG: 0x0000000000000005
|
||||
aml._.store_table.integer_to_debug_object end
|
||||
aml._.store_table end
|
||||
aml._.store end
|
||||
aml._.term_obj end
|
||||
table/position: [0x00000045]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.store begin
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000046
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: REF5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'REF5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x00000046
|
||||
aml._.name_path begin
|
||||
aml._.name_path end
|
||||
name_string: REF5
|
||||
aml._.name_string end
|
||||
aml._.get_node_by_name begin
|
||||
name: 'REF5'
|
||||
aml._.get_node_by_name end
|
||||
aml._.term_arg end
|
||||
aml._.super_name begin
|
||||
aml._.simple_name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.simple_name end
|
||||
aml._.debug_obj begin
|
||||
aml._.debug_obj end
|
||||
aml._.super_name end
|
||||
aml._.store_table begin
|
||||
types 2 to 19
|
||||
aml._.store_table.integer_to_debug_object begin
|
||||
AML_DBG: 0x0000000000000002
|
||||
aml._.store_table.integer_to_debug_object end
|
||||
aml._.store_table end
|
||||
aml._.store end
|
||||
aml._.term_obj end
|
||||
table/position: [0x0000004C]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.store begin
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.string begin
|
||||
aml._.string end
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.term_arg end
|
||||
aml._.super_name begin
|
||||
aml._.simple_name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.simple_name end
|
||||
aml._.debug_obj begin
|
||||
aml._.debug_obj end
|
||||
aml._.super_name end
|
||||
aml._.store_table begin
|
||||
types 3 to 19
|
||||
aml._.store_table.string_to_debug_object begin
|
||||
AML_DBG:
|
||||
|
||||
aml._.store_table.string_to_debug_object end
|
||||
aml._.store_table end
|
||||
aml._.store end
|
||||
aml._.term_obj end
|
||||
table/position: [0x00000052]
|
||||
aml._.term_obj begin
|
||||
aml._.object begin
|
||||
aml._.namespace_modifier_obj begin
|
||||
aml._.namespace_modifier_obj end
|
||||
aml._.named_obj begin
|
||||
aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.type1opcode begin
|
||||
aml._.type1opcode end
|
||||
aml._.store begin
|
||||
aml._.term_arg begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.data_object begin
|
||||
aml._.computational_data begin
|
||||
aml._.computational_data end
|
||||
aml._.data_object end
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
error: unknown term_arg: 0x71
|
||||
aml._.term_arg end
|
||||
aml._.super_name begin
|
||||
aml._.simple_name begin
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.simple_name end
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.super_name end
|
||||
aml._.store end
|
||||
aml._.name_string begin
|
||||
aml._.name_string end
|
||||
aml._.term_obj end
|
||||
error: unknown bytes: 0x7168
|
15
test/d041/run.us
Normal file
15
test/d041/run.us
Normal file
@@ -0,0 +1,15 @@
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/unit/acpi/alloc_free.aml
|
||||
|
||||
acpi_enable
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
||||
|
||||
acpi_call \MAIN
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
1
test/d041/tags.txt
Normal file
1
test/d041/tags.txt
Normal file
@@ -0,0 +1 @@
|
||||
acpi: aml
|
1
test/d041/timeout.txt
Normal file
1
test/d041/timeout.txt
Normal file
@@ -0,0 +1 @@
|
||||
10s
|
161961
test/d048/ref.log
Normal file
161961
test/d048/ref.log
Normal file
File diff suppressed because it is too large
Load Diff
23
test/d048/run.us
Normal file
23
test/d048/run.us
Normal file
@@ -0,0 +1,23 @@
|
||||
umka_init
|
||||
pci_set_path machines/013/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
acpi_preload_table machines/013/acpi/dsdt.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt1.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt2.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt3.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt4.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt5.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt6.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt7.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt8.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt9.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt10.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt11.dat
|
||||
acpi_preload_table machines/013/acpi/ssdt12.dat
|
||||
|
||||
acpi_enable
|
||||
|
||||
acpi_get_node_alloc_cnt
|
||||
acpi_get_node_free_cnt
|
||||
acpi_get_node_cnt
|
1
test/d048/tags.txt
Normal file
1
test/d048/tags.txt
Normal file
@@ -0,0 +1 @@
|
||||
acpi: aml
|
1
test/d048/timeout.txt
Normal file
1
test/d048/timeout.txt
Normal file
@@ -0,0 +1 @@
|
||||
10s
|
2
test/machines/011/description.txt
Normal file
2
test/machines/011/description.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
name:
|
||||
owner: Doczom
|
BIN
test/machines/011/pci/0000_00_00.0/config
Normal file
BIN
test/machines/011/pci/0000_00_00.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_01.0/config
Normal file
BIN
test/machines/011/pci/0000_00_01.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_01.1/config
Normal file
BIN
test/machines/011/pci/0000_00_01.1/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_05.0/config
Normal file
BIN
test/machines/011/pci/0000_00_05.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_10.0/config
Normal file
BIN
test/machines/011/pci/0000_00_10.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_11.0/config
Normal file
BIN
test/machines/011/pci/0000_00_11.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_12.0/config
Normal file
BIN
test/machines/011/pci/0000_00_12.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_12.2/config
Normal file
BIN
test/machines/011/pci/0000_00_12.2/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_14.0/config
Normal file
BIN
test/machines/011/pci/0000_00_14.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_14.2/config
Normal file
BIN
test/machines/011/pci/0000_00_14.2/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_14.3/config
Normal file
BIN
test/machines/011/pci/0000_00_14.3/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_14.4/config
Normal file
BIN
test/machines/011/pci/0000_00_14.4/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_14.7/config
Normal file
BIN
test/machines/011/pci/0000_00_14.7/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.0/config
Normal file
BIN
test/machines/011/pci/0000_00_18.0/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.1/config
Normal file
BIN
test/machines/011/pci/0000_00_18.1/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.2/config
Normal file
BIN
test/machines/011/pci/0000_00_18.2/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.3/config
Normal file
BIN
test/machines/011/pci/0000_00_18.3/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.4/config
Normal file
BIN
test/machines/011/pci/0000_00_18.4/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.5/config
Normal file
BIN
test/machines/011/pci/0000_00_18.5/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.6/config
Normal file
BIN
test/machines/011/pci/0000_00_18.6/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_00_18.7/config
Normal file
BIN
test/machines/011/pci/0000_00_18.7/config
Normal file
Binary file not shown.
BIN
test/machines/011/pci/0000_01_00.0/config
Normal file
BIN
test/machines/011/pci/0000_01_00.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/apic.dat
Normal file
BIN
test/machines/013/acpi/apic.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/bgrt.dat
Normal file
BIN
test/machines/013/acpi/bgrt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/dbg2.dat
Normal file
BIN
test/machines/013/acpi/dbg2.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/dbgp.dat
Normal file
BIN
test/machines/013/acpi/dbgp.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/dsdt.dat
Normal file
BIN
test/machines/013/acpi/dsdt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/facp.dat
Normal file
BIN
test/machines/013/acpi/facp.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/facs.dat
Normal file
BIN
test/machines/013/acpi/facs.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/fidt.dat
Normal file
BIN
test/machines/013/acpi/fidt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/fpdt.dat
Normal file
BIN
test/machines/013/acpi/fpdt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/hpet.dat
Normal file
BIN
test/machines/013/acpi/hpet.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/lpit.dat
Normal file
BIN
test/machines/013/acpi/lpit.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/mcfg.dat
Normal file
BIN
test/machines/013/acpi/mcfg.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/msdm.dat
Normal file
BIN
test/machines/013/acpi/msdm.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/nhlt.dat
Normal file
BIN
test/machines/013/acpi/nhlt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/npkt.dat
Normal file
BIN
test/machines/013/acpi/npkt.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/pram.dat
Normal file
BIN
test/machines/013/acpi/pram.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt1.dat
Normal file
BIN
test/machines/013/acpi/ssdt1.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt10.dat
Normal file
BIN
test/machines/013/acpi/ssdt10.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt11.dat
Normal file
BIN
test/machines/013/acpi/ssdt11.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt12.dat
Normal file
BIN
test/machines/013/acpi/ssdt12.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt2.dat
Normal file
BIN
test/machines/013/acpi/ssdt2.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt3.dat
Normal file
BIN
test/machines/013/acpi/ssdt3.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt4.dat
Normal file
BIN
test/machines/013/acpi/ssdt4.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt5.dat
Normal file
BIN
test/machines/013/acpi/ssdt5.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt6.dat
Normal file
BIN
test/machines/013/acpi/ssdt6.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt7.dat
Normal file
BIN
test/machines/013/acpi/ssdt7.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt8.dat
Normal file
BIN
test/machines/013/acpi/ssdt8.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/ssdt9.dat
Normal file
BIN
test/machines/013/acpi/ssdt9.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/tpm2.dat
Normal file
BIN
test/machines/013/acpi/tpm2.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/uefi.dat
Normal file
BIN
test/machines/013/acpi/uefi.dat
Normal file
Binary file not shown.
BIN
test/machines/013/acpi/wdat.dat
Normal file
BIN
test/machines/013/acpi/wdat.dat
Normal file
Binary file not shown.
2
test/machines/013/description.txt
Normal file
2
test/machines/013/description.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
name:
|
||||
owner: Vitaly K
|
BIN
test/machines/013/pci/0000:00:00.0/config
Normal file
BIN
test/machines/013/pci/0000:00:00.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:00.1/config
Normal file
BIN
test/machines/013/pci/0000:00:00.1/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:02.0/config
Normal file
BIN
test/machines/013/pci/0000:00:02.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:0e.0/config
Normal file
BIN
test/machines/013/pci/0000:00:0e.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:0f.0/config
Normal file
BIN
test/machines/013/pci/0000:00:0f.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:14.0/config
Normal file
BIN
test/machines/013/pci/0000:00:14.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:15.0/config
Normal file
BIN
test/machines/013/pci/0000:00:15.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:16.0/config
Normal file
BIN
test/machines/013/pci/0000:00:16.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:16.1/config
Normal file
BIN
test/machines/013/pci/0000:00:16.1/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:16.2/config
Normal file
BIN
test/machines/013/pci/0000:00:16.2/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:16.3/config
Normal file
BIN
test/machines/013/pci/0000:00:16.3/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:17.0/config
Normal file
BIN
test/machines/013/pci/0000:00:17.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:17.1/config
Normal file
BIN
test/machines/013/pci/0000:00:17.1/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:17.2/config
Normal file
BIN
test/machines/013/pci/0000:00:17.2/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:17.3/config
Normal file
BIN
test/machines/013/pci/0000:00:17.3/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:18.0/config
Normal file
BIN
test/machines/013/pci/0000:00:18.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:18.1/config
Normal file
BIN
test/machines/013/pci/0000:00:18.1/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:18.2/config
Normal file
BIN
test/machines/013/pci/0000:00:18.2/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:18.3/config
Normal file
BIN
test/machines/013/pci/0000:00:18.3/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:19.0/config
Normal file
BIN
test/machines/013/pci/0000:00:19.0/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:19.1/config
Normal file
BIN
test/machines/013/pci/0000:00:19.1/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:19.2/config
Normal file
BIN
test/machines/013/pci/0000:00:19.2/config
Normal file
Binary file not shown.
BIN
test/machines/013/pci/0000:00:1b.0/config
Normal file
BIN
test/machines/013/pci/0000:00:1b.0/config
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user