summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZKA/Sources')
-rw-r--r--dev/ZKA/Sources/MP.cxx7
-rw-r--r--dev/ZKA/Sources/PEFCodeManager.cxx6
2 files changed, 6 insertions, 7 deletions
diff --git a/dev/ZKA/Sources/MP.cxx b/dev/ZKA/Sources/MP.cxx
index fcf555cb..b3b62609 100644
--- a/dev/ZKA/Sources/MP.cxx
+++ b/dev/ZKA/Sources/MP.cxx
@@ -15,10 +15,6 @@
///! @brief This file handles multi processing in the Kernel.
///! @brief Multi processing is needed for multi-tasking operations.
-#ifdef __ZKA_AMD64__
-EXTERN Kernel::HAL::Detail::ZKA_TSS cTSS;
-#endif // ifdef __ZKA_AMD64__
-
namespace Kernel
{
/***********************************************************************************/
@@ -104,9 +100,6 @@ namespace Kernel
if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled)
{
-#ifdef __ZKA_AMD64__
- cTSS.fRsp0 = (UIntPtr)stack_ptr;
-#endif // ifdef __ZKA_AMD64__
return mp_register_process(fStack);
}
diff --git a/dev/ZKA/Sources/PEFCodeManager.cxx b/dev/ZKA/Sources/PEFCodeManager.cxx
index a797fd50..526312e0 100644
--- a/dev/ZKA/Sources/PEFCodeManager.cxx
+++ b/dev/ZKA/Sources/PEFCodeManager.cxx
@@ -164,6 +164,12 @@ namespace Kernel
Char* blobRet = new Char[container_header->Size];
+ HAL::mm_update_pte(blobRet, HAL::eFlagsPresent);
+ HAL::mm_update_pte(blobRet, HAL::eFlagsUser);
+
+ if (container_header->Kind != kPefCode)
+ HAL::mm_update_pte(blobRet, HAL::eFlagsRw);
+
rt_copy_memory((VoidPtr)((Char*)blob + sizeof(PEFCommandHeader)), blobRet, container_header->Size);
mm_delete_ke_heap(blob);