From e8c551b11496e3121466532f376b0cf671352715 Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 21 Nov 2014 22:08:05 -0500 Subject: [PATCH] Added a file for the cfg:u service. Implemented the CFGU_GetSystemModel function --- libctru/include/3ds.h | 1 + libctru/include/3ds/services/cfgu.h | 6 ++++++ libctru/source/services/cfgu.c | 31 +++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 libctru/include/3ds/services/cfgu.h create mode 100644 libctru/source/services/cfgu.c diff --git a/libctru/include/3ds.h b/libctru/include/3ds.h index 65bf5a7..beec914 100644 --- a/libctru/include/3ds.h +++ b/libctru/include/3ds.h @@ -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 index 0000000..7e6f634 --- /dev/null +++ b/libctru/include/3ds/services/cfgu.h @@ -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 index 0000000..5d49970 --- /dev/null +++ b/libctru/source/services/cfgu.c @@ -0,0 +1,31 @@ +#include +#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