On 12/02/2011 06:35 AM, Gerd Hoffmann wrote:
The readme has quite a lot of detail about the syntax. The parser is
pretty complete already.
https://github.com/aliguori/qidl/blob/master/qc.md
Ah, nice. Any plans to support lists there, so it is possible to save
the state of (multiple) in-flight transactions?
I had support for lists locally and just pushed it. It is based on GSList and
uses a marker to indicate the type. So:
struct MyDevice {
int32_t reg1;
int32_t reg2;
GSList _type_is(MyRequest) *pending_requests;
};
This is nice and works and extends to any list type but the syntax is awkward.
So I also swizzled things so that we run through the preprocessor first such
that we can do:
#define QSList(a) GSList _type_is(MyRequest)
struct MyDevice {
int32_t reg1;
int32_t reg2;
QSList(MyRequest) *pending_requests;
};
Regards,
Anthony Liguori
But I want to get us moving on QOM first before I go any further with
this. We can always go back and remove the manually written visit
functions.
Sure, one step at a time. It helps when reviewing to have a rough idea
of the big pixture though ...
cheers,
Gerd