* Atlas Khan ([email protected]) wrote: > I am watching i8259.c in \hw folder in QEMU. here is something like this > > > static const VMStateDescription vmstate_pic = { > .name = "i8259", > .version_id = 1, > .minimum_version_id = 1, > .minimum_version_id_old = 1, > .fields = (VMStateField[]) { > VMSTATE_UINT8(last_irr, PicState), > VMSTATE_UINT8(irr, PicState), > VMSTATE_UINT8(imr, PicState), > VMSTATE_UINT8(isr, PicState), > VMSTATE_UINT8(priority_add, PicState), > VMSTATE_UINT8(irq_base, PicSthisate), > VMSTATE_UINT8(read_reg_select, PicState), > VMSTATE_UINT8(poll, PicState), > VMSTATE_UINT8(special_mask, PicState), > VMSTATE_UINT8(init_state, PicState), > VMSTATE_UINT8(auto_eoi, PicState), > VMSTATE_UINT8(rotate_on_auto_eoi, PicState), > VMSTATE_UINT8(special_fully_nested_mode, PicState), > VMSTATE_UINT8(init4, PicState), > VMSTATE_UINT8(single_mode, PicState), > VMSTATE_UINT8(elcr, PicState), > VMSTATE_END_OF_LIST() > } > }; > > here what does this dot shows and what is this VMSTATE_UINT8 function?
The . is about assigning into named fields in a structure; it's just neater than the old C way of having to keep all the fields in order. See the def of VMStateDescription in include/migration/vmstate.h The VMSTATE_UINT8 is a macro declaring that there is a byte/uint8 member see ./include/migration/vmstate.h and docs/migration.txt for a bit of a description. Dave -- Dr. David Alan Gilbert / [email protected] / Manchester, UK
