blob: c4123e8c6cb508bed73822782f484f8f7448af06 [file] [log] [blame]
Brian Carlstrom4a289ed2011-08-16 17:17:49 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
3#ifndef ART_SRC_IMAGE_H_
4#define ART_SRC_IMAGE_H_
5
6#include <string.h>
7
8#include "globals.h"
9
10namespace art {
11
12// header of image files written by ImageWriter, read and validated by Space.
13class ImageHeader {
14 public:
15 ImageHeader() {}
16
17 ImageHeader(uint32_t base_addr) : base_addr_(base_addr) {
18 memcpy(magic_, kImageMagic, sizeof(kImageMagic));
19 memcpy(version_, kImageVersion, sizeof(kImageVersion));
20 }
21
22 bool IsValid() {
23 if (memcmp(magic_, kImageMagic, sizeof(kImageMagic) != 0)) {
24 return false;
25 }
26 if (memcmp(version_, kImageVersion, sizeof(kImageVersion) != 0)) {
27 return false;
28 }
29 return true;
30 }
31
32 byte* GetBaseAddr() const {
33 return reinterpret_cast<byte*>(base_addr_);
34 }
35
36 private:
37 static const byte kImageMagic[4];
38 static const byte kImageVersion[4];
39
40 byte magic_[4];
41 byte version_[4];
42 uint32_t base_addr_;
43};
44
45} // namespace art
46
47#endif // ART_SRC_IMAGE_H_