Rev 4700 | Rev 5343 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4700 | Rev 5130 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2012. All rights reserved. ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
4 | ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 4700 $ |
8 | $Revision: 5130 $ |
9 | 9 | ||
10 | 10 | ||
Line 102... | Line 102... | ||
102 | mov esp, [ebx+APPDATA.saved_esp] |
102 | mov esp, [ebx+APPDATA.saved_esp] |
103 | ; set new thread io-map |
103 | ; set new thread io-map |
104 | Mov dword [page_tabs+((tss._io_map_0 and -4096) shr 10)],eax,[ebx+APPDATA.io_map] |
104 | Mov dword [page_tabs+((tss._io_map_0 and -4096) shr 10)],eax,[ebx+APPDATA.io_map] |
105 | Mov dword [page_tabs+((tss._io_map_1 and -4096) shr 10)],eax,[ebx+APPDATA.io_map+4] |
105 | Mov dword [page_tabs+((tss._io_map_1 and -4096) shr 10)],eax,[ebx+APPDATA.io_map+4] |
106 | ; set new thread memory-map |
106 | ; set new thread memory-map |
107 | mov ecx, APPDATA.dir_table |
107 | mov eax, [ebx+APPDATA.process] |
108 | mov eax, [ebx+ecx] ;offset>0x7F |
- | |
109 | cmp eax, [esi+ecx] ;offset>0x7F |
108 | cmp eax, [current_process] |
110 | je @f |
109 | je @f |
- | 110 | mov [current_process], eax |
|
- | 111 | mov eax, [eax+PROC.pdt_0_phys] |
|
111 | mov cr3, eax |
112 | mov cr3, eax |
112 | @@: |
113 | @@: |
113 | ; set tss.esp0 |
114 | ; set tss.esp0 |
Line 114... | Line 115... | ||
114 | 115 | ||
Line 140... | Line 141... | ||
140 | ; set debug-registers, if it's necessary |
141 | ; set debug-registers, if it's necessary |
141 | test byte[ebx+APPDATA.dbg_state], 1 |
142 | test byte[ebx+APPDATA.dbg_state], 1 |
142 | jz @f |
143 | jz @f |
143 | xor eax, eax |
144 | xor eax, eax |
144 | mov dr6, eax |
145 | mov dr6, eax |
145 | lea esi, [ebx+ecx+APPDATA.dbg_regs-APPDATA.dir_table];offset>0x7F |
146 | lea esi, [ebx+APPDATA.dbg_regs] |
146 | cld |
147 | cld |
147 | macro lodsReg [reg] { |
148 | macro lodsReg [reg] { |
148 | lodsd |
149 | lodsd |
149 | mov reg, eax |
150 | mov reg, eax |
150 | } lodsReg dr0, dr1, dr2, dr3, dr7 |
151 | } lodsReg dr0, dr1, dr2, dr3, dr7 |