Просмотр исходного кода

+ added function free_linear_addr_mapping to unit go32

git-svn-id: trunk@25786 -
nickysn 11 лет назад
Родитель
Сommit
59f441269e
1 измененных файлов с 20 добавлено и 0 удалено
  1. 20 0
      rtl/go32v2/go32.pp

+ 20 - 0
rtl/go32v2/go32.pp

@@ -94,6 +94,7 @@ interface
     function set_descriptor_access_right(d : word;w : word) : longint;
     function create_code_segment_alias_descriptor(seg : word) : word;
     function get_linear_addr(phys_addr : longint;size : longint) : longint;
+    function free_linear_addr_mapping(linear_addr: dword): boolean;
     function get_segment_limit(d : word) : longint;
     function get_descriptor_access_right(d : word) : longint;
     function get_page_size:longint;
@@ -1101,6 +1102,25 @@ interface
          end;
       end;
 
+    function free_linear_addr_mapping(linear_addr: dword): boolean;
+
+      begin
+         asm
+            pushl %ebx
+            pushl %ecx
+            movl linear_addr,%ebx
+            movl %ebx,%ecx
+            shrl $16,%ebx
+            movl $0x801,%eax
+            int $0x31
+            pushf
+            call test_int31
+            movb %al,__RESULT
+	    popl %ecx
+            popl %ebx
+         end;
+      end;
+
     procedure disable;assembler;
 
       asm