15,10 → 15,7 |
|
|
include 'proc32.inc' |
|
;include 'system.inc' |
include 'main.inc' |
|
include 'imports.inc' |
|
FORCE_MMX equ 0 ;set to 1 to force use mmx or |
30,6 → 27,9 |
|
|
OS_BASE equ 0x80000000 |
SLOT_BASE equ (OS_BASE+0x0080000) |
TASK_COUNT equ (OS_BASE+0x0003004) |
CURRENT_TASK equ (OS_BASE+0x0003000) |
|
CAPS_SSE2 equ 26 |
PG_SW equ 0x003 |
334,9 → 334,9 |
test eax, PCM_OUT+PCM_STATIC |
jnz .fail |
.test_ok: |
|
call GetPid |
mov ebx, eax |
mov ebx, [CURRENT_TASK] ;hack: direct accsess |
shl ebx, 5 ;to kernel data |
mov ebx, [CURRENT_TASK+ebx+4] |
mov eax, STREAM_SIZE |
|
call CreateObject |
390,11 → 390,9 |
shr ebx, 12 |
mov [ring_pages], ebx |
|
stdcall CreateRingBuffer, eax, PG_SW |
add eax, eax ;double ring size |
stdcall AllocKernelSpace, eax |
|
if 0 |
stdcall AllocKernelSpace, eax |
end if |
mov edi, [str] |
mov ecx, [ring_size] |
mov [edi+STREAM.in_base], eax |
409,7 → 407,6 |
add eax, ecx |
mov [edi+STREAM.in_top], eax |
|
if 0 |
mov ebx, [ring_pages] |
stdcall AllocPages, ebx |
mov edi, [str] |
424,7 → 421,7 |
pop eax |
add ebx, [ring_size] |
call CommitPages ;double mapped |
end if |
|
jmp .out_buff |
.static: |
mov ecx, [size] |