dev-arm: Add a VExpress_GEM5_V2 platform with GICv3 support
[gem5.git] / src / dev / pixelpump.hh
index 159ee79cb95b25a4ede14e9f1f6480fc906dbf71..bc21fca753ac03ed441517e3cdc56d5dc8f732b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 ARM Limited
+ * Copyright (c) 2015, 2017 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -148,15 +148,22 @@ class BasePixelPump
       public Serializable
 {
   public:
-    BasePixelPump(EventManager &em, ClockDomain &pxl_clk, unsigned pixel_chunk);
+    BasePixelPump(EventManager &em, ClockDomain &pxl_clk,
+                  unsigned pixel_chunk);
     virtual ~BasePixelPump();
 
     void serialize(CheckpointOut &cp) const override;
     void unserialize(CheckpointIn &cp) override;
 
   public: // Public API
-    /** Starting pushing pixels using the supplied display timings. */
-    void start(const DisplayTimings &timings);
+    /** Update frame size using display timing */
+    void updateTimings(const DisplayTimings &timings);
+
+    /** Render an entire frame in KVM execution mode */
+    void renderFrame();
+
+    /** Starting pushing pixels in timing mode */
+    void start();
 
     /** Immediately stop pushing pixels */
     void stop();
@@ -285,6 +292,9 @@ class BasePixelPump
     void beginLine();
     void renderPixels();
 
+    /** Fast and event-free line rendering function */
+    void renderLine();
+
     /** Convenience vector when doing operations on all events */
     std::vector<PixelEvent *> pixelEvents;