summaryrefslogtreecommitdiff
path: root/mz/mz_header.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'mz/mz_header.hpp')
-rw-r--r--mz/mz_header.hpp41
1 files changed, 20 insertions, 21 deletions
diff --git a/mz/mz_header.hpp b/mz/mz_header.hpp
index ad5f419..fd42b43 100644
--- a/mz/mz_header.hpp
+++ b/mz/mz_header.hpp
@@ -1,14 +1,16 @@
#pragma once
+#include "types.hpp"
+
#include <cstdint>
#include <cstddef>
#include <stdexcept>
#include <istream>
#include <ostream>
-#include <boost/serialization/strong_typedef.hpp>
+namespace mz {
-BOOST_STRONG_TYPEDEF(uint16_t, Magic);
+using namespace binparse;
struct NotAMZFileException : public std::runtime_error {
NotAMZFileException();
@@ -21,27 +23,24 @@ struct UnexpectedEOS : public std::runtime_error {
};
struct MZHeader {
- Magic magic;
- uint16_t bytes_in_last_block;
- uint16_t blocks_in_file;
- uint16_t num_relocs;
- uint16_t header_paragraphs;
- uint16_t min_extra_paragraphs;
- uint16_t max_extra_paragraphs;
- uint16_t ss;
- uint16_t sp;
- uint16_t checksum;
- uint16_t ip;
- uint16_t cs;
- uint16_t reloc_table_offset;
- uint16_t overlay_number;
+ Magic16 magic;
+ Value16 bytes_in_last_block;
+ Value16 blocks_in_file;
+ Value16 num_relocs;
+ Value16 header_paragraphs;
+ Value16 min_extra_paragraphs;
+ Value16 max_extra_paragraphs;
+ Offset16 ss;
+ Offset16 sp;
+ Value16 checksum;
+ Offset16 ip;
+ Offset16 cs;
+ Offset16 reloc_table_offset;
+ Value16 overlay_number;
};
-uint16_t parse_uint16_t(std::istream& is, std::string name = "");
-
-MZHeader parse_mz_file(std::istream& is);
-
-void print_mz_header(MZHeader const& header);
+MZHeader parse_file(std::istream& is);
std::ostream& operator<<(std::ostream& os, MZHeader const& header);
+}