diff options
author | Alex Shi <alex.shi@linaro.org> | 2013-10-15 10:29:57 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2013-10-15 10:29:57 +0800 |
commit | 93570f4be17a7a1d420b79e8a05fb5fe0b452297 (patch) | |
tree | d2877817c6ad79bdf2fd511f8b629b17714822ef /tools/gator/daemon/Driver.h | |
parent | 31d264741ef5baf75ec3d27c5b6e9bdda628748c (diff) | |
parent | 01239d6842a2e2653b7b42736cf2c10b69d0face (diff) |
Merge remote-tracking branch 'arm-landing/lsk-3.10-gator' into linux-linaro-lsk-testlsk-13.10
Diffstat (limited to 'tools/gator/daemon/Driver.h')
-rw-r--r-- | tools/gator/daemon/Driver.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/gator/daemon/Driver.h b/tools/gator/daemon/Driver.h new file mode 100644 index 00000000000..dd1dc27d1cd --- /dev/null +++ b/tools/gator/daemon/Driver.h @@ -0,0 +1,44 @@ +/** + * Copyright (C) ARM Limited 2013. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef DRIVER_H +#define DRIVER_H + +#include "mxml/mxml.h" + +class Counter; + +class Driver { +public: + static Driver *getHead() { return head; } + + virtual ~Driver() {} + + // Returns true if this driver can manage the counter + virtual bool claimCounter(const Counter &counter) const = 0; + // Clears and disables all counters + virtual void resetCounters() = 0; + // Enables and prepares the counter for capture + virtual void setupCounter(Counter &counter) = 0; + + // Emits available counters + virtual void writeCounters(mxml_node_t *root) const = 0; + // Emits possible dynamically generated events/counters + virtual void writeEvents(mxml_node_t *root) const {} + + Driver *getNext() const { return next; } + +protected: + Driver (); + +private: + static Driver *head; + Driver *next; +}; + +#endif // DRIVER_H |