Merge pull request #4492 from lioncash/linkage
system_control: Make functions internally linked where applicable
This commit is contained in:
		
						commit
						cb6808b4d0
					
				@ -7,22 +7,15 @@
 | 
				
			|||||||
#include "core/hle/kernel/memory/system_control.h"
 | 
					#include "core/hle/kernel/memory/system_control.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Kernel::Memory::SystemControl {
 | 
					namespace Kernel::Memory::SystemControl {
 | 
				
			||||||
 | 
					namespace {
 | 
				
			||||||
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);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template <typename F>
 | 
					template <typename F>
 | 
				
			||||||
u64 GenerateUniformRange(u64 min, u64 max, F 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()) {
 | 
					    if (max == std::numeric_limits<u64>::max() && min == std::numeric_limits<u64>::min()) {
 | 
				
			||||||
        return f();
 | 
					        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 range_size = ((max + 1) - min);
 | 
				
			||||||
    const u64 effective_max = (std::numeric_limits<u64>::max() / range_size) * range_size;
 | 
					    const u64 effective_max = (std::numeric_limits<u64>::max() / range_size) * range_size;
 | 
				
			||||||
    while (true) {
 | 
					    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) {
 | 
					u64 GenerateRandomRange(u64 min, u64 max) {
 | 
				
			||||||
    return GenerateUniformRange(min, max, GenerateRandomU64ForInit);
 | 
					    return GenerateUniformRange(min, max, GenerateRandomU64ForInit);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -8,11 +8,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Kernel::Memory::SystemControl {
 | 
					namespace Kernel::Memory::SystemControl {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
u64 GenerateRandomU64ForInit();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template <typename F>
 | 
					 | 
				
			||||||
u64 GenerateUniformRange(u64 min, u64 max, F f);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
u64 GenerateRandomRange(u64 min, u64 max);
 | 
					u64 GenerateRandomRange(u64 min, u64 max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // namespace Kernel::Memory::SystemControl
 | 
					} // namespace Kernel::Memory::SystemControl
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user