Get rid of init.inc.
Now it is possible because I split it to hpet and acpi files.
This commit is contained in:
parent
116ef5ca33
commit
46683929de
15
shell.c
15
shell.c
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
umka_shell: User-Mode KolibriOS developer tools, the shell
|
UMKa - User-Mode KolibriOS developer tools
|
||||||
|
umka_shell - interactive shell
|
||||||
Copyright (C) 2018--2020 Ivan Baravy <dunkaist@gmail.com>
|
Copyright (C) 2018--2020 Ivan Baravy <dunkaist@gmail.com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -119,7 +120,8 @@ convert_f70_file_attr(uint32_t attr, char s[KF_ATTR_CNT+1]) {
|
|||||||
static void
|
static void
|
||||||
print_f70_status(f7080ret_t *r, int use_ebx) {
|
print_f70_status(f7080ret_t *r, int use_ebx) {
|
||||||
fprintf(fout, "status = %d %s", r->status, get_f70_status_name(r->status));
|
fprintf(fout, "status = %d %s", r->status, get_f70_status_name(r->status));
|
||||||
if (use_ebx && (r->status == ERROR_SUCCESS || r->status == ERROR_END_OF_FILE))
|
if (use_ebx &&
|
||||||
|
(r->status == ERROR_SUCCESS || r->status == ERROR_END_OF_FILE))
|
||||||
fprintf(fout, ", count = %d", r->count);
|
fprintf(fout, ", count = %d", r->count);
|
||||||
fputc('\n', fout);
|
fputc('\n', fout);
|
||||||
}
|
}
|
||||||
@ -791,7 +793,8 @@ shell_get_window_colors(int argc, char **argv) {
|
|||||||
fprintf(fout, "0x%.8" PRIx32 " grab_text\n", colors.grab_text);
|
fprintf(fout, "0x%.8" PRIx32 " grab_text\n", colors.grab_text);
|
||||||
fprintf(fout, "0x%.8" PRIx32 " work\n", colors.work);
|
fprintf(fout, "0x%.8" PRIx32 " work\n", colors.work);
|
||||||
fprintf(fout, "0x%.8" PRIx32 " work_button\n", colors.work_button);
|
fprintf(fout, "0x%.8" PRIx32 " work_button\n", colors.work_button);
|
||||||
fprintf(fout, "0x%.8" PRIx32 " work_button_text\n", colors.work_button_text);
|
fprintf(fout, "0x%.8" PRIx32 " work_button_text\n",
|
||||||
|
colors.work_button_text);
|
||||||
fprintf(fout, "0x%.8" PRIx32 " work_text\n", colors.work_text);
|
fprintf(fout, "0x%.8" PRIx32 " work_text\n", colors.work_text);
|
||||||
fprintf(fout, "0x%.8" PRIx32 " work_graph\n", colors.work_graph);
|
fprintf(fout, "0x%.8" PRIx32 " work_graph\n", colors.work_graph);
|
||||||
}
|
}
|
||||||
@ -1317,7 +1320,8 @@ shell_cd(int argc, char **argv) {
|
|||||||
static void
|
static void
|
||||||
ls_range(f7080s1arg_t *fX0, f70or80_t f70or80) {
|
ls_range(f7080s1arg_t *fX0, f70or80_t f70or80) {
|
||||||
f7080ret_t r;
|
f7080ret_t r;
|
||||||
size_t bdfe_len = (fX0->encoding == CP866) ? BDFE_LEN_CP866 : BDFE_LEN_UNICODE;
|
size_t bdfe_len = (fX0->encoding == CP866) ? BDFE_LEN_CP866 :
|
||||||
|
BDFE_LEN_UNICODE;
|
||||||
uint32_t requested = fX0->size;
|
uint32_t requested = fX0->size;
|
||||||
if (fX0->size > MAX_DIRENTS_TO_READ) {
|
if (fX0->size > MAX_DIRENTS_TO_READ) {
|
||||||
fX0->size = MAX_DIRENTS_TO_READ;
|
fX0->size = MAX_DIRENTS_TO_READ;
|
||||||
@ -1469,7 +1473,8 @@ shell_ls(int argc, char **argv, const char *usage, f70or80_t f70or80) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t bdfe_len = (readdir_enc <= CP866) ? BDFE_LEN_CP866 : BDFE_LEN_UNICODE;
|
size_t bdfe_len = (readdir_enc <= CP866) ? BDFE_LEN_CP866 :
|
||||||
|
BDFE_LEN_UNICODE;
|
||||||
f7080s1info_t *dir = (f7080s1info_t*)malloc(sizeof(f7080s1info_t) +
|
f7080s1info_t *dir = (f7080s1info_t*)malloc(sizeof(f7080s1info_t) +
|
||||||
bdfe_len * MAX_DIRENTS_TO_READ);
|
bdfe_len * MAX_DIRENTS_TO_READ);
|
||||||
f7080s1arg_t fX0 = {.sf = 1, .offset = from_idx, .encoding = readdir_enc,
|
f7080s1arg_t fX0 = {.sf = 1, .offset = from_idx, .encoding = readdir_enc,
|
||||||
|
104
umka.asm
104
umka.asm
@ -67,6 +67,8 @@ public scheduler_current as 'kos_scheduler_current'
|
|||||||
public eth_input as 'kos_eth_input'
|
public eth_input as 'kos_eth_input'
|
||||||
public net_buff_alloc as 'kos_net_buff_alloc'
|
public net_buff_alloc as 'kos_net_buff_alloc'
|
||||||
|
|
||||||
|
public mem_block_list
|
||||||
|
|
||||||
macro cli {
|
macro cli {
|
||||||
pushfd
|
pushfd
|
||||||
bts dword[esp], 21
|
bts dword[esp], 21
|
||||||
@ -91,10 +93,6 @@ macro int n {
|
|||||||
end if
|
end if
|
||||||
}
|
}
|
||||||
|
|
||||||
MAX_PRIORITY = 0 ; highest, used for kernel tasks
|
|
||||||
USER_PRIORITY = 1 ; default
|
|
||||||
IDLE_PRIORITY = 2 ; lowest, only IDLE thread goes here
|
|
||||||
|
|
||||||
section '.text' executable align 32
|
section '.text' executable align 32
|
||||||
|
|
||||||
coverage_begin:
|
coverage_begin:
|
||||||
@ -109,17 +107,29 @@ include 'proc32.inc'
|
|||||||
include 'struct.inc'
|
include 'struct.inc'
|
||||||
macro BOOT_LO a {}
|
macro BOOT_LO a {}
|
||||||
macro BOOT a {}
|
macro BOOT a {}
|
||||||
window_data equ twer
|
window_data equ __pew01
|
||||||
CURRENT_TASK equ twer2
|
CURRENT_TASK equ __pew02
|
||||||
TASK_BASE equ twer3
|
TASK_BASE equ __pew03
|
||||||
TASK_DATA equ twer4
|
TASK_DATA equ __pew04
|
||||||
TASK_EVENT equ twer5
|
TASK_EVENT equ __pew05
|
||||||
CDDataBuf equ twer6
|
CDDataBuf equ __pew06
|
||||||
idts equ twer7
|
idts equ __pew07
|
||||||
WIN_STACK equ twer8
|
WIN_STACK equ __pew08
|
||||||
WIN_POS equ twer9
|
WIN_POS equ __pew09
|
||||||
TASK_COUNT equ gyads
|
FDD_BUFF equ __pew10
|
||||||
SLOT_BASE equ gfdskh
|
WIN_TEMP_XY equ __pew11
|
||||||
|
KEY_COUNT equ __pew12
|
||||||
|
KEY_BUFF equ __pew13
|
||||||
|
BTN_COUNT equ __pew14
|
||||||
|
BTN_BUFF equ __pew15
|
||||||
|
BTN_ADDR equ __pew16
|
||||||
|
MEM_AMOUNT equ __pew17
|
||||||
|
SYS_SHUTDOWN equ __pew18
|
||||||
|
TASK_COUNT equ __pew19
|
||||||
|
SLOT_BASE equ __pew20
|
||||||
|
sys_proc equ __pew21
|
||||||
|
VGABasePtr equ __pew22
|
||||||
|
;HEAP_BASE equ __pew01
|
||||||
;macro OS_BASE [x] {
|
;macro OS_BASE [x] {
|
||||||
; OS_BASE equ os_base
|
; OS_BASE equ os_base
|
||||||
;}
|
;}
|
||||||
@ -127,36 +137,14 @@ include 'const.inc'
|
|||||||
restore window_data
|
restore window_data
|
||||||
restore CURRENT_TASK
|
restore CURRENT_TASK
|
||||||
restore TASK_BASE,TASK_DATA,TASK_EVENT,CDDataBuf,idts,WIN_STACK,WIN_POS
|
restore TASK_BASE,TASK_DATA,TASK_EVENT,CDDataBuf,idts,WIN_STACK,WIN_POS
|
||||||
|
restore FDD_BUFF,WIN_TEMP_XY,KEY_COUNT,KEY_BUFF,BTN_COUNT,BTN_BUFF,BTN_ADDR
|
||||||
|
restore MEM_AMOUNT,SYS_SHUTDOWN,SLOT_BASE,sys_proc,VGABasePtr
|
||||||
|
;restore HEAP_BASE
|
||||||
restore TASK_COUNT
|
restore TASK_COUNT
|
||||||
restore SLOT_BASE
|
|
||||||
purge BOOT_LO,BOOT
|
purge BOOT_LO,BOOT
|
||||||
|
|
||||||
LFB_BASE = lfb_base
|
LFB_BASE = lfb_base
|
||||||
|
|
||||||
;window_data = os_base + 0x00001000
|
|
||||||
;CURRENT_TASK = os_base + 0x00003000
|
|
||||||
;TASK_COUNT = os_base + 0x00003004
|
|
||||||
;TASK_BASE = os_base + 0x00003010
|
|
||||||
;TASK_DATA = os_base + 0x00003020
|
|
||||||
;TASK_EVENT = os_base + 0x00003020
|
|
||||||
;CDDataBuf = os_base + 0x00005000
|
|
||||||
;idts = os_base + 0x0000B100
|
|
||||||
;WIN_STACK = os_base + 0x0000C000
|
|
||||||
;WIN_POS = os_base + 0x0000C400
|
|
||||||
FDD_BUFF = os_base + 0x0000D000
|
|
||||||
WIN_TEMP_XY = os_base + 0x0000F300
|
|
||||||
KEY_COUNT = os_base + 0x0000F400
|
|
||||||
KEY_BUFF = os_base + 0x0000F401 ; 120*2 + 2*2 = 244 bytes, actually 255 bytes
|
|
||||||
BTN_COUNT = os_base + 0x0000F500
|
|
||||||
BTN_BUFF = os_base + 0x0000F501
|
|
||||||
BTN_ADDR = os_base + 0x0000FE88
|
|
||||||
MEM_AMOUNT = os_base + 0x0000FE8C
|
|
||||||
SYS_SHUTDOWN = os_base + 0x0000FF00
|
|
||||||
TASK_ACTIVATE = os_base + 0x0000FF01
|
|
||||||
sys_proc = os_base + 0x0006F000
|
|
||||||
SLOT_BASE = os_base + 0x00080000
|
|
||||||
VGABasePtr = os_base + 0x000A0000
|
|
||||||
UPPER_KERNEL_PAGES = os_base + 0x00400000
|
|
||||||
HEAP_BASE = os_base + 0x00800000
|
HEAP_BASE = os_base + 0x00800000
|
||||||
|
|
||||||
macro save_ring3_context {
|
macro save_ring3_context {
|
||||||
@ -223,6 +211,7 @@ include 'core/string.inc'
|
|||||||
;include 'core/v86.inc'
|
;include 'core/v86.inc'
|
||||||
include 'core/irq.inc'
|
include 'core/irq.inc'
|
||||||
include 'core/apic.inc'
|
include 'core/apic.inc'
|
||||||
|
include 'core/hpet.inc'
|
||||||
include 'core/timers.inc'
|
include 'core/timers.inc'
|
||||||
include 'core/clipboard.inc'
|
include 'core/clipboard.inc'
|
||||||
include 'core/slab.inc'
|
include 'core/slab.inc'
|
||||||
@ -341,6 +330,11 @@ proc umka_init c uses ebx esi edi ebp
|
|||||||
add eax, PROC.thr_list
|
add eax, PROC.thr_list
|
||||||
list_init eax
|
list_init eax
|
||||||
|
|
||||||
|
; xor eax, eax
|
||||||
|
; mov edi, lfb_base
|
||||||
|
; mov ecx, MAX_SCREEN_WIDTH*MAX_SCREEN_HEIGHT
|
||||||
|
; rep stosd
|
||||||
|
|
||||||
mov [BOOT.bpp], 32
|
mov [BOOT.bpp], 32
|
||||||
mov [BOOT.x_res], UMKA_DISPLAY_WIDTH
|
mov [BOOT.x_res], UMKA_DISPLAY_WIDTH
|
||||||
mov [BOOT.y_res], UMKA_DISPLAY_HEIGHT
|
mov [BOOT.y_res], UMKA_DISPLAY_HEIGHT
|
||||||
@ -648,6 +642,12 @@ pci_api:
|
|||||||
sys_resize_app_memory:
|
sys_resize_app_memory:
|
||||||
f68:
|
f68:
|
||||||
v86_irq:
|
v86_irq:
|
||||||
|
test_cpu:
|
||||||
|
acpi_locate:
|
||||||
|
init_BIOS32:
|
||||||
|
mem_test:
|
||||||
|
init_mem:
|
||||||
|
init_page_map:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
alloc_pages:
|
alloc_pages:
|
||||||
@ -660,10 +660,8 @@ map_memEx:
|
|||||||
ret 20
|
ret 20
|
||||||
|
|
||||||
|
|
||||||
HEAP_BASE equ
|
sys_msg_board equ __pew8
|
||||||
include 'init.inc'
|
delay_ms equ __pew9
|
||||||
sys_msg_board equ __pew
|
|
||||||
delay_ms equ __pew8
|
|
||||||
|
|
||||||
include fix pew
|
include fix pew
|
||||||
macro pew x {}
|
macro pew x {}
|
||||||
@ -734,9 +732,25 @@ CDDataBuf: rd 0x1840
|
|||||||
idts rd 0x3c0
|
idts rd 0x3c0
|
||||||
WIN_STACK rw 0x200
|
WIN_STACK rw 0x200
|
||||||
WIN_POS rw 0x600
|
WIN_POS rw 0x600
|
||||||
|
FDD_BUFF rb 0x2300
|
||||||
|
WIN_TEMP_XY rb 0x100
|
||||||
|
KEY_COUNT db ?
|
||||||
|
KEY_BUFF rb 255 ; 120*2 + 2*2 = 244 bytes, actually 255 bytes
|
||||||
|
BTN_COUNT db ?
|
||||||
|
BTN_BUFF rd 0x261
|
||||||
|
BTN_ADDR dd ?
|
||||||
|
MEM_AMOUNT rd 0x1d
|
||||||
|
SYS_SHUTDOWN db ?
|
||||||
|
sys_proc rd 0x800
|
||||||
|
SLOT_BASE: rd 0x8000
|
||||||
|
VGABasePtr rb 640*480
|
||||||
|
UPPER_KERNEL_PAGES = os_base + 0x00400000
|
||||||
|
;HEAP_BASE rb UMKA_MEMORY_BYTES - (HEAP_BASE-os_base+4096*sizeof.MEM_BLOCK)
|
||||||
rb 0x1000000
|
rb 0x1000000
|
||||||
BOOT_LO boot_data
|
|
||||||
BOOT boot_data
|
BOOT boot_data
|
||||||
|
virtual at BOOT
|
||||||
|
BOOT_LO boot_data
|
||||||
|
end virtual
|
||||||
align 4096
|
align 4096
|
||||||
lfb_base rd MAX_SCREEN_WIDTH*MAX_SCREEN_HEIGHT
|
lfb_base rd MAX_SCREEN_WIDTH*MAX_SCREEN_HEIGHT
|
||||||
align 4096
|
align 4096
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
umka_fuse: User-Mode KolibriOS developer tools, the filesystem
|
UMKa - User-Mode KolibriOS developer tools
|
||||||
|
umka_fuse - FUSE <-> KolibriOS FS calls converter
|
||||||
Copyright (C) 2018--2020 Ivan Baravy <dunkaist@gmail.com>
|
Copyright (C) 2018--2020 Ivan Baravy <dunkaist@gmail.com>
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -94,7 +94,9 @@ main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void *app_base = mmap((void*)0x000000, 16*0x100000, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
void *app_base = mmap((void*)0x000000, 16*0x100000, PROT_READ | PROT_WRITE |
|
||||||
|
PROT_EXEC, MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS,
|
||||||
|
-1, 0);
|
||||||
if (app_base == MAP_FAILED) {
|
if (app_base == MAP_FAILED) {
|
||||||
perror("mmap failed");
|
perror("mmap failed");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
Loading…
Reference in New Issue
Block a user