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

lm4549.h (1058B)


      1/*
      2 * LM4549 Audio Codec Interface
      3 *
      4 * Copyright (c) 2011
      5 * Written by Mathieu Sonet - www.elasticsheep.com
      6 *
      7 * This code is licensed under the GPL.
      8 *
      9 * *****************************************************************
     10 */
     11
     12#ifndef HW_LM4549_H
     13#define HW_LM4549_H
     14
     15#include "audio/audio.h"
     16#include "exec/hwaddr.h"
     17
     18typedef void (*lm4549_callback)(void *opaque);
     19
     20#define LM4549_BUFFER_SIZE (512 * 2) /* 512 16-bit stereo samples */
     21
     22
     23typedef struct {
     24    QEMUSoundCard card;
     25    SWVoiceOut *voice;
     26    uint32_t voice_is_active;
     27
     28    uint16_t regfile[128];
     29    lm4549_callback data_req_cb;
     30    void *opaque;
     31
     32    uint16_t buffer[LM4549_BUFFER_SIZE];
     33    uint32_t buffer_level;
     34} lm4549_state;
     35
     36extern const VMStateDescription vmstate_lm4549_state;
     37
     38
     39void lm4549_init(lm4549_state *s, lm4549_callback data_req, void *opaque);
     40uint32_t lm4549_read(lm4549_state *s, hwaddr offset);
     41void lm4549_write(lm4549_state *s, hwaddr offset, uint32_t value);
     42uint32_t lm4549_write_samples(lm4549_state *s, uint32_t left, uint32_t right);
     43
     44#endif /* HW_LM4549_H */