From 8c3ecfc6210e7bbde230da7c90c2b23a7e0d0178 Mon Sep 17 00:00:00 2001 From: plutoo Date: Thu, 21 Aug 2014 20:41:51 +0200 Subject: [PATCH] os: Added functions for getting Firm/Kernel version. --- libctru/include/3ds/os.h | 6 ++++++ libctru/source/os.c | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/libctru/include/3ds/os.h b/libctru/include/3ds/os.h index 60a97b4..84a25f9 100644 --- a/libctru/include/3ds/os.h +++ b/libctru/include/3ds/os.h @@ -1,7 +1,13 @@ #ifndef OS_H #define OS_H +typedef struct { + u8 major, minor, revision; +} sysVersion; + u32 osConvertVirtToPhys(u32 vaddr); const char* osStrError(u32 error); +sysVersion osGetFirmVersion(); +sysVersion osGetKernelVersion(); #endif diff --git a/libctru/source/os.c b/libctru/source/os.c index 46ef436..6d24080 100644 --- a/libctru/source/os.c +++ b/libctru/source/os.c @@ -15,6 +15,22 @@ u32 osConvertVirtToPhys(u32 vaddr) return 0; } +sysVersion osGetFirmVersion() { + return (sysVersion) { + .major=*(u8*)0x1FF80003, + .minor=*(u8*)0x1FF80002, + .revision=*(u8*)0x1FF80001 + }; +} + +sysVersion osGetKernelVersion() { + return (sysVersion) { + .major=*(u8*)0x1FF80063, + .minor=*(u8*)0x1FF80062, + .revision=*(u8*)0x1FF80061 + }; +} + const char* osStrError(u32 error) { switch((error>>26) & 0x3F) { case 0: