Revision b23b0fd0 hw/etraxfs_pic.c
b/hw/etraxfs_pic.c | ||
---|---|---|
36 | 36 |
#define R_R_GURU 4 |
37 | 37 |
#define R_MAX 5 |
38 | 38 |
|
39 |
struct fs_pic_state_t
|
|
39 |
struct fs_pic_state |
|
40 | 40 |
{ |
41 | 41 |
CPUState *env; |
42 | 42 |
uint32_t regs[R_MAX]; |
43 | 43 |
}; |
44 | 44 |
|
45 |
static void pic_update(struct fs_pic_state_t *fs)
|
|
45 |
static void pic_update(struct fs_pic_state *fs) |
|
46 | 46 |
{ |
47 | 47 |
CPUState *env = fs->env; |
48 | 48 |
uint32_t vector = 0; |
... | ... | |
80 | 80 |
|
81 | 81 |
static uint32_t pic_readl (void *opaque, target_phys_addr_t addr) |
82 | 82 |
{ |
83 |
struct fs_pic_state_t *fs = opaque;
|
|
83 |
struct fs_pic_state *fs = opaque; |
|
84 | 84 |
uint32_t rval; |
85 | 85 |
|
86 | 86 |
rval = fs->regs[addr >> 2]; |
... | ... | |
91 | 91 |
static void |
92 | 92 |
pic_writel (void *opaque, target_phys_addr_t addr, uint32_t value) |
93 | 93 |
{ |
94 |
struct fs_pic_state_t *fs = opaque;
|
|
94 |
struct fs_pic_state *fs = opaque; |
|
95 | 95 |
D(printf("%s addr=%x val=%x\n", __func__, addr, value)); |
96 | 96 |
|
97 | 97 |
if (addr == R_RW_MASK) { |
... | ... | |
120 | 120 |
|
121 | 121 |
static void irq_handler(void *opaque, int irq, int level) |
122 | 122 |
{ |
123 |
struct fs_pic_state_t *fs = (void *)opaque;
|
|
123 |
struct fs_pic_state *fs = (void *)opaque; |
|
124 | 124 |
irq -= 1; |
125 | 125 |
fs->regs[R_R_VECT] &= ~(1 << irq); |
126 | 126 |
fs->regs[R_R_VECT] |= (!!level << irq); |
... | ... | |
130 | 130 |
|
131 | 131 |
static void nmi_handler(void *opaque, int irq, int level) |
132 | 132 |
{ |
133 |
struct fs_pic_state_t *fs = (void *)opaque;
|
|
133 |
struct fs_pic_state *fs = (void *)opaque; |
|
134 | 134 |
CPUState *env = fs->env; |
135 | 135 |
uint32_t mask; |
136 | 136 |
|
... | ... | |
148 | 148 |
|
149 | 149 |
static void guru_handler(void *opaque, int irq, int level) |
150 | 150 |
{ |
151 |
struct fs_pic_state_t *fs = (void *)opaque;
|
|
151 |
struct fs_pic_state *fs = (void *)opaque; |
|
152 | 152 |
cpu_abort(fs->env, "%s unsupported exception\n", __func__); |
153 | 153 |
} |
154 | 154 |
|
155 | 155 |
struct etraxfs_pic *etraxfs_pic_init(CPUState *env, target_phys_addr_t base) |
156 | 156 |
{ |
157 |
struct fs_pic_state_t *fs = NULL;
|
|
157 |
struct fs_pic_state *fs = NULL; |
|
158 | 158 |
struct etraxfs_pic *pic = NULL; |
159 | 159 |
int intr_vect_regs; |
160 | 160 |
|
Also available in: Unified diff