kernel/eka/memmodel/epoc/flexible/x86/xsched.cia
changeset 36 538db54a451d
parent 0 a41df078684a
equal deleted inserted replaced
34:f497542af8e4 36:538db54a451d
    50 	asm("mov ecx, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasLinAddr));
    50 	asm("mov ecx, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasLinAddr));
    51 	asm("cmp ecx, 0");
    51 	asm("cmp ecx, 0");
    52 	asm("jz done");
    52 	asm("jz done");
    53 
    53 
    54 	// restore alias...
    54 	// restore alias...
       
    55 	// Disable interrupts so setting the alias pde is must complete before
       
    56 	// Mmu::RemoveAliasesForPageTable() can execute the alias IPI and vice 
       
    57 	// versa.
       
    58 	asm("cli ");					// turn off interrupts
    55 	asm("mov edx, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasPdePtr));
    59 	asm("mov edx, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasPdePtr));
    56 	asm("mov eax, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasPde));
    60 	asm("mov eax, [ebx+%0]": : "i"_FOFF(DMemModelThread,iAliasPde));
    57 	asm("mov [edx], eax");
    61 	asm("mov [edx], eax");
    58 	asm("invlpg [ecx]");
    62 	asm("invlpg [ecx]");
       
    63 	asm("sti ");					// turn on interrupts
    59 
    64 
    60 	asm("done:");
    65 	asm("done:");
    61 	asm("ret");
    66 	asm("ret");
    62 	};
    67 	};
    63 
    68