Merge pull request #877 from lioncash/remove
kernel: Remove unused object_address_table.cpp/.h
This commit is contained in:
commit
ff2c1b0a94
|
@ -67,8 +67,6 @@ add_library(core STATIC
|
||||||
hle/kernel/memory.h
|
hle/kernel/memory.h
|
||||||
hle/kernel/mutex.cpp
|
hle/kernel/mutex.cpp
|
||||||
hle/kernel/mutex.h
|
hle/kernel/mutex.h
|
||||||
hle/kernel/object_address_table.cpp
|
|
||||||
hle/kernel/object_address_table.h
|
|
||||||
hle/kernel/process.cpp
|
hle/kernel/process.cpp
|
||||||
hle/kernel/process.h
|
hle/kernel/process.h
|
||||||
hle/kernel/resource_limit.cpp
|
hle/kernel/resource_limit.cpp
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#include "core/hle/kernel/handle_table.h"
|
#include "core/hle/kernel/handle_table.h"
|
||||||
#include "core/hle/kernel/kernel.h"
|
#include "core/hle/kernel/kernel.h"
|
||||||
#include "core/hle/kernel/memory.h"
|
#include "core/hle/kernel/memory.h"
|
||||||
#include "core/hle/kernel/object_address_table.h"
|
|
||||||
#include "core/hle/kernel/process.h"
|
#include "core/hle/kernel/process.h"
|
||||||
#include "core/hle/kernel/resource_limit.h"
|
#include "core/hle/kernel/resource_limit.h"
|
||||||
#include "core/hle/kernel/thread.h"
|
#include "core/hle/kernel/thread.h"
|
||||||
|
@ -33,7 +32,6 @@ void Init(u32 system_mode) {
|
||||||
void Shutdown() {
|
void Shutdown() {
|
||||||
// Free all kernel objects
|
// Free all kernel objects
|
||||||
g_handle_table.Clear();
|
g_handle_table.Clear();
|
||||||
g_object_address_table.Clear();
|
|
||||||
|
|
||||||
Kernel::ThreadingShutdown();
|
Kernel::ThreadingShutdown();
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "core/hle/kernel/handle_table.h"
|
#include "core/hle/kernel/handle_table.h"
|
||||||
#include "core/hle/kernel/kernel.h"
|
#include "core/hle/kernel/kernel.h"
|
||||||
#include "core/hle/kernel/mutex.h"
|
#include "core/hle/kernel/mutex.h"
|
||||||
#include "core/hle/kernel/object_address_table.h"
|
|
||||||
#include "core/hle/kernel/thread.h"
|
#include "core/hle/kernel/thread.h"
|
||||||
#include "core/hle/result.h"
|
#include "core/hle/result.h"
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
// Copyright 2018 yuzu emulator team
|
|
||||||
// Licensed under GPLv2 or any later version
|
|
||||||
// Refer to the license.txt file included.
|
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
#include "common/assert.h"
|
|
||||||
#include "core/hle/kernel/object_address_table.h"
|
|
||||||
|
|
||||||
namespace Kernel {
|
|
||||||
|
|
||||||
ObjectAddressTable g_object_address_table;
|
|
||||||
|
|
||||||
void ObjectAddressTable::Insert(VAddr addr, SharedPtr<Object> obj) {
|
|
||||||
ASSERT_MSG(objects.find(addr) == objects.end(), "Object already exists with addr=0x{:X}", addr);
|
|
||||||
objects[addr] = std::move(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ObjectAddressTable::Close(VAddr addr) {
|
|
||||||
ASSERT_MSG(objects.find(addr) != objects.end(), "Object does not exist with addr=0x{:X}", addr);
|
|
||||||
objects.erase(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
SharedPtr<Object> ObjectAddressTable::GetGeneric(VAddr addr) const {
|
|
||||||
auto iter = objects.find(addr);
|
|
||||||
if (iter != objects.end()) {
|
|
||||||
return iter->second;
|
|
||||||
}
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
void ObjectAddressTable::Clear() {
|
|
||||||
objects.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Kernel
|
|
|
@ -1,62 +0,0 @@
|
||||||
// Copyright 2018 yuzu emulator team
|
|
||||||
// Licensed under GPLv2 or any later version
|
|
||||||
// Refer to the license.txt file included.
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <map>
|
|
||||||
#include "common/common_types.h"
|
|
||||||
#include "core/hle/kernel/kernel.h"
|
|
||||||
|
|
||||||
namespace Kernel {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class is used to keep a table of Kernel objects and their respective addresses in emulated
|
|
||||||
* memory. For certain Switch SVCs, Kernel objects are referenced by an address to an object the
|
|
||||||
* guest application manages, so we use this table to look these kernel objects up. This is similiar
|
|
||||||
* to the HandleTable class.
|
|
||||||
*/
|
|
||||||
class ObjectAddressTable final : NonCopyable {
|
|
||||||
public:
|
|
||||||
ObjectAddressTable() = default;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inserts an object and address pair into the table.
|
|
||||||
*/
|
|
||||||
void Insert(VAddr addr, SharedPtr<Object> obj);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Closes an object by its address, removing it from the table and decreasing the object's
|
|
||||||
* ref-count.
|
|
||||||
* @return `RESULT_SUCCESS` or one of the following errors:
|
|
||||||
* - `ERR_INVALID_HANDLE`: an invalid handle was passed in.
|
|
||||||
*/
|
|
||||||
void Close(VAddr addr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Looks up an object by its address.
|
|
||||||
* @return Pointer to the looked-up object, or `nullptr` if the handle is not valid.
|
|
||||||
*/
|
|
||||||
SharedPtr<Object> GetGeneric(VAddr addr) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Looks up an object by its address while verifying its type.
|
|
||||||
* @return Pointer to the looked-up object, or `nullptr` if the handle is not valid or its
|
|
||||||
* type differs from the requested one.
|
|
||||||
*/
|
|
||||||
template <class T>
|
|
||||||
SharedPtr<T> Get(VAddr addr) const {
|
|
||||||
return DynamicObjectCast<T>(GetGeneric(addr));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Closes all addresses held in this table.
|
|
||||||
void Clear();
|
|
||||||
|
|
||||||
private:
|
|
||||||
/// Stores the Object referenced by the address
|
|
||||||
std::map<VAddr, SharedPtr<Object>> objects;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern ObjectAddressTable g_object_address_table;
|
|
||||||
|
|
||||||
} // namespace Kernel
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "core/hle/kernel/event.h"
|
#include "core/hle/kernel/event.h"
|
||||||
#include "core/hle/kernel/handle_table.h"
|
#include "core/hle/kernel/handle_table.h"
|
||||||
#include "core/hle/kernel/mutex.h"
|
#include "core/hle/kernel/mutex.h"
|
||||||
#include "core/hle/kernel/object_address_table.h"
|
|
||||||
#include "core/hle/kernel/process.h"
|
#include "core/hle/kernel/process.h"
|
||||||
#include "core/hle/kernel/resource_limit.h"
|
#include "core/hle/kernel/resource_limit.h"
|
||||||
#include "core/hle/kernel/shared_memory.h"
|
#include "core/hle/kernel/shared_memory.h"
|
||||||
|
|
Loading…
Reference in a new issue