Game Driver: add dumpsys interface to GpuService
This change also factored some formats in GpuService.
Bug: 123529932
Test: adb shell dumpsys gpu
Change-Id: I9a89c044cc78a43fa4ff2ce1d389a518679bc6b7
diff --git a/services/gpuservice/GpuService.h b/services/gpuservice/GpuService.h
index 389e695..7216035 100644
--- a/services/gpuservice/GpuService.h
+++ b/services/gpuservice/GpuService.h
@@ -20,13 +20,14 @@
#include <binder/IInterface.h>
#include <cutils/compiler.h>
#include <graphicsenv/IGpuService.h>
+#include <serviceutils/PriorityDumper.h>
#include <mutex>
#include <vector>
namespace android {
-class GpuService : public BnGpuService {
+class GpuService : public BnGpuService, public PriorityDumper {
public:
static const char* const SERVICE_NAME ANDROID_API;
@@ -36,12 +37,36 @@
status_t shellCommand(int in, int out, int err, std::vector<String16>& args) override;
private:
- // IGpuService interface
+ /*
+ * IGpuService interface
+ */
void setGpuStats(const std::string& driverPackageName, const std::string& driverVersionName,
uint64_t driverVersionCode, int64_t driverBuildTime,
const std::string& appPackageName, GraphicsEnv::Driver driver,
bool isDriverLoaded, int64_t driverLoadingTime);
+ /*
+ * IBinder interface
+ */
+ status_t dump(int fd, const Vector<String16>& args) override { return priorityDump(fd, args); }
+
+ /*
+ * Debugging & dumpsys
+ */
+ status_t dumpCritical(int fd, const Vector<String16>& /*args*/, bool asProto) override {
+ return doDump(fd, Vector<String16>(), asProto);
+ }
+
+ status_t dumpAll(int fd, const Vector<String16>& args, bool asProto) override {
+ return doDump(fd, args, asProto);
+ }
+
+ status_t doDump(int fd, const Vector<String16>& args, bool asProto);
+
+ /*
+ * Attributes
+ */
+
// GpuStats access must be protected by mStateLock
std::mutex mStateLock;
};