blob: 06ac33f07a36c7ef6b0b0fe5452a6cfefa9e6578 [file] [log] [blame]
Jon Medhurst96b56152014-10-30 18:01:15 +00001/**
Jon Medhurstb1d07442015-05-08 12:04:18 +01002 * Copyright (C) ARM Limited 2014-2015. All rights reserved.
Jon Medhurst96b56152014-10-30 18:01:15 +00003 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#ifndef CCNDRIVER_H
10#define CCNDRIVER_H
11
12#include "Driver.h"
13
14class CCNDriver : public Driver {
15public:
16 CCNDriver();
17 ~CCNDriver();
18
19 bool claimCounter(const Counter &counter) const;
20 void resetCounters();
21 void setupCounter(Counter &counter);
22
23 void readEvents(mxml_node_t *const);
24 int writeCounters(mxml_node_t *const root) const;
25 void writeEvents(mxml_node_t *const) const;
26
27private:
28 enum NodeType {
29 NT_UNKNOWN,
30 NT_HNF,
31 NT_RNI,
32 NT_SBAS,
33 };
34
35 NodeType *mNodeTypes;
36 int mXpCount;
37
38 // Intentionally unimplemented
39 CCNDriver(const CCNDriver &);
40 CCNDriver &operator=(const CCNDriver &);
41};
42
43#endif // CCNDRIVER_H