diff options
Diffstat (limited to 'daemon/SessionData.h')
-rw-r--r-- | daemon/SessionData.h | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/daemon/SessionData.h b/daemon/SessionData.h index d0c8900..12432d0 100644 --- a/daemon/SessionData.h +++ b/daemon/SessionData.h @@ -11,14 +11,17 @@ #include <stdint.h> +#include "AtraceDriver.h" +#include "CCNDriver.h" #include "Config.h" #include "Counter.h" +#include "ExternalDriver.h" #include "FtraceDriver.h" #include "KMod.h" #include "MaliVideoDriver.h" #include "PerfDriver.h" -#define PROTOCOL_VERSION 21 +#define PROTOCOL_VERSION 22 // Differentiates development versions (timestamp) from release versions #define PROTOCOL_DEV 1000 @@ -31,22 +34,41 @@ struct ImageLinkList { struct ImageLinkList *next; }; +class SharedData { +public: + SharedData(); + + int mCpuIds[NR_CPUS]; + size_t mMaliUtgardCountersSize; + char mMaliUtgardCounters[1<<12]; + +private: + // Intentionally unimplemented + SharedData(const SharedData &); + SharedData &operator=(const SharedData &); +}; + class SessionData { public: static const size_t MAX_STRING_LEN = 80; SessionData(); ~SessionData(); - void initialize(); void parseSessionXML(char* xmlString); void readModel(); void readCpuInfo(); - PolledDriver *usDrivers[5]; - KMod kmod; - PerfDriver perf; - MaliVideoDriver maliVideo; - FtraceDriver ftraceDriver; + SharedData *mSharedData; + + PolledDriver *mUsDrivers[5]; + KMod mKmod; + PerfDriver mPerf; + MaliVideoDriver mMaliVideo; + // Intentionally above FtraceDriver as drivers are initialized in reverse order AtraceDriver references AtraceDriver + AtraceDriver mAtraceDriver; + FtraceDriver mFtraceDriver; + ExternalDriver mExternalDriver; + CCNDriver mCcnDriver; char mCoreName[MAX_STRING_LEN]; struct ImageLinkList *mImages; @@ -78,15 +100,16 @@ public: int mDuration; int mCores; int mPageSize; - int *mCpuIds; int mMaxCpuId; int mAnnotateStart; // PMU Counters - int mCounterOverflow; + char *mCountersError; Counter mCounters[MAX_PERFORMANCE_COUNTERS]; private: + void initialize(); + // Intentionally unimplemented SessionData(const SessionData &); SessionData &operator=(const SessionData &); @@ -99,5 +122,8 @@ uint64_t getTime(); int getEventKey(); int pipe_cloexec(int pipefd[2]); FILE *fopen_cloexec(const char *path, const char *mode); +bool setNonblock(const int fd); +bool writeAll(const int fd, const void *const buf, const size_t pos); +bool readAll(const int fd, void *const buf, const size_t count); #endif // SESSION_DATA_H |