/** * Copyright (C) ARM Limited 2010-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 SESSION_DATA_H #define SESSION_DATA_H #include #include "Counter.h" #include "Hwmon.h" #define MAX_PERFORMANCE_COUNTERS 50 #define PROTOCOL_VERSION 16 #define PROTOCOL_DEV 1000 // Differentiates development versions (timestamp) from release versions struct ImageLinkList { char* path; struct ImageLinkList *next; }; class SessionData { public: static const size_t MAX_STRING_LEN = 80; SessionData(); ~SessionData(); void initialize(); void parseSessionXML(char* xmlString); Hwmon hwmon; char mCoreName[MAX_STRING_LEN]; struct ImageLinkList *mImages; char* mConfigurationXMLPath; char* mSessionXMLPath; char* mEventsXMLPath; char* mTargetPath; char* mAPCDir; bool mWaitingOnCommand; bool mSessionIsActive; bool mLocalCapture; bool mOneShot; // halt processing of the driver data until profiling is complete or the buffer is filled int mBacktraceDepth; int mTotalBufferSize; // number of MB to use for the entire collection buffer int mSampleRate; int64_t mLiveRate; int mDuration; int mCores; int mCpuId; // PMU Counters int mCounterOverflow; Counter mCounters[MAX_PERFORMANCE_COUNTERS]; private: void readCpuInfo(); }; extern SessionData* gSessionData; int getEventKey(); #endif // SESSION_DATA_H