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/mutex.cpp
 | 
			
		||||
    hle/kernel/mutex.h
 | 
			
		||||
    hle/kernel/object_address_table.cpp
 | 
			
		||||
    hle/kernel/object_address_table.h
 | 
			
		||||
    hle/kernel/process.cpp
 | 
			
		||||
    hle/kernel/process.h
 | 
			
		||||
    hle/kernel/resource_limit.cpp
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,6 @@
 | 
			
		||||
#include "core/hle/kernel/handle_table.h"
 | 
			
		||||
#include "core/hle/kernel/kernel.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/resource_limit.h"
 | 
			
		||||
#include "core/hle/kernel/thread.h"
 | 
			
		||||
@ -33,7 +32,6 @@ void Init(u32 system_mode) {
 | 
			
		||||
void Shutdown() {
 | 
			
		||||
    // Free all kernel objects
 | 
			
		||||
    g_handle_table.Clear();
 | 
			
		||||
    g_object_address_table.Clear();
 | 
			
		||||
 | 
			
		||||
    Kernel::ThreadingShutdown();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,6 @@
 | 
			
		||||
#include "core/hle/kernel/handle_table.h"
 | 
			
		||||
#include "core/hle/kernel/kernel.h"
 | 
			
		||||
#include "core/hle/kernel/mutex.h"
 | 
			
		||||
#include "core/hle/kernel/object_address_table.h"
 | 
			
		||||
#include "core/hle/kernel/thread.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/handle_table.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/resource_limit.h"
 | 
			
		||||
#include "core/hle/kernel/shared_memory.h"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user