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

i8257.h (941B)


      1#ifndef HW_I8257_H
      2#define HW_I8257_H
      3
      4#include "hw/isa/isa.h"
      5#include "exec/ioport.h"
      6#include "qom/object.h"
      7
      8#define TYPE_I8257 "i8257"
      9OBJECT_DECLARE_SIMPLE_TYPE(I8257State, I8257)
     10
     11typedef struct I8257Regs {
     12    int now[2];
     13    uint16_t base[2];
     14    uint8_t mode;
     15    uint8_t page;
     16    uint8_t pageh;
     17    uint8_t dack;
     18    uint8_t eop;
     19    IsaDmaTransferHandler transfer_handler;
     20    void *opaque;
     21} I8257Regs;
     22
     23struct I8257State {
     24    /* <private> */
     25    ISADevice parent_obj;
     26
     27    /* <public> */
     28    int32_t base;
     29    int32_t page_base;
     30    int32_t pageh_base;
     31    int32_t dshift;
     32
     33    uint8_t status;
     34    uint8_t command;
     35    uint8_t mask;
     36    uint8_t flip_flop;
     37    I8257Regs regs[4];
     38    MemoryRegion channel_io;
     39    MemoryRegion cont_io;
     40
     41    QEMUBH *dma_bh;
     42    bool dma_bh_scheduled;
     43    int running;
     44    PortioList portio_page;
     45    PortioList portio_pageh;
     46};
     47
     48void i8257_dma_init(ISABus *bus, bool high_page_enable);
     49
     50#endif