cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

framebuffer.h (2383B)


      1#ifndef QEMU_FRAMEBUFFER_H
      2#define QEMU_FRAMEBUFFER_H
      3
      4#include "exec/memory.h"
      5
      6/* Framebuffer device helper routines.  */
      7
      8typedef void (*drawfn)(void *, uint8_t *, const uint8_t *, int, int);
      9
     10/* framebuffer_update_memory_section: Update framebuffer
     11 * #MemoryRegionSection, for example if the framebuffer is switched to
     12 * a different memory area.
     13 *
     14 * @mem_section: Output #MemoryRegionSection, to be passed to
     15 * framebuffer_update_display().
     16 * @root: #MemoryRegion within which the framebuffer lies
     17 * @base: Base address of the framebuffer within @root.
     18 * @rows: Height of the screen.
     19 * @src_width: Number of bytes in framebuffer memory between two rows.
     20 */
     21void framebuffer_update_memory_section(
     22    MemoryRegionSection *mem_section,
     23    MemoryRegion *root,
     24    hwaddr base,
     25    unsigned rows,
     26    unsigned src_width);
     27
     28/* framebuffer_update_display: Draw the framebuffer on a surface.
     29 *
     30 * @ds: #DisplaySurface to draw to.
     31 * @mem_section: #MemoryRegionSection provided by
     32 * framebuffer_update_memory_section().
     33 * @cols: Width the screen.
     34 * @rows: Height of the screen.
     35 * @src_width: Number of bytes in framebuffer memory between two rows.
     36 * @dest_row_pitch: Number of bytes in the surface data between two rows.
     37 * Negative if the framebuffer is stored in the opposite order (e.g.
     38 * bottom-to-top) compared to the framebuffer.
     39 * @dest_col_pitch: Number of bytes in the surface data between two pixels.
     40 * Negative if the framebuffer is stored in the opposite order (e.g.
     41 * right-to-left) compared to the framebuffer.
     42 * @invalidate: True if the function should redraw the whole screen
     43 * without checking the DIRTY_MEMORY_VGA dirty bitmap.
     44 * @fn: Drawing function to be called for each row that has to be drawn.
     45 * @opaque: Opaque pointer passed to @fn.
     46 * @first_row: Pointer to an integer, receives the number of the first row
     47 * that was drawn (either the first dirty row, or 0 if @invalidate is true).
     48 * @last_row: Pointer to an integer, receives the number of the last row that
     49 * was drawn (either the last dirty row, or @rows-1 if @invalidate is true).
     50 */
     51void framebuffer_update_display(
     52    DisplaySurface *ds,
     53    MemoryRegionSection *mem_section,
     54    int cols,
     55    int rows,
     56    int src_width,
     57    int dest_row_pitch,
     58    int dest_col_pitch,
     59    int invalidate,
     60    drawfn fn,
     61    void *opaque,
     62    int *first_row,
     63    int *last_row);
     64
     65#endif