Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 740 → Rev 741

/kernel/trunk/core/exports.inc
33,6 → 33,7
szGetPgAddr db 'GetPgAddr',0
szMapPage db 'MapPage',0
szMapSpace db 'MapSpace',0
szMapIoMem db 'MapIoMem',0
szCommitPages db 'CommitPages',0
szReleasePages db 'ReleasePages',0
 
101,6 → 102,7
dd szFreePage , free_page
dd szMapPage , map_page ;stdcall
dd szMapSpace , map_space
dd szMapIoMem , map_io_mem ;stdcall
dd szGetPgAddr , get_pg_addr
dd szCommitPages , commit_pages ;not implemented
dd szReleasePages , release_pages
/kernel/trunk/core/memory.inc
143,6 → 143,45
ret
endp
 
proc map_io_mem stdcall, base:dword, size:dword, flags:dword
 
push ebx
push edi
mov eax, [size]
add eax, 4095
and eax, -4096
mov [size], eax
stdcall alloc_kernel_space, eax
test eax, eax
jz .fail
push eax
 
mov edi, 0x1000
mov ebx, eax
mov ecx,[size]
mov edx, [base]
shr eax, 12
shr ecx, 12
and edx, -4096
or edx, [flags]
@@:
mov [page_tabs+eax*4], edx
invlpg [ebx]
inc eax
add ebx, edi
add edx, edi
loop @B
 
pop eax
mov edx, [base]
and edx, 4095
add eax, edx
.fail:
pop edi
pop ebx
ret
endp
 
; param
; eax= page base + page flags
; ebx= liear address
150,7 → 189,7
 
align 4
commit_pages:
 
push edi
test ecx, ecx
jz .fail
 
171,6 → 210,7
jnz @B
mov [pg_data.pg_mutex],ecx
.fail:
pop edi
ret
 
 
/kernel/trunk/core/peload.inc
275,6 → 275,7
free_kernel_space, 'FreeKernelSpace', \ ; stdcall
kernel_alloc, 'KernelAlloc', \ ; stdcall
kernel_free, 'KernelFree', \ ; stdcall
map_io_mem, 'MapIoMem', \ ; stdcall
pci_api, 'PciApi', \
pci_read32, 'PciRead32', \ ; stdcall
reg_service, 'RegService', \
/kernel/trunk/drivers/ati2d.asm
344,27 → 344,14
 
align 4
proc init_r200
 
stdcall AllocKernelSpace, dword 0x10000
stdcall PciRead32, [bus], [devfn], dword 0x18
stdcall MapIoMem,eax,0x10000,(PG_SW+PG_NOCACHE)
test eax, eax
jz .fail
 
mov [ati_io], eax
mov edi, eax
 
stdcall PciRead32, [bus], [devfn], dword 0x18
and eax, 0xFFFF0000
mov esi, eax
 
mov edi, [ati_io]
mov edx, 16
@@:
stdcall MapPage,edi,esi,PG_SW+PG_NOCACHE
add edi, 0x1000
add esi, 0x1000
dec edx
jnz @B
 
mov edi, [ati_io]
mov dword [edi+RD_RB3D_CNTL], 0
call engRestore
 
397,25 → 384,13
align 4
proc init_r500
 
stdcall AllocKernelSpace, dword 0x10000
stdcall PciRead32, [bus], [devfn], dword 0x18
stdcall MapIoMem,eax,0x10000,(PG_SW+PG_NOCACHE)
test eax, eax
jz .fail
 
mov [ati_io], eax
 
stdcall PciRead32, [bus], [devfn], dword 0x18
and eax, 0xFFFF0000
mov esi, eax
 
mov edi, [ati_io]
mov edx, 16
@@:
stdcall MapPage,edi,esi,PG_SW+PG_NOCACHE
add edi, 0x1000
add esi, 0x1000
dec edx
jnz @B
 
mov [fnSelect], r500_SelectCursor
mov [fnSet], r500_SetCursor
 
/kernel/trunk/drivers/imports.inc
35,6 → 35,7
FreePage,\
MapPage,\
MapSpace,\
MapIoMem,\
GetPgAddr,\
CommitPages,\
ReleasePages,\
/kernel/trunk/drivers/sound.asm
802,25 → 802,13
 
align 4
proc set_ICH4
stdcall AllocKernelSpace, dword 0x2000
mov edi, eax
mov ebx, [ctrl.codec_mem_base]
and ebx, -4096
stdcall MapPage, edi,ebx,PG_SW+PG_NOCACHE
mov ebx, [ctrl.codec_mem_base]
and ebx, 4095
add ebx, edi
mov [ctrl.codec_mem_base], ebx
add edi, 0x1000
 
mov ebx, [ctrl.ctrl_mem_base]
and ebx, -4096
stdcall MapPage, edi, ebx,PG_SW+PG_NOCACHE
mov ebx, [ctrl.ctrl_mem_base]
and ebx, 4095
add ebx, edi
mov [ctrl.ctrl_mem_base], ebx
stdcall MapIoMem,[ctrl.codec_mem_base],0x1000,PG_SW+PG_NOCACHE
mov [ctrl.codec_mem_base], eax
 
stdcall MapIoMem,[ctrl.ctrl_mem_base],0x1000,PG_SW+PG_NOCACHE
mov [ctrl.ctrl_mem_base], eax
 
mov [ctrl.codec_read16], codec_mem_r16 ;virtual
mov [ctrl.codec_write16], codec_mem_w16 ;virtual