From e8c551b11496e3121466532f376b0cf671352715 Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 21 Nov 2014 22:08:05 -0500 Subject: [PATCH 1/2] 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 From 8e8685b6e77bd8c8826ec1055b3f562b76a5ea5f Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 21 Nov 2014 22:12:34 -0500 Subject: [PATCH 2/2] Addressed some style issues --- libctru/include/3ds/services/cfgu.h | 6 +++--- libctru/source/services/cfgu.c | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libctru/include/3ds/services/cfgu.h b/libctru/include/3ds/services/cfgu.h index 7e6f634..9a9eefd 100644 --- a/libctru/include/3ds/services/cfgu.h +++ b/libctru/include/3ds/services/cfgu.h @@ -1,6 +1,6 @@ #pragma once -Result CFGU_Initialize(void); -Result CFGU_Shutdown(void); +Result initCfgu(void); +Result exitCfgu(void); -Result CFGU_GetSystemModel(u8* model); \ No newline at end of file +Result CFGU_GetSystemModel(u8* model); diff --git a/libctru/source/services/cfgu.c b/libctru/source/services/cfgu.c index 5d49970..5b43607 100644 --- a/libctru/source/services/cfgu.c +++ b/libctru/source/services/cfgu.c @@ -1,14 +1,14 @@ #include #include <3ds.h> -Handle CFGU_handle = 0; +static Handle CFGU_handle = 0; -Result CFGU_Initialize() +Result initCfgu() { return srvGetServiceHandle(&CFGU_handle, "cfg:u"); } -Result CFGU_Shutdown() +Result exitCfgu() { Result ret = svcCloseHandle(CFGU_handle); CFGU_handle = 0; @@ -28,4 +28,4 @@ Result CFGU_GetSystemModel(u8* model) *model = (u8)cmdbuf[2]; return (Result)cmdbuf[1]; -} \ No newline at end of file +}