Subversion Repositories Kolibri OS

Rev

Rev 10002 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 10002 Rev 10051
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line -...
7
 
-
 
8
$Revision: 10002 $
-
 
Line 9... Line 7...
9
 
7
 
10
 
8
 
Line 11... Line 9...
11
align 4
9
align 4
Line 595... Line 593...
595
                                  ;incorrect address in program
593
                                  ;incorrect address in program
Line 596... Line 594...
596
 
594
 
597
        mov     eax, [page_tabs + ebx*4]
595
        mov     eax, [page_tabs + ebx*4]
598
        test    eax, 2
596
        test    eax, 2
599
        jz      .fail             ;address is not reserved for usage. Error
597
        jz      .fail             ;address is not reserved for usage. Error
600
                                  
598
 
601
.alloc:
599
.alloc:
602
        call    alloc_page
600
        call    alloc_page
603
        test    eax, eax
601
        test    eax, eax
Line 654... Line 652...
654
        test    eax, PG_READ
652
        test    eax, PG_READ
655
        jz      .fail   ;page does not present
653
        jz      .fail   ;page does not present
Line 656... Line 654...
656
 
654
 
657
        test    eax, 12 ;U/S (+below)
655
        test    eax, 12 ;U/S (+below)
658
        jnz     .fail   ;application requested kernel memory
656
        jnz     .fail   ;application requested kernel memory
659
                        
657
 
660
       ;test    eax, 8
658
       ;test    eax, 8
661
       ;jnz     .fail   ;the reserved bit is set in page tables. Added in P4/Xeon
659
       ;jnz     .fail   ;the reserved bit is set in page tables. Added in P4/Xeon
Line 662... Line 660...
662
                        
660
 
Line 663... Line 661...
663
 
661
 
664
;an attempt to write to a protected kernel page
662
;an attempt to write to a protected kernel page