summaryrefslogtreecommitdiff
path: root/le/le_object_page_table.hpp
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-07-05 17:51:21 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-07-05 17:51:21 +0200
commit06336eaddcc6a8f9cc578d8f059117c3aa535c9f (patch)
tree4884cc68161df06112a49a04007fa6d03775d507 /le/le_object_page_table.hpp
parentb80a82fcc9edc73057796005cede4eea8380e193 (diff)
downloadopenwar-06336eaddcc6a8f9cc578d8f059117c3aa535c9f.tar.gz
openwar-06336eaddcc6a8f9cc578d8f059117c3aa535c9f.tar.bz2
openwar-06336eaddcc6a8f9cc578d8f059117c3aa535c9f.zip
Made the interface somewhat more consistant.
Diffstat (limited to 'le/le_object_page_table.hpp')
-rw-r--r--le/le_object_page_table.hpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/le/le_object_page_table.hpp b/le/le_object_page_table.hpp
index 08a67e6..da464b5 100644
--- a/le/le_object_page_table.hpp
+++ b/le/le_object_page_table.hpp
@@ -2,18 +2,29 @@
#include "types.hpp"
-#include "le_object_page_table_entry.hpp"
-
#include <map>
namespace le {
-using binparse::Value32;
-using binparse::Offset32;
+using namespace binparse;
struct ObjectPageTable
{
- std::map<Value32, ObjectPageTableEntry> entries;
+ struct Entry {
+ enum class object_page_flags {
+ legal_physical = 0,
+ iteration_data = 1,
+ invalid = 2,
+ zero_filled = 3,
+ range_of = 4
+ };
+
+ Value16 high;
+ Value8 low;
+ Value8 flags;
+ };
+
+ std::map<Value32, ObjectPageTable::Entry> entries;
};
ObjectPageTable parse_object_page_table(std::istream& is, Offset32 offset, Value32 nr_pages);