Browse Source

Process: Store kernel compatibility version during loading

Yuri Kunde Schlesner 11 years ago
parent
commit
a12a30c9e0
2 changed files with 7 additions and 3 deletions
  1. 5 3
      src/core/hle/kernel/process.cpp
  2. 2 0
      src/core/hle/kernel/process.h

+ 5 - 3
src/core/hle/kernel/process.cpp

@@ -92,9 +92,11 @@ void Process::ParseKernelCaps(const u32* kernel_caps, size_t len) {
             mapping.unk_flag = false;
         } else if ((type & 0xFE0) == 0xFC0) { // 0x01FF
             // Kernel version
-            int minor = descriptor & 0xFF;
-            int major = (descriptor >> 8) & 0xFF;
-            LOG_INFO(Loader, "ExHeader kernel version ignored: %d.%d", major, minor);
+            kernel_version = descriptor & 0xFFFF;
+
+            int minor = kernel_version & 0xFF;
+            int major = (kernel_version >> 8) & 0xFF;
+            LOG_DEBUG(Loader, "ExHeader kernel version: %d.%d", major, minor);
         } else {
             LOG_ERROR(Loader, "Unhandled kernel caps descriptor: 0x%08X", descriptor);
         }

+ 2 - 0
src/core/hle/kernel/process.h

@@ -104,6 +104,8 @@ public:
     /// processes access to specific I/O regions and device memory.
     boost::container::static_vector<AddressMapping, 8> address_mappings;
     ProcessFlags flags;
+    /// Kernel compatibility version for this process
+    u16 kernel_version = 0;
 
     /// The id of this process
     u32 process_id = next_process_id++;