mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-28 13:47:57 +03:00
45 lines
818 B
C
45 lines
818 B
C
![]() |
#ifndef _MIPSFUNCTIONPATTERNDB_H_
|
||
|
#define _MIPSFUNCTIONPATTERNDB_H_
|
||
|
|
||
|
#include <vector>
|
||
|
#include <unordered_map>
|
||
|
#include "xml/Node.h"
|
||
|
|
||
|
class CMipsFunctionPatternDb
|
||
|
{
|
||
|
public:
|
||
|
struct PATTERNITEM
|
||
|
{
|
||
|
uint32 value;
|
||
|
uint32 mask;
|
||
|
};
|
||
|
|
||
|
class Pattern
|
||
|
{
|
||
|
public:
|
||
|
typedef std::vector<PATTERNITEM> ItemArray;
|
||
|
|
||
|
bool Matches(uint32*, uint32) const;
|
||
|
|
||
|
std::string name;
|
||
|
ItemArray items;
|
||
|
};
|
||
|
|
||
|
|
||
|
typedef std::vector<Pattern> PatternArray;
|
||
|
|
||
|
CMipsFunctionPatternDb(Framework::Xml::CNode*);
|
||
|
virtual ~CMipsFunctionPatternDb();
|
||
|
|
||
|
const PatternArray& GetPatterns() const;
|
||
|
|
||
|
private:
|
||
|
void Read(Framework::Xml::CNode*);
|
||
|
Pattern ParsePattern(const char*);
|
||
|
bool ParsePatternItem(const char*, PATTERNITEM&);
|
||
|
|
||
|
PatternArray m_patterns;
|
||
|
};
|
||
|
|
||
|
#endif
|