Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8329 → Rev 8328

/kernel/trunk/kernel.asm
1747,7 → 1747,12
jnz .shift
 
; if given memory address belongs to kernel then error
stdcall is_region_userspace, ebx, 128
push ebx
mov eax, ebx
mov ebx, 128
call is_region_userspace
pop ebx
test eax, eax
jz .addr_error
 
mov eax, keymap
1760,7 → 1765,12
dec ecx
jnz .alt
 
stdcall is_region_userspace, ebx, 128
push ebx
mov eax, ebx
mov ebx, 128
call is_region_userspace
pop ebx
test eax, eax
jz .addr_error
 
mov eax, keymap_shift
1773,7 → 1783,12
dec ecx
jne .country
 
stdcall is_region_userspace, ebx, 128
push ebx
mov eax, ebx
mov ebx, 128
call is_region_userspace
pop ebx
test eax, eax
jz .addr_error
 
mov eax, keymap_alt
2453,7 → 2468,10
;------------------------------------------------------------------------------
sysfn_getversion: ; 18.13 = get kernel ID and version
; if given memory address belongs to kernel then error
stdcall is_region_userspace, ecx, version_end-version_inf
mov eax, ecx
mov ebx, version_end-version_inf
call is_region_userspace
test eax, eax
jz .addr_error
 
mov edi, ecx
3164,7 → 3182,12
; +30 dword PID , process idenfification number
;
; if given memory address belongs to kernel then error
stdcall is_region_userspace, ebx, 0x4C
push ebx
mov eax, ebx
mov ebx, 0x4C
call is_region_userspace
pop ebx
test eax, eax
jz .addr_error
 
cmp ecx, -1 ; who am I ?
5678,27 → 5701,18
mov [esp + 32], dword -1
ret
 
align 4
; check if given memory region lays in lower 2gb (userspace memory) or not
align 4
proc is_region_userspace stdcall, base:dword, len:dword
; in:
; base = base address of region
; len = lenght of region
; out: ZF = 1 if region in userspace memory
; ZF = 0 otherwise
push eax ebx
mov eax, [base]
is_region_userspace:
; in: eax = base
; ebx = len
; out: eax = 1 if region in userspace memory, 0 if not
push esi edi ecx
 
cmp eax, OS_BASE
ja @f
 
mov ebx, 0xFFFFFFFF
sub ebx, [base]
inc ebx
cmp [len], ebx
ja @f
 
add eax, [len]
add eax, ebx
cmp eax, OS_BASE
ja @f
 
5707,10 → 5721,8
@@:
xor eax, eax
.ret:
test eax, eax
pop ebx eax
pop ecx edi esi
ret
endp
 
if ~ lang eq sp
diff16 "end of .text segment",0,$