Add new shell commands: dump_win_map and set (variable).
This commit is contained in:
parent
72570a7bc3
commit
18c6f4922c
2
makefile
2
makefile
@ -29,7 +29,7 @@ umka_os: umka_os.o umka.o shell.o lodepng.o vdisk.o vnet.o trace.o trace_lbr.o \
|
||||
$(CC) $(LDFLAGS_32) $^ -o $@ -static -T umka.ld
|
||||
|
||||
umka.o umka.fas: umka.asm
|
||||
INCLUDE="$(KOLIBRIOS)/kernel/trunk;$(KOLIBRIOS)/programs/develop/libraries/libcrash/trunk" \
|
||||
INCLUDE="$(KOLIBRIOS)/kernel/trunk;$(KOLIBRIOS)/programs/develop/libraries/libcrash/hash" \
|
||||
$(FASM) $< umka.o -s umka.fas -m 1234567
|
||||
|
||||
shell.o: shell.c
|
||||
|
125
shell.c
125
shell.c
@ -193,9 +193,11 @@ get_last_dir(const char *path) {
|
||||
static void
|
||||
prompt() {
|
||||
if (cur_dir_changed) {
|
||||
COVERAGE_ON();
|
||||
umka_sys_get_cwd(cur_dir, PATH_MAX);
|
||||
COVERAGE_OFF();
|
||||
if (umka_initialized) {
|
||||
COVERAGE_ON();
|
||||
umka_sys_get_cwd(cur_dir, PATH_MAX);
|
||||
COVERAGE_OFF();
|
||||
}
|
||||
last_dir = get_last_dir(cur_dir);
|
||||
cur_dir_changed = false;
|
||||
}
|
||||
@ -236,6 +238,51 @@ split_args(char *s, char **argv) {
|
||||
return argc;
|
||||
}
|
||||
|
||||
static void
|
||||
shell_umka_init(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: umka_init";
|
||||
(void)argv;
|
||||
if (argc < 0) {
|
||||
fputs(usage, fout);
|
||||
return;
|
||||
}
|
||||
COVERAGE_ON();
|
||||
umka_init();
|
||||
COVERAGE_OFF();
|
||||
}
|
||||
|
||||
static void
|
||||
shell_umka_set_boot_params(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: umka_set_boot_params [--x_res <num>] [--y_res <num>]\n"
|
||||
" --x_res <num> screen width\n"
|
||||
" --y_res <num> screen height";
|
||||
|
||||
argc -= 1;
|
||||
argv += 1;
|
||||
|
||||
while (argc) {
|
||||
if (!strcmp(argv[0], "--x_res") && argc > 1) {
|
||||
kos_boot.x_res = strtoul(argv[1], NULL, 0);
|
||||
kos_boot.pitch = kos_boot.x_res * 4; // assume 32bpp
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
} else if (!strcmp(argv[0], "--y_res") && argc > 1) {
|
||||
kos_boot.y_res = strtoul(argv[1], NULL, 0);
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
} else {
|
||||
printf("bad option: %s\n", argv[0]);
|
||||
puts(usage);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
shell_i40(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
@ -497,6 +544,23 @@ shell_dump_win_pos(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
shell_dump_win_map(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: dump_win_map";
|
||||
(void)argv;
|
||||
if (argc < 0) {
|
||||
fputs(usage, fout);
|
||||
return;
|
||||
}
|
||||
for (size_t y = 0; y < kos_display.height; y++) {
|
||||
for (size_t x = 0; x < kos_display.width; x++) {
|
||||
fputc(kos_display.win_map[y * kos_display.width + x] + '0', fout);
|
||||
}
|
||||
fputc('\n', fout);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
shell_dump_appdata(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
@ -577,6 +641,55 @@ shell_dump_taskdata(int argc, char **argv) {
|
||||
fprintf(fout, "cpu_usage: %" PRIu32 "\n", t->cpu_usage);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_switch_to_thread(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: switch_to_thread <tid>\n"
|
||||
" <tid> thread id to switch to";
|
||||
if (argc != 2) {
|
||||
fputs(usage, fout);
|
||||
return;
|
||||
}
|
||||
uint8_t tid = strtoul(argv[1], NULL, 0);
|
||||
kos_current_slot_idx = tid;
|
||||
kos_task_base = kos_task_table + tid;
|
||||
kos_current_slot = kos_slot_base + tid;
|
||||
}
|
||||
|
||||
static void
|
||||
shell_set(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: set <var> <value>\n"
|
||||
" <var> variable to set\n"
|
||||
" <value> decimal or hex value";
|
||||
if (argc != 3) {
|
||||
fputs(usage, fout);
|
||||
return;
|
||||
}
|
||||
const char *var = argv[1];
|
||||
size_t value = strtoul(argv[2], NULL, 0);
|
||||
if (!strcmp(var, "redraw_background")) {
|
||||
kos_redraw_background = value;
|
||||
} else {
|
||||
printf("bad option: %s\n", argv[0]);
|
||||
puts(usage);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
shell_new_sys_thread(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
"usage: new_sys_thread";
|
||||
if (!argc) {
|
||||
fputs(usage, fout);
|
||||
return;
|
||||
}
|
||||
(void)argv;
|
||||
size_t tid = umka_new_sys_threads(0, NULL, NULL);
|
||||
fprintf(fout, "tid: %u\n", tid);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_mouse_move(int argc, char **argv) {
|
||||
const char *usage = \
|
||||
@ -2580,6 +2693,8 @@ shell_bg_unmap(int argc, char **argv) {
|
||||
static void shell_help(int argc, char **argv);
|
||||
|
||||
func_table_t shell_cmds[] = {
|
||||
{ "umka_init", shell_umka_init },
|
||||
{ "umka_set_boot_params", shell_umka_set_boot_params },
|
||||
{ "acpi_call", shell_acpi_call },
|
||||
{ "acpi_enable", shell_acpi_enable },
|
||||
{ "acpi_get_usage", shell_acpi_get_usage },
|
||||
@ -2598,6 +2713,7 @@ func_table_t shell_cmds[] = {
|
||||
{ "blit_bitmap", shell_blit_bitmap },
|
||||
{ "button", shell_button },
|
||||
{ "cd", shell_cd },
|
||||
{ "set", shell_set },
|
||||
{ "disk_add", shell_disk_add },
|
||||
{ "disk_del", shell_disk_del },
|
||||
{ "display_number", shell_display_number },
|
||||
@ -2608,6 +2724,7 @@ func_table_t shell_cmds[] = {
|
||||
{ "dump_taskdata", shell_dump_taskdata },
|
||||
{ "dump_win_pos", shell_dump_win_pos },
|
||||
{ "dump_win_stack", shell_dump_win_stack },
|
||||
{ "dump_win_map", shell_dump_win_map },
|
||||
{ "exec", shell_exec },
|
||||
{ "get_font_size", shell_get_font_size },
|
||||
{ "get_font_smoothing", shell_get_font_smoothing },
|
||||
@ -2677,6 +2794,8 @@ func_table_t shell_cmds[] = {
|
||||
{ "stat80", shell_stat80 },
|
||||
{ "window_redraw", shell_window_redraw },
|
||||
{ "write_text", shell_write_text },
|
||||
{ "switch_to_thread", shell_switch_to_thread },
|
||||
{ "new_sys_thread", shell_new_sys_thread },
|
||||
};
|
||||
|
||||
static void
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> disk_add ../img/xfs_short_dir_i8.img hd1 -c 0
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
disk_add ../img/xfs_short_dir_i8.img hd1 -c 0
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> ls70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k.img hd0 -c 0
|
||||
ls70 /hd0/1/sf_empty
|
||||
ls70 /hd0/1/sf
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
# zero length
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
# zero length
|
||||
read70 /hd0/1/no_hole 0 0 -b
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> stat70 /hd0/1/
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
stat70 /hd0/1/
|
||||
stat70 /hd0/1/hole_begin
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> pwd
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
pwd
|
||||
cd /hd0
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
# hole begin
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
# hole begin
|
||||
# zero length
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> stat70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
stat70 /hd0/1/sf_empty
|
||||
stat70 /hd0/1/sf_empty/.
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype0_s4k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> ls70 /hd0/1/sf
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype0_s4k_b4k_n8k.img hd0 -c 0
|
||||
ls70 /hd0/1/sf
|
||||
ls70 /hd0/1/block
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k_xattr.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> ls70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k_xattr.img hd0 -c 0
|
||||
ls70 /hd0/1/sf_empty
|
||||
ls70 /hd0/1/sf
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k_xattr.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> stat70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_ftype0_s05k_b2k_n8k_xattr.img hd0 -c 0
|
||||
stat70 /hd0/1/sf_empty
|
||||
stat70 /hd0/1/sf_empty/.
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_unicode.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_unicode.img hd0 -c 0
|
||||
|
||||
stat80 /hd0/1/dir0
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v5_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> ls70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v5_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
ls70 /hd0/1/sf_empty
|
||||
ls70 /hd0/1/sf
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v5_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
/> stat70 /hd0/1/sf_empty
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v5_ftype1_s05k_b2k_n8k.img hd0 -c 0
|
||||
stat70 /hd0/1/sf_empty
|
||||
stat70 /hd0/1/sf_empty/.
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v5_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
# hole begin
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v5_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
# hole begin
|
||||
# zero length
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v5_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
# zero length
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v5_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
# zero length
|
||||
read70 /hd0/1/no_hole 0 0 -b
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
#disk_add ../img/kolibri.img rd -c 0
|
||||
/> ramdisk_init ../img/kolibri.img
|
||||
/rd/1: fat
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
#disk_add ../img/kolibri.img rd -c 0
|
||||
ramdisk_init ../img/kolibri.img
|
||||
set_skin /sys/DEFAULT.SKN
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_files_s05k_b4k_n8k.img hd0 -c 0
|
||||
|
||||
read70 /hd0/1/4GiB_plus 0x3ff4 11 -b
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/jfs.img hd0 -c 0
|
||||
/hd0/1: ???
|
||||
/> disk_del hd0
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/jfs.img hd0 -c 0
|
||||
disk_del hd0
|
||||
disk_add ../img/xfs_borg_bit.img hd0 -c 0
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> disk_add ../img/xfs_v4_btrees_l2.img hd0 -c 0
|
||||
/hd0/1: xfs
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
disk_add ../img/xfs_v4_btrees_l2.img hd0 -c 0
|
||||
|
||||
ls80 /hd0/1/dir_btree_l2 -f 0 -c 1
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> i40 18 16
|
||||
eax = 00040000 262144 262144
|
||||
ebx = 00000010 16 16
|
||||
|
@ -1 +1,2 @@
|
||||
umka_init
|
||||
i40 18 16
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/000/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/000/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/001/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/001/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/002/pci
|
||||
|
||||
# some _ADR's are methods with memory access
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/002/pci
|
||||
|
||||
# some _ADR's are methods with memory access
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/003/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/003/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/004/acpi/DSDT
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/004/acpi/DSDT
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/unit/acpi/scope_empty.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/unit/acpi/scope_empty.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/005/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/005/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/unit/acpi/debug_object.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/unit/acpi/debug_object.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/unit/acpi/field.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/unit/acpi/field.aml
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/006/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/006/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> pci_set_path machines/007/pci
|
||||
/> acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
pci_set_path machines/007/pci
|
||||
acpi_set_usage 2
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/008/acpi/dsdt.dat
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/008/acpi/dsdt.dat
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
/> acpi_set_usage 1
|
||||
|
||||
/> acpi_preload_table machines/010/acpi/dsdt.dat
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
acpi_set_usage 1
|
||||
|
||||
acpi_preload_table machines/010/acpi/dsdt.dat
|
||||
|
@ -5,9 +5,9 @@ table #0
|
||||
|
||||
/> acpi_enable
|
||||
acpi.aml.process_table begin
|
||||
table length 0x00000032
|
||||
table length 0x0000012C
|
||||
Table signature: 'DSDT'
|
||||
Table length (with header): 0x00000032
|
||||
Table length (with header): 0x0000012C
|
||||
Revision: 0x01
|
||||
OEM ID: 'UMKA '
|
||||
OEM Table ID: 'UMKADSDT'
|
||||
@ -44,13 +44,64 @@ 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: 0x00000006
|
||||
pkg_length: 0x000000EA
|
||||
aml._.name_string begin
|
||||
aml._.name_string begin again
|
||||
offset: 0x0000002D
|
||||
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
|
||||
@ -65,7 +116,9 @@ aml._.named_obj end
|
||||
aml._.object end
|
||||
aml._.term_obj end
|
||||
==========ACPI_TREE==========
|
||||
\MAIN Method length:0x00000000 Args:0 serialize:0 sync_level:0
|
||||
\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
|
||||
@ -75,7 +128,9 @@ aml._.term_obj end
|
||||
-----------------------------
|
||||
acpi.aml.process_table end
|
||||
==========ACPI_TREE==========
|
||||
\MAIN Method length:0x00000000 Args:0 serialize:0 sync_level:0
|
||||
\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
|
||||
@ -85,11 +140,11 @@ acpi.aml.process_table end
|
||||
-----------------------------
|
||||
|
||||
/> acpi_get_node_alloc_cnt
|
||||
nodes allocated: 9
|
||||
nodes allocated: 11
|
||||
/> acpi_get_node_free_cnt
|
||||
nodes freed: 0
|
||||
/> acpi_get_node_cnt
|
||||
nodes in namespace: 9
|
||||
nodes in namespace: 11
|
||||
|
||||
/> acpi_call \MAIN
|
||||
acpi.call_name begin
|
||||
@ -98,17 +153,270 @@ name: '\MAIN'
|
||||
aml._.get_node_by_name end
|
||||
acpi.call_node begin
|
||||
# func name MAIN
|
||||
# bytes 0x00000000
|
||||
# bytes 0x00000000
|
||||
# bytes 0xDF590000
|
||||
acpi.call_node end
|
||||
acpi.call_name end
|
||||
calling acpi method: '\MAIN'
|
||||
acpi method returned
|
||||
# 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:
|
||||
|
||||
/> acpi_get_node_alloc_cnt
|
||||
nodes allocated: 9
|
||||
/> acpi_get_node_free_cnt
|
||||
nodes freed: 0
|
||||
/> acpi_get_node_cnt
|
||||
nodes in namespace: 9
|
||||
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
|
||||
|
@ -1,3 +1,4 @@
|
||||
/> umka_init
|
||||
#pci_set_path machines/011/pci
|
||||
/> acpi_set_usage 1
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
umka_init
|
||||
#pci_set_path machines/011/pci
|
||||
acpi_set_usage 1
|
||||
|
||||
|
166
test/044_#f01_#draw_winmap.ref.log
Normal file
166
test/044_#f01_#draw_winmap.ref.log
Normal file
@ -0,0 +1,166 @@
|
||||
/> umka_set_boot_params --x_res 44 --y_res 44
|
||||
/> umka_init
|
||||
/> ramdisk_init ../img/kolibri.img
|
||||
/rd/1: fat
|
||||
/> set_skin /sys/DEFAULT.SKN
|
||||
status: 0
|
||||
|
||||
/> window_redraw 1
|
||||
/> draw_window 2 10 4 10 0x000088 1 1 1 0 1 4 hello
|
||||
/> window_redraw 2
|
||||
|
||||
/> set_window_caption hi_there 0
|
||||
|
||||
/> new_sys_thread
|
||||
tid: 3
|
||||
/> switch_to_thread 3
|
||||
|
||||
/> window_redraw 1
|
||||
/> draw_window 4 5 8 5 0x000088 1 1 1 0 1 4 hello
|
||||
/> window_redraw 2
|
||||
|
||||
/> dump_win_map
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11223333332221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
|
||||
/> set redraw_background 0
|
||||
/> move_window 6 8 5 5
|
||||
/> dump_win_map
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
|
||||
/> set redraw_background 0
|
||||
/> move_window 6 10 5 5
|
||||
/> dump_win_map
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222222222221111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11222233333321111111111111111111111111111111
|
||||
11111133333311111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
11111111111111111111111111111111111111111111
|
||||
|
||||
/> scrot 044_#f01_#draw_winmap.out.png
|
||||
|
||||
/> disk_del rd
|
BIN
test/044_#f01_#draw_winmap.ref.png
Normal file
BIN
test/044_#f01_#draw_winmap.ref.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 159 B |
31
test/044_#f01_#draw_winmap.t
Normal file
31
test/044_#f01_#draw_winmap.t
Normal file
@ -0,0 +1,31 @@
|
||||
umka_set_boot_params --x_res 44 --y_res 44
|
||||
umka_init
|
||||
ramdisk_init ../img/kolibri.img
|
||||
set_skin /sys/DEFAULT.SKN
|
||||
|
||||
window_redraw 1
|
||||
draw_window 2 10 4 10 0x000088 1 1 1 0 1 4 hello
|
||||
window_redraw 2
|
||||
|
||||
set_window_caption hi_there 0
|
||||
|
||||
new_sys_thread
|
||||
switch_to_thread 3
|
||||
|
||||
window_redraw 1
|
||||
draw_window 4 5 8 5 0x000088 1 1 1 0 1 4 hello
|
||||
window_redraw 2
|
||||
|
||||
dump_win_map
|
||||
|
||||
set redraw_background 0
|
||||
move_window 6 8 5 5
|
||||
dump_win_map
|
||||
|
||||
set redraw_background 0
|
||||
move_window 6 10 5 5
|
||||
dump_win_map
|
||||
|
||||
scrot 044_#f01_#draw_winmap.out.png
|
||||
|
||||
disk_del rd
|
27
umka.asm
27
umka.asm
@ -10,8 +10,6 @@ UMKA_FUSE = 2
|
||||
UMKA_OS = 3
|
||||
|
||||
UMKA_MEMORY_BYTES = 256 SHL 20
|
||||
UMKA_DISPLAY_WIDTH = 400
|
||||
UMKA_DISPLAY_HEIGHT = 300
|
||||
|
||||
public disk_add
|
||||
public disk_del
|
||||
@ -41,6 +39,7 @@ public TASK_TABLE as 'kos_task_table'
|
||||
public TASK_BASE as 'kos_task_base'
|
||||
public TASK_DATA as 'kos_task_data'
|
||||
public SLOT_BASE as 'kos_slot_base'
|
||||
public window_data as 'kos_window_data'
|
||||
|
||||
public WIN_STACK as 'kos_win_stack'
|
||||
public WIN_POS as 'kos_win_pos'
|
||||
@ -67,7 +66,7 @@ public draw_data
|
||||
public img_background
|
||||
public mem_BACKGROUND
|
||||
public sys_background
|
||||
public REDRAW_BACKGROUND
|
||||
public REDRAW_BACKGROUND as 'kos_redraw_background'
|
||||
public new_sys_threads as 'kos_new_sys_threads'
|
||||
public osloop as 'kos_osloop'
|
||||
public set_mouse_data as 'kos_set_mouse_data'
|
||||
@ -78,6 +77,11 @@ public net_buff_alloc as 'kos_net_buff_alloc'
|
||||
public mem_block_list
|
||||
public pci_root
|
||||
|
||||
public window._.set_screen as 'kos_window_set_screen'
|
||||
public _display as 'kos_display'
|
||||
|
||||
public BOOT as 'kos_boot'
|
||||
|
||||
macro cli {
|
||||
pushfd
|
||||
bts dword[esp], 21
|
||||
@ -279,6 +283,7 @@ include 'acpi/acpi.inc'
|
||||
|
||||
include 'unpacker.inc'
|
||||
|
||||
LIBCRASH_CTX_LEN = 0x500 ; FIXME
|
||||
include 'sha3.asm'
|
||||
|
||||
; TODO: stdcall attribute in umka.h
|
||||
@ -308,6 +313,7 @@ proc umka._.check_alignment
|
||||
endp
|
||||
|
||||
proc umka_init c uses ebx esi edi ebp
|
||||
mov [umka_initialized], 1
|
||||
call umka._.check_alignment
|
||||
|
||||
mov edi, endofcode
|
||||
@ -362,10 +368,6 @@ proc umka_init c uses ebx esi edi ebp
|
||||
add eax, PROC.thr_list
|
||||
list_init eax
|
||||
|
||||
mov [BOOT.bpp], 32
|
||||
mov [BOOT.x_res], UMKA_DISPLAY_WIDTH
|
||||
mov [BOOT.y_res], UMKA_DISPLAY_HEIGHT
|
||||
mov [BOOT.pitch], UMKA_DISPLAY_WIDTH*4
|
||||
mov [BOOT.lfb], LFB_BASE
|
||||
call init_video
|
||||
|
||||
@ -719,8 +721,15 @@ coverage_end:
|
||||
section '.data.aligned65k' writeable align 65536
|
||||
public umka_tool
|
||||
umka_tool dd ?
|
||||
public umka_initialized
|
||||
umka_initialized dd 0
|
||||
fpu_owner dd ?
|
||||
|
||||
BOOT boot_data
|
||||
virtual at BOOT
|
||||
BOOT_LO boot_data
|
||||
end virtual
|
||||
|
||||
uglobal
|
||||
align 64
|
||||
os_base: rb PAGE_SIZE
|
||||
@ -772,10 +781,6 @@ ide_channel8_mutex MUTEX
|
||||
|
||||
lfb_base rd MAX_SCREEN_WIDTH*MAX_SCREEN_HEIGHT
|
||||
|
||||
BOOT boot_data
|
||||
virtual at BOOT
|
||||
BOOT_LO boot_data
|
||||
end virtual
|
||||
align 4096
|
||||
cur_dir:
|
||||
.encoding rb 1
|
||||
|
131
umka.h
131
umka.h
@ -43,6 +43,20 @@ typedef struct {
|
||||
_Static_assert(sizeof(process_information_t) == 0x400,
|
||||
"must be 0x400 bytes long");
|
||||
|
||||
typedef struct {
|
||||
box_t box;
|
||||
uint32_t cl_workarea;
|
||||
uint32_t cl_titlebar;
|
||||
uint32_t cl_frames;
|
||||
uint8_t z_modif;
|
||||
uint8_t fl_wstate;
|
||||
uint8_t fl_wdrawn;
|
||||
uint8_t fl_redraw;
|
||||
} __attribute__((packed)) wdata_t;
|
||||
|
||||
_Static_assert(sizeof(wdata_t) == 0x20,
|
||||
"must be 0x20 bytes long");
|
||||
|
||||
typedef struct {
|
||||
uint32_t frame;
|
||||
uint32_t grab;
|
||||
@ -97,6 +111,8 @@ typedef struct {
|
||||
uint32_t count;
|
||||
} mutex_t;
|
||||
|
||||
typedef mutex_t rwsem_t;
|
||||
|
||||
typedef struct {
|
||||
uint32_t flags;
|
||||
uint32_t sector_size;
|
||||
@ -412,17 +428,23 @@ umka_mouse_move(int lbheld, int mbheld, int rbheld, int xabs, int32_t xmoving,
|
||||
__attribute__((__stdcall__)) net_buff_t *
|
||||
kos_net_buff_alloc(size_t size);
|
||||
|
||||
static inline void
|
||||
static inline size_t
|
||||
umka_new_sys_threads(uint32_t flags, void (*entry)(), void *stack) {
|
||||
size_t tid;
|
||||
__asm__ __inline__ __volatile__ (
|
||||
"pushad;"
|
||||
"push ebx;"
|
||||
"push esi;"
|
||||
"push edi;"
|
||||
"call kos_new_sys_threads;"
|
||||
"popad"
|
||||
:
|
||||
"pop edi;"
|
||||
"pop esi;"
|
||||
"pop ebx"
|
||||
: "=a"(tid)
|
||||
: "b"(flags),
|
||||
"c"(entry),
|
||||
"d"(stack)
|
||||
: "memory", "cc");
|
||||
return tid;
|
||||
}
|
||||
|
||||
static inline void
|
||||
@ -482,6 +504,101 @@ kos_net_add_device(net_device_t *dev) {
|
||||
return dev_num;
|
||||
}
|
||||
|
||||
__attribute__((__stdcall__)) void
|
||||
kos_window_set_screen(ssize_t left, ssize_t top, ssize_t right, ssize_t bottom,
|
||||
ssize_t proc);
|
||||
|
||||
typedef struct {
|
||||
int32_t x;
|
||||
int32_t y;
|
||||
size_t width;
|
||||
size_t height;
|
||||
size_t bits_per_pixel;
|
||||
size_t vrefresh;
|
||||
void *current_lfb;
|
||||
size_t lfb_pitch;
|
||||
|
||||
rwsem_t win_map_lock;
|
||||
uint8_t *win_map;
|
||||
size_t win_map_pitch;
|
||||
size_t win_map_size;
|
||||
|
||||
void *modes;
|
||||
void *ddev;
|
||||
void *connector;
|
||||
void *crtc;
|
||||
|
||||
void *cr_list_next;
|
||||
void *cr_list_prev;
|
||||
|
||||
void *cursor;
|
||||
|
||||
void *init_cursor;
|
||||
void *select_cursor;
|
||||
void *show_cursor;
|
||||
void *move_cursor;
|
||||
void *restore_cursor;
|
||||
void *disable_mouse;
|
||||
size_t mask_seqno;
|
||||
void *check_mouse;
|
||||
void *check_m_pixel;
|
||||
|
||||
size_t bytes_per_pixel;
|
||||
} __attribute__((packed)) display_t;
|
||||
|
||||
extern display_t kos_display;
|
||||
|
||||
typedef struct {
|
||||
uint64_t addr;
|
||||
uint64_t size;
|
||||
uint32_t type;
|
||||
} e820entry_t;
|
||||
|
||||
#define MAX_MEMMAP_BLOCKS 32
|
||||
|
||||
typedef struct {
|
||||
uint8_t bpp; // bits per pixel
|
||||
uint16_t pitch; // scanline length
|
||||
uint8_t pad1[5];
|
||||
uint16_t vesa_mode;
|
||||
uint16_t x_res;
|
||||
uint16_t y_res;
|
||||
uint8_t pad2[6];
|
||||
uint32_t bank_switch; // Vesa 1.2 pm bank switch
|
||||
void *lfb; // Vesa 2.0 LFB address
|
||||
uint8_t mtrr; // 0 or 1: enable MTRR graphics acceleration
|
||||
uint8_t launcher_start; // 0 or 1: start the first app (right now it's
|
||||
// LAUNCHER) after kernel is loaded
|
||||
uint8_t debug_print; // if nonzero, duplicates debug output to the screen
|
||||
uint8_t dma; // DMA write: 1=yes, 2=no
|
||||
uint8_t pci_data[8];
|
||||
uint8_t pad3[8];
|
||||
uint8_t shutdown_type; // see sysfn 18.9
|
||||
uint8_t pad4[15];
|
||||
uint32_t apm_entry; // entry point of APM BIOS
|
||||
uint16_t apm_version; // BCD
|
||||
uint16_t apm_flags;
|
||||
uint8_t pad5[8];
|
||||
uint16_t apm_code_32;
|
||||
uint16_t apm_code_16;
|
||||
uint16_t apm_data_16;
|
||||
uint8_t rd_load_from; // Device to load ramdisk from, RD_LOAD_FROM_*
|
||||
uint8_t pad6[1];
|
||||
uint16_t kernel_restart;
|
||||
uint16_t sys_disk; // Device to mount on /sys/, see loader_doc.txt for details
|
||||
void *acpi_rsdp;
|
||||
char syspath[0x17];
|
||||
void *devicesdat_data;
|
||||
size_t devicesdat_size;
|
||||
uint8_t bios_hd_cnt; // number of BIOS hard disks
|
||||
uint8_t bios_hd[0x80]; // BIOS hard disks
|
||||
size_t memmap_block_cnt; // available physical memory map: number of blocks
|
||||
e820entry_t memmap_blocks[MAX_MEMMAP_BLOCKS];
|
||||
uint8_t acpi_usage;
|
||||
} __attribute__((packed)) boot_data_t;
|
||||
|
||||
extern boot_data_t kos_boot;
|
||||
|
||||
void
|
||||
umka_cli(void);
|
||||
|
||||
@ -622,10 +739,16 @@ _Static_assert(sizeof(taskdata_t) == 32, "must be 0x20 bytes long");
|
||||
extern appdata_t *kos_scheduler_current[NR_SCHED_QUEUES];
|
||||
|
||||
extern uint32_t umka_tool;
|
||||
extern uint32_t umka_initialized;
|
||||
extern uint8_t kos_redraw_background;
|
||||
extern size_t kos_task_count;
|
||||
extern taskdata_t *kos_task_base;
|
||||
extern wdata_t kos_window_data[];
|
||||
extern taskdata_t kos_task_table[];
|
||||
extern appdata_t kos_slot_base[];
|
||||
extern uint32_t kos_current_process;
|
||||
extern appdata_t *kos_current_slot;
|
||||
extern uint32_t kos_current_slot_idx;
|
||||
extern void umka_do_change_task(appdata_t *new);
|
||||
extern void scheduler_add_thread(void);
|
||||
extern void find_next_task(void);
|
||||
|
72
umka_shell.c
72
umka_shell.c
@ -29,6 +29,9 @@
|
||||
#include "umka.h"
|
||||
#include "trace.h"
|
||||
|
||||
#define UMKA_DEFAULT_DISPLAY_WIDTH 400
|
||||
#define UMKA_DEFAULT_DISPLAY_HEIGHT 300
|
||||
|
||||
int
|
||||
main(int argc, char **argv) {
|
||||
umka_tool = UMKA_SHELL;
|
||||
@ -39,48 +42,53 @@ main(int argc, char **argv) {
|
||||
char outfile[PATH_MAX] = {0};
|
||||
FILE *fin = stdin, *fout = stdout;
|
||||
|
||||
int opt;
|
||||
optind = 1;
|
||||
if (argc > 1 && *argv[optind] != '-') {
|
||||
infile = argv[optind++];
|
||||
strncpy(outfile, infile, PATH_MAX-2); // ".t" is shorter than ".out"
|
||||
char *last_dot = strrchr(outfile, '.');
|
||||
if (!last_dot) {
|
||||
printf("test file must have '.t' suffix\n");
|
||||
return 1;
|
||||
}
|
||||
strcpy(last_dot, ".out.log");
|
||||
}
|
||||
kos_boot.bpp = 32;
|
||||
kos_boot.x_res = UMKA_DEFAULT_DISPLAY_WIDTH;
|
||||
kos_boot.y_res = UMKA_DEFAULT_DISPLAY_HEIGHT;
|
||||
kos_boot.pitch = UMKA_DEFAULT_DISPLAY_WIDTH*4; // 32bpp
|
||||
|
||||
if (infile) {
|
||||
fin = fopen(infile, "r");
|
||||
}
|
||||
if (*outfile) {
|
||||
fout = fopen(outfile, "w");
|
||||
}
|
||||
if (!fin || !fout) {
|
||||
printf("can't open in/out files\n");
|
||||
return 1;
|
||||
}
|
||||
// skip 'umka_shell'
|
||||
argc -= 1;
|
||||
argv += 1;
|
||||
|
||||
while ((opt = getopt(argc, argv, "c")) != -1) {
|
||||
switch (opt) {
|
||||
case 'c':
|
||||
while (argc) {
|
||||
if (!strcmp(argv[0], "-c")) {
|
||||
coverage = 1;
|
||||
break;
|
||||
default:
|
||||
argc -= 1;
|
||||
argv += 1;
|
||||
continue;
|
||||
} else if (!strcmp(argv[0], "-i") && argc > 1) {
|
||||
infile = argv[1];
|
||||
strncpy(outfile, infile, PATH_MAX-2); // ".t" is shorter than ".out"
|
||||
char *last_dot = strrchr(outfile, '.');
|
||||
if (!last_dot) {
|
||||
printf("[!] test file must have '.t' suffix\n");
|
||||
exit(1);
|
||||
}
|
||||
strcpy(last_dot, ".out.log");
|
||||
fin = fopen(infile, "r");
|
||||
if (!fin) {
|
||||
perror("[!] can't open file");
|
||||
exit(1);
|
||||
}
|
||||
fout = fopen(outfile, "w");
|
||||
if (!fout) {
|
||||
perror("[!] can't open file");
|
||||
exit(1);
|
||||
}
|
||||
argc -= 2;
|
||||
argv += 2;
|
||||
continue;
|
||||
} else {
|
||||
printf("bad option: %s\n", argv[0]);
|
||||
puts(usage);
|
||||
return 1;
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (coverage)
|
||||
trace_begin();
|
||||
|
||||
COVERAGE_ON();
|
||||
umka_init();
|
||||
COVERAGE_OFF();
|
||||
|
||||
run_test(fin, fout, 1);
|
||||
|
||||
if (coverage)
|
||||
|
Loading…
Reference in New Issue
Block a user