blob: 35b0558e390bc2f0e6a89ba98d0fc385191b3392 [file] [log] [blame]
Jon Medhurste31266f2014-08-04 15:47:44 +01001/**
Jon Medhurstb1d07442015-05-08 12:04:18 +01002 * Copyright (C) ARM Limited 2014-2015. All rights reserved.
Jon Medhurste31266f2014-08-04 15:47:44 +01003 *
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 MALIVIDEODRIVER_H
10#define MALIVIDEODRIVER_H
11
12#include "Driver.h"
13
14class MaliVideoCounter;
15
16enum MaliVideoCounterType {
17 MVCT_COUNTER,
18 MVCT_EVENT,
19 MVCT_ACTIVITY,
20};
21
Jon Medhurst96b56152014-10-30 18:01:15 +000022class MaliVideoDriver : public SimpleDriver {
23private:
24 typedef SimpleDriver super;
25
Jon Medhurste31266f2014-08-04 15:47:44 +010026public:
27 MaliVideoDriver();
28 ~MaliVideoDriver();
29
Jon Medhurst96b56152014-10-30 18:01:15 +000030 void readEvents(mxml_node_t *const root);
Jon Medhurste31266f2014-08-04 15:47:44 +010031
32 int writeCounters(mxml_node_t *root) const;
33
34 bool start(const int mveUds);
Jon Medhurst96b56152014-10-30 18:01:15 +000035 void stop(const int mveUds);
Jon Medhurste31266f2014-08-04 15:47:44 +010036
37private:
Jon Medhurste31266f2014-08-04 15:47:44 +010038 void marshalEnable(const MaliVideoCounterType type, char *const buf, const size_t bufsize, int &pos);
39
Jon Medhurste31266f2014-08-04 15:47:44 +010040 // Intentionally unimplemented
41 MaliVideoDriver(const MaliVideoDriver &);
42 MaliVideoDriver &operator=(const MaliVideoDriver &);
43};
44
45#endif // MALIVIDEODRIVER_H