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




Reply via email to