Rev 427 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 427 | Rev 430 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | ; $Revision$ |
|
Line 1... | Line 2... | ||
1 | align 4 |
2 | |
2 | proc alloc_page |
3 | align 4 |
Line 3... | Line 4... | ||
3 | 4 | proc alloc_page |
|
Line 542... | Line 543... | ||
542 | jnz .fail ;óñòàíîâëåí çàðåçåðâèðîâàííûé áèò |
543 | test eax, 8 |
543 | ;â òàáëèöàõ ñòðàíèö. äîáàâëåíî â P4/Xeon |
544 | jnz .fail ;óñòàíîâëåí çàðåçåðâèðîâàííûé áèò |
544 | 545 | ;â òàáëèöàõ ñòðàíèö. äîáàâëåíî â P4/Xeon |
|
Line 545... | Line 546... | ||
545 | ;ïîïûòêà çàïèñè â çàùèù¸ííóþ ñòðàíèöó ÿäðà |
546 | |
- | 547 | ;ïîïûòêà çàïèñè â çàùèù¸ííóþ ñòðàíèöó ÿäðà |
|
- | 548 | ||
- | 549 | cmp ebx, tss._io_map_0 |
|
- | 550 | jb .fail |
|
- | 551 | ||
- | 552 | cmp ebx, tss._io_map_0+8192 |
|
- | 553 | jae .fail |
|
- | 554 | ||
- | 555 | ; io permission map |
|
- | 556 | ; copy-on-write protection |
|
- | 557 | ||
- | 558 | call alloc_page |
|
- | 559 | and eax, eax |
|
- | 560 | jz .fail |
|
- | 561 | ||
- | 562 | push eax |
|
- | 563 | stdcall map_page,[ebp-4],eax,dword PG_SW |
|
- | 564 | pop eax |
|
- | 565 | mov edi, [.err_addr] |
|
- | 566 | and edi, -4096 |
|
- | 567 | lea esi, [edi+(not tss._io_map_0)+1]; -tss._io_map_0 |
|
- | 568 | ||
- | 569 | mov ebx, esi |
|
- | 570 | shr ebx, 12 |
|
- | 571 | mov edx, [current_slot] |
|
- | 572 | or eax, PG_SW |
|
- | 573 | mov [edx+APPDATA.io_map+ebx*4], eax |
|
- | 574 | ||
- | 575 | add esi, [default_io_map] |
|
- | 576 | mov ecx, 4096/4 |
|
- | 577 | cld |
|
- | 578 | rep movsd |
|
- | 579 | jmp .exit |
|
- | 580 | ||
546 | ;íå îáðàáàòûâàåì. Îøèáêà |
581 | |
Line 547... | Line 582... | ||
547 | 582 | ;íå îáðàáàòûâàåì. Îøèáêà |
|
548 | .core_tabs: |
583 | |
549 | .fail: |
584 | .core_tabs: |