1/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
2   Contributed by Oracle.
3
4   This file is part of GNU Binutils.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, 51 Franklin Street - Fifth Floor, Boston,
19   MA 02110-1301, USA.  */
20
21#ifndef _MEMOBJECT_H
22#define _MEMOBJECT_H
23
24#include "Histable.h"
25#include "util.h"
26
27class MemObj : public Histable
28{
29public:
30  friend class MemorySpace;
31
32  MemObj (uint64_t _index, char *_name);
33  ~MemObj ();
34
35  virtual Histable *convertto (Histable_type, Histable* = NULL);
36
37  virtual Histable_type
38  get_type ()
39  {
40    return MEMOBJ;
41  }
42
43  virtual char *
44  get_name (NameFormat = NA)
45  {
46    return dbe_strdup (name);
47  }
48
49  virtual uint64_t
50  get_addr ()
51  {
52    return id;
53  }
54
55  uint64_t
56  get_index ()
57  {
58    return id;
59  }
60};
61
62#endif  /* _MEMOBJECT_H */
63