mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
Save/restore for stellaris boards.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4824 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
ab19b0ecfd
commit
23e3929403
12 changed files with 761 additions and 14 deletions
|
@ -47,6 +47,31 @@ static void stellaris_gamepad_put_key(void * opaque, int keycode)
|
|||
s->extension = 0;
|
||||
}
|
||||
|
||||
static void stellaris_gamepad_save(QEMUFile *f, void *opaque)
|
||||
{
|
||||
gamepad_state *s = (gamepad_state *)opaque;
|
||||
int i;
|
||||
|
||||
qemu_put_be32(f, s->extension);
|
||||
for (i = 0; i < s->num_buttons; i++)
|
||||
qemu_put_byte(f, s->buttons[i].pressed);
|
||||
}
|
||||
|
||||
static int stellaris_gamepad_load(QEMUFile *f, void *opaque, int version_id)
|
||||
{
|
||||
gamepad_state *s = (gamepad_state *)opaque;
|
||||
int i;
|
||||
|
||||
if (version_id != 1)
|
||||
return -EINVAL;
|
||||
|
||||
s->extension = qemu_get_be32(f);
|
||||
for (i = 0; i < s->num_buttons; i++)
|
||||
s->buttons[i].pressed = qemu_get_byte(f);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Returns an array 5 ouput slots. */
|
||||
void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode)
|
||||
{
|
||||
|
@ -61,6 +86,8 @@ void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode)
|
|||
}
|
||||
s->num_buttons = n;
|
||||
qemu_add_kbd_event_handler(stellaris_gamepad_put_key, s);
|
||||
register_savevm("stellaris_gamepad", -1, 1,
|
||||
stellaris_gamepad_save, stellaris_gamepad_load, s);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue