| Index: courgette/disassembler.h
|
| ===================================================================
|
| --- courgette/disassembler.h (revision 0)
|
| +++ courgette/disassembler.h (revision 0)
|
| @@ -0,0 +1,38 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef COURGETTE_DISASSEMBLER_H_
|
| +#define COURGETTE_DISASSEMBLER_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +
|
| +namespace courgette {
|
| +
|
| +class AssemblyProgram;
|
| +class PEInfo;
|
| +
|
| +class Disassembler {
|
| + public:
|
| + // Factory methods for making disassemblers for various kinds of executables.
|
| + // We have only one so far.
|
| +
|
| + static Disassembler* MakeDisassemberWin32X86(PEInfo* pe_info);
|
| +
|
| + // Disassembles the item passed to the factory method into the output
|
| + // parameter 'program'.
|
| + virtual bool Disassemble(AssemblyProgram* program) = 0;
|
| +
|
| + // Deletes 'this' disassembler.
|
| + virtual void Destroy() = 0;
|
| +
|
| + protected:
|
| + Disassembler() {}
|
| + virtual ~Disassembler() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Disassembler);
|
| +};
|
| +
|
| +} // namespace courgette
|
| +#endif // COURGETTE_DISASSEMBLER_H_
|
|
|