]> Chaos Git - corbenik/ctrulib.git/commitdiff
Added a file for the cfg:u service.
authorSubv <subv2112@gmail.com>
Sat, 22 Nov 2014 03:08:05 +0000 (22:08 -0500)
committerSubv <subv2112@gmail.com>
Sat, 22 Nov 2014 03:08:05 +0000 (22:08 -0500)
Implemented the CFGU_GetSystemModel function

libctru/include/3ds.h
libctru/include/3ds/services/cfgu.h [new file with mode: 0644]
libctru/source/services/cfgu.c [new file with mode: 0644]

index 65bf5a71b0b7708c7bb78e21115492b4699ba71f..beec9142833db000a4469b663804709d0c3ffb2d 100644 (file)
@@ -15,6 +15,7 @@ extern "C" {
 #include <3ds/services/ac.h>
 #include <3ds/services/apt.h>
 #include <3ds/services/cfgnor.h>
+#include <3ds/services/cfgu.h>
 #include <3ds/services/csnd.h>
 #include <3ds/services/fs.h>
 #include <3ds/services/gsp.h>
diff --git a/libctru/include/3ds/services/cfgu.h b/libctru/include/3ds/services/cfgu.h
new file mode 100644 (file)
index 0000000..7e6f634
--- /dev/null
@@ -0,0 +1,6 @@
+#pragma once
+
+Result CFGU_Initialize(void);
+Result CFGU_Shutdown(void);
+
+Result CFGU_GetSystemModel(u8* model);
\ No newline at end of file
diff --git a/libctru/source/services/cfgu.c b/libctru/source/services/cfgu.c
new file mode 100644 (file)
index 0000000..5d49970
--- /dev/null
@@ -0,0 +1,31 @@
+#include <stdlib.h>
+#include <3ds.h>
+
+Handle CFGU_handle = 0;
+
+Result CFGU_Initialize()
+{
+    return srvGetServiceHandle(&CFGU_handle, "cfg:u");
+}
+
+Result CFGU_Shutdown()
+{
+    Result ret = svcCloseHandle(CFGU_handle);
+    CFGU_handle = 0;
+
+    return ret;
+}
+
+Result CFGU_GetSystemModel(u8* model)
+{
+    Result ret = 0;
+    u32 *cmdbuf = getThreadCommandBuffer();
+
+    cmdbuf[0] = 0x00050000;
+
+    if((ret = svcSendSyncRequest(CFGU_handle))!=0)return ret;
+
+    *model = (u8)cmdbuf[2];
+
+    return (Result)cmdbuf[1];
+}
\ No newline at end of file