~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to hw/pl061.c

  • Committer: blueswir1
  • Date: 2007-11-25 08:48:16 UTC
  • Revision ID: git-v1:b76482e76560345c00e7d6c89199ced204a926d2
 Fix buffer mux handling for unconnected serial ports


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3737 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
240
240
   pl061_write
241
241
};
242
242
 
243
 
static void pl061_save(QEMUFile *f, void *opaque)
244
 
{
245
 
    pl061_state *s = (pl061_state *)opaque;
246
 
 
247
 
    qemu_put_be32(f, s->locked);
248
 
    qemu_put_be32(f, s->data);
249
 
    qemu_put_be32(f, s->old_data);
250
 
    qemu_put_be32(f, s->dir);
251
 
    qemu_put_be32(f, s->isense);
252
 
    qemu_put_be32(f, s->ibe);
253
 
    qemu_put_be32(f, s->iev);
254
 
    qemu_put_be32(f, s->im);
255
 
    qemu_put_be32(f, s->istate);
256
 
    qemu_put_be32(f, s->afsel);
257
 
    qemu_put_be32(f, s->dr2r);
258
 
    qemu_put_be32(f, s->dr4r);
259
 
    qemu_put_be32(f, s->dr8r);
260
 
    qemu_put_be32(f, s->odr);
261
 
    qemu_put_be32(f, s->pur);
262
 
    qemu_put_be32(f, s->pdr);
263
 
    qemu_put_be32(f, s->slr);
264
 
    qemu_put_be32(f, s->den);
265
 
    qemu_put_be32(f, s->cr);
266
 
    qemu_put_be32(f, s->float_high);
267
 
}
268
 
 
269
 
static int pl061_load(QEMUFile *f, void *opaque, int version_id)
270
 
{
271
 
    pl061_state *s = (pl061_state *)opaque;
272
 
    if (version_id != 1)
273
 
        return -EINVAL;
274
 
 
275
 
    s->locked = qemu_get_be32(f);
276
 
    s->data = qemu_get_be32(f);
277
 
    s->old_data = qemu_get_be32(f);
278
 
    s->dir = qemu_get_be32(f);
279
 
    s->isense = qemu_get_be32(f);
280
 
    s->ibe = qemu_get_be32(f);
281
 
    s->iev = qemu_get_be32(f);
282
 
    s->im = qemu_get_be32(f);
283
 
    s->istate = qemu_get_be32(f);
284
 
    s->afsel = qemu_get_be32(f);
285
 
    s->dr2r = qemu_get_be32(f);
286
 
    s->dr4r = qemu_get_be32(f);
287
 
    s->dr8r = qemu_get_be32(f);
288
 
    s->odr = qemu_get_be32(f);
289
 
    s->pur = qemu_get_be32(f);
290
 
    s->pdr = qemu_get_be32(f);
291
 
    s->slr = qemu_get_be32(f);
292
 
    s->den = qemu_get_be32(f);
293
 
    s->cr = qemu_get_be32(f);
294
 
    s->float_high = qemu_get_be32(f);
295
 
 
296
 
    return 0;
297
 
}
298
 
 
299
243
/* Returns an array of inputs.  */
300
244
qemu_irq *pl061_init(uint32_t base, qemu_irq irq, qemu_irq **out)
301
245
{
312
256
    if (out)
313
257
        *out = s->out;
314
258
 
315
 
    register_savevm("pl061_gpio", -1, 1, pl061_save, pl061_load, s);
 
259
    /* ??? Save/restore.  */
316
260
    return qemu_allocate_irqs(pl061_set_irq, s, 8);
317
261
}
318
262