mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-03-14 12:43:05 +00:00

Keeping these up-to-date is just super tedious and they don't really fulfill any purpose these days.
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
// Copyright The Mumble Developers. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the LICENSE file at the root of the
|
|
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
|
|
|
|
#ifndef MODULE_H
|
|
#define MODULE_H
|
|
|
|
#include <cstdint>
|
|
#include <set>
|
|
#include <string>
|
|
#include <unordered_map>
|
|
|
|
typedef uint64_t procptr_t;
|
|
|
|
struct MemoryRegion {
|
|
procptr_t address;
|
|
size_t size;
|
|
|
|
bool readable;
|
|
bool writable;
|
|
bool executable;
|
|
|
|
bool operator<(const MemoryRegion ®ion) const { return address < region.address; }
|
|
|
|
MemoryRegion() : address(0), size(0), readable(false), writable(false), executable(false) {}
|
|
};
|
|
|
|
typedef std::set< MemoryRegion > MemoryRegions;
|
|
|
|
class Module {
|
|
protected:
|
|
std::string m_name;
|
|
MemoryRegions m_regions;
|
|
|
|
public:
|
|
inline std::string name() const { return m_name; }
|
|
inline MemoryRegions regions() const { return m_regions; }
|
|
|
|
inline bool addRegion(const MemoryRegion ®ion) { return m_regions.insert(region).second; }
|
|
|
|
procptr_t baseAddress() const;
|
|
|
|
Module(const std::string &name);
|
|
};
|
|
|
|
typedef std::unordered_map< std::string, Module > Modules;
|
|
|
|
#endif // MODULE_H
|