79,6 → 79,7 |
tss0 equ (tss0_l-gdts) |
app_code equ (3+app_code_l-gdts) |
app_data equ (3+app_data_l-gdts) |
app_tls equ (3+tls_data_l-gdts) |
pci_code_sel equ (pci_code_32-gdts) |
pci_data_sel equ (pci_data_32-gdts) |
|
283,12 → 284,13 |
high_code: |
mov ax,os_stack |
mov bx,app_data |
mov cx, app_tls |
mov ss,ax |
add esp, OS_BASE |
|
mov ds,bx |
mov es,bx |
mov fs,bx |
mov fs, cx |
mov gs,bx |
|
bt [cpu_caps], CAPS_PGE |
711,6 → 713,7 |
mov dword [SLOT_BASE+256+APPDATA.bk_obj], ebx |
|
mov dword [SLOT_BASE+256+APPDATA.cur_dir], sysdir_path |
mov dword [SLOT_BASE+256+APPDATA.tls_base], eax |
|
; task list |
mov [CURRENT_TASK],dword 1 |
1907,6 → 1910,14 |
|
sys_end: |
|
mov ecx, [current_slot] |
mov eax, [ecx+APPDATA.tls_base] |
test eax, eax |
jz @F |
|
stdcall user_free, eax |
@@: |
|
mov eax,[TASK_BASE] |
mov [eax+TASKDATA.state], 3 ; terminate this program |
|