diff options
| -rw-r--r-- | src/core/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/k_condition_variable.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/k_linked_list.h | 238 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.h | 1 | 
5 files changed, 0 insertions, 245 deletions
| diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 75e0c4f38..c847fe824 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -211,7 +211,6 @@ add_library(core STATIC      hle/kernel/k_light_condition_variable.h      hle/kernel/k_light_lock.cpp      hle/kernel/k_light_lock.h -    hle/kernel/k_linked_list.h      hle/kernel/k_memory_block.h      hle/kernel/k_memory_block_manager.cpp      hle/kernel/k_memory_block_manager.h diff --git a/src/core/hle/kernel/k_condition_variable.cpp b/src/core/hle/kernel/k_condition_variable.cpp index b75957688..0dc01f6aa 100644 --- a/src/core/hle/kernel/k_condition_variable.cpp +++ b/src/core/hle/kernel/k_condition_variable.cpp @@ -4,7 +4,6 @@  #include "core/arm/exclusive_monitor.h"  #include "core/core.h"  #include "core/hle/kernel/k_condition_variable.h" -#include "core/hle/kernel/k_linked_list.h"  #include "core/hle/kernel/k_process.h"  #include "core/hle/kernel/k_scheduler.h"  #include "core/hle/kernel/k_scoped_scheduler_lock_and_sleep.h" diff --git a/src/core/hle/kernel/k_linked_list.h b/src/core/hle/kernel/k_linked_list.h deleted file mode 100644 index 29ebd16b7..000000000 --- a/src/core/hle/kernel/k_linked_list.h +++ /dev/null @@ -1,238 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include <boost/intrusive/list.hpp> - -#include "common/assert.h" -#include "core/hle/kernel/slab_helpers.h" - -namespace Kernel { - -class KernelCore; - -class KLinkedListNode : public boost::intrusive::list_base_hook<>, -                        public KSlabAllocated<KLinkedListNode> { - -public: -    explicit KLinkedListNode(KernelCore&) {} -    KLinkedListNode() = default; - -    void Initialize(void* it) { -        m_item = it; -    } - -    void* GetItem() const { -        return m_item; -    } - -private: -    void* m_item = nullptr; -}; - -template <typename T> -class KLinkedList : private boost::intrusive::list<KLinkedListNode> { -private: -    using BaseList = boost::intrusive::list<KLinkedListNode>; - -public: -    template <bool Const> -    class Iterator; - -    using value_type = T; -    using size_type = size_t; -    using difference_type = ptrdiff_t; -    using pointer = value_type*; -    using const_pointer = const value_type*; -    using reference = value_type&; -    using const_reference = const value_type&; -    using iterator = Iterator<false>; -    using const_iterator = Iterator<true>; -    using reverse_iterator = std::reverse_iterator<iterator>; -    using const_reverse_iterator = std::reverse_iterator<const_iterator>; - -    template <bool Const> -    class Iterator { -    private: -        using BaseIterator = BaseList::iterator; -        friend class KLinkedList; - -    public: -        using iterator_category = std::bidirectional_iterator_tag; -        using value_type = typename KLinkedList::value_type; -        using difference_type = typename KLinkedList::difference_type; -        using pointer = std::conditional_t<Const, KLinkedList::const_pointer, KLinkedList::pointer>; -        using reference = -            std::conditional_t<Const, KLinkedList::const_reference, KLinkedList::reference>; - -    public: -        explicit Iterator(BaseIterator it) : m_base_it(it) {} - -        pointer GetItem() const { -            return static_cast<pointer>(m_base_it->GetItem()); -        } - -        bool operator==(const Iterator& rhs) const { -            return m_base_it == rhs.m_base_it; -        } - -        bool operator!=(const Iterator& rhs) const { -            return !(*this == rhs); -        } - -        pointer operator->() const { -            return this->GetItem(); -        } - -        reference operator*() const { -            return *this->GetItem(); -        } - -        Iterator& operator++() { -            ++m_base_it; -            return *this; -        } - -        Iterator& operator--() { -            --m_base_it; -            return *this; -        } - -        Iterator operator++(int) { -            const Iterator it{*this}; -            ++(*this); -            return it; -        } - -        Iterator operator--(int) { -            const Iterator it{*this}; -            --(*this); -            return it; -        } - -        operator Iterator<true>() const { -            return Iterator<true>(m_base_it); -        } - -    private: -        BaseIterator m_base_it; -    }; - -public: -    constexpr KLinkedList(KernelCore& kernel_) : BaseList(), kernel{kernel_} {} - -    ~KLinkedList() { -        // Erase all elements. -        for (auto it = begin(); it != end(); it = erase(it)) { -        } - -        // Ensure we succeeded. -        ASSERT(this->empty()); -    } - -    // Iterator accessors. -    iterator begin() { -        return iterator(BaseList::begin()); -    } - -    const_iterator begin() const { -        return const_iterator(BaseList::begin()); -    } - -    iterator end() { -        return iterator(BaseList::end()); -    } - -    const_iterator end() const { -        return const_iterator(BaseList::end()); -    } - -    const_iterator cbegin() const { -        return this->begin(); -    } - -    const_iterator cend() const { -        return this->end(); -    } - -    reverse_iterator rbegin() { -        return reverse_iterator(this->end()); -    } - -    const_reverse_iterator rbegin() const { -        return const_reverse_iterator(this->end()); -    } - -    reverse_iterator rend() { -        return reverse_iterator(this->begin()); -    } - -    const_reverse_iterator rend() const { -        return const_reverse_iterator(this->begin()); -    } - -    const_reverse_iterator crbegin() const { -        return this->rbegin(); -    } - -    const_reverse_iterator crend() const { -        return this->rend(); -    } - -    // Content management. -    using BaseList::empty; -    using BaseList::size; - -    reference back() { -        return *(--this->end()); -    } - -    const_reference back() const { -        return *(--this->end()); -    } - -    reference front() { -        return *this->begin(); -    } - -    const_reference front() const { -        return *this->begin(); -    } - -    iterator insert(const_iterator pos, reference ref) { -        KLinkedListNode* new_node = KLinkedListNode::Allocate(kernel); -        ASSERT(new_node != nullptr); -        new_node->Initialize(std::addressof(ref)); -        return iterator(BaseList::insert(pos.m_base_it, *new_node)); -    } - -    void push_back(reference ref) { -        this->insert(this->end(), ref); -    } - -    void push_front(reference ref) { -        this->insert(this->begin(), ref); -    } - -    void pop_back() { -        this->erase(--this->end()); -    } - -    void pop_front() { -        this->erase(this->begin()); -    } - -    iterator erase(const iterator pos) { -        KLinkedListNode* freed_node = std::addressof(*pos.m_base_it); -        iterator ret = iterator(BaseList::erase(pos.m_base_it)); -        KLinkedListNode::Free(kernel, freed_node); - -        return ret; -    } - -private: -    KernelCore& kernel; -}; - -} // namespace Kernel diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 59f832a3d..c236e9976 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -1320,7 +1320,6 @@ const Core::System& KernelCore::System() const {  struct KernelCore::SlabHeapContainer {      KSlabHeap<KClientSession> client_session;      KSlabHeap<KEvent> event; -    KSlabHeap<KLinkedListNode> linked_list_node;      KSlabHeap<KPort> port;      KSlabHeap<KProcess> process;      KSlabHeap<KResourceLimit> resource_limit; @@ -1347,8 +1346,6 @@ KSlabHeap<T>& KernelCore::SlabHeap() {          return slab_heap_container->client_session;      } else if constexpr (std::is_same_v<T, KEvent>) {          return slab_heap_container->event; -    } else if constexpr (std::is_same_v<T, KLinkedListNode>) { -        return slab_heap_container->linked_list_node;      } else if constexpr (std::is_same_v<T, KPort>) {          return slab_heap_container->port;      } else if constexpr (std::is_same_v<T, KProcess>) { @@ -1390,7 +1387,6 @@ KSlabHeap<T>& KernelCore::SlabHeap() {  template KSlabHeap<KClientSession>& KernelCore::SlabHeap();  template KSlabHeap<KEvent>& KernelCore::SlabHeap(); -template KSlabHeap<KLinkedListNode>& KernelCore::SlabHeap();  template KSlabHeap<KPort>& KernelCore::SlabHeap();  template KSlabHeap<KProcess>& KernelCore::SlabHeap();  template KSlabHeap<KResourceLimit>& KernelCore::SlabHeap(); diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 1b380a07b..183a4d227 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -47,7 +47,6 @@ class KEvent;  class KEventInfo;  class KHandleTable;  class KHardwareTimer; -class KLinkedListNode;  class KMemoryLayout;  class KMemoryManager;  class KObjectName; | 
