From 87c64c41d234019d9994f6c83c6fe656a1ab13c3 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Wed, 5 Aug 2020 15:33:09 -0400
Subject: [PATCH] system_control: Make functions internally linked where
 applicable

These functions are only ever used internally as implementation details
for GenerateRandomRange(), so these can be given internal linkage.
---
 src/core/hle/kernel/memory/system_control.cpp | 21 ++++++++++---------
 src/core/hle/kernel/memory/system_control.h   |  5 -----
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/src/core/hle/kernel/memory/system_control.cpp b/src/core/hle/kernel/memory/system_control.cpp
index 2f98e9c4cd..11d204bc29 100644
--- a/src/core/hle/kernel/memory/system_control.cpp
+++ b/src/core/hle/kernel/memory/system_control.cpp
@@ -7,22 +7,15 @@
 #include "core/hle/kernel/memory/system_control.h"
 
 namespace Kernel::Memory::SystemControl {
-
-u64 GenerateRandomU64ForInit() {
-    static std::random_device device;
-    static std::mt19937 gen(device());
-    static std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max());
-    return distribution(gen);
-}
-
+namespace {
 template <typename F>
 u64 GenerateUniformRange(u64 min, u64 max, F f) {
-    /* Handle the case where the difference is too large to represent. */
+    // Handle the case where the difference is too large to represent.
     if (max == std::numeric_limits<u64>::max() && min == std::numeric_limits<u64>::min()) {
         return f();
     }
 
-    /* Iterate until we get a value in range. */
+    // Iterate until we get a value in range.
     const u64 range_size = ((max + 1) - min);
     const u64 effective_max = (std::numeric_limits<u64>::max() / range_size) * range_size;
     while (true) {
@@ -32,6 +25,14 @@ u64 GenerateUniformRange(u64 min, u64 max, F f) {
     }
 }
 
+u64 GenerateRandomU64ForInit() {
+    static std::random_device device;
+    static std::mt19937 gen(device());
+    static std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max());
+    return distribution(gen);
+}
+} // Anonymous namespace
+
 u64 GenerateRandomRange(u64 min, u64 max) {
     return GenerateUniformRange(min, max, GenerateRandomU64ForInit);
 }
diff --git a/src/core/hle/kernel/memory/system_control.h b/src/core/hle/kernel/memory/system_control.h
index 3fa93111d9..19cab8cbc4 100644
--- a/src/core/hle/kernel/memory/system_control.h
+++ b/src/core/hle/kernel/memory/system_control.h
@@ -8,11 +8,6 @@
 
 namespace Kernel::Memory::SystemControl {
 
-u64 GenerateRandomU64ForInit();
-
-template <typename F>
-u64 GenerateUniformRange(u64 min, u64 max, F f);
-
 u64 GenerateRandomRange(u64 min, u64 max);
 
 } // namespace Kernel::Memory::SystemControl