Mathias Krause <mathias.kra...@secunet.com> writes: > Hi Kevin, > > On 17.09.2010 12:44, Kevin Wolf wrote: >> Hi Mathias, >> >> Am 17.09.2010 08:42, schrieb Mathias Krause: >>>> Using QEMU's block devices instead of a simple file would be >>>> more consistent with the rest of QEMU and allow reading the >>>> CMOS data not only from a file but also from an URL or other >>>> sources. >>> Thanks for the hint. Since this is my first contribution to the project >>> I'm not that familiar with the code. Looking at other places, e.g. how >>> the -kernel option gets handled, I just see FILE everywhere. Can you >>> give me some pointers how to use this interface? >> >> Have a look at block.h which contains the prototypes for the public >> block layer interface. >> >> Basically, you need to create a BlockDriverState with bdrv_new() and >> then open it with bdrv_open(). You'll want to specify the raw block >> driver for opening the image, you get it with bdrv_find_format("raw"). >> bdrv_pread/pwrite are the right functions to access the file with byte >> granularity (other functions work on 512 byte sectors). bdrv_delete >> frees the the BlockDriverState when you're done. > > Thank you for the detailed writeup. I think I should figure out how to > use it myself now. Albeit there seem to be not many users of this > interface right now. Looks like it's currently only used for storage > devices. So I'm questioning myself: What _real_ benefit would it bring > to use the QEMU block device layer for the CMOS file?
I'd view initial CMOS contents as configuration. We don't use the block layer to access configuration files.