summaryrefslogtreecommitdiff
path: root/le/le_object_page_table.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'le/le_object_page_table.cpp')
-rw-r--r--le/le_object_page_table.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/le/le_object_page_table.cpp b/le/le_object_page_table.cpp
index d8fd290..9843689 100644
--- a/le/le_object_page_table.cpp
+++ b/le/le_object_page_table.cpp
@@ -3,8 +3,27 @@
#include "parse.hpp"
#include "output.hpp"
+#include <boost/fusion/adapted/struct.hpp>
+
+BOOST_FUSION_ADAPT_STRUCT(
+ le::ObjectPageTable::Entry,
+ (binparse::Value16, high)
+ (binparse::Value8, low)
+ (binparse::Value8, flags)
+)
+
namespace le {
+ObjectPageTable::Entry parse_object_page_table_entry(std::istream& is)
+{
+ return binparse::parse<ObjectPageTable::Entry>(is);
+}
+
+std::ostream& operator<<(std::ostream& os, ObjectPageTable::Entry const& entry)
+{
+ return binparse::operator<<(os, entry);
+}
+
ObjectPageTable parse_object_page_table(std::istream& is, binparse::Offset32 offset, binparse::Value32 nr_pages)
{
is.seekg(0, std::ios::beg);