On 5/19/20 3:01 PM, Daniel P. Berrangé wrote:
Currently the value for an enum is only emitted if it is a plain
string. If the enum is an integer or hex value, or a complex code block,
it is omitted from the API build. This fixes that by emitting the raw
value if no string value is present.
With this change:
<macro name='LIBVIR_CHECK_VERSION'
file='libvirt-common'
params='major,minor,micro'>
<macro name='LIBVIR_VERSION_NUMBER'
file='libvirt-common'>
<macro name='VIR_COPY_CPUMAP'
file='libvirt-domain'
params='cpumaps,maplen,vcpu,cpumap'>
...snip...
<macro name='LIBVIR_CHECK_VERSION'
file='libvirt-common'
params='major,minor,micro'
raw='((major) * 1000000 + (minor) * 1000 + (micro) <=
LIBVIR_VERSION_NUMBER)'>
<macro name='LIBVIR_VERSION_NUMBER'
file='libvirt-common'
raw='6004000'>
<macro name='VIR_COPY_CPUMAP'
file='libvirt-domain'
params='cpumaps,maplen,vcpu,cpumap'
raw='memcpy(cpumap, VIR_GET_CPUMAP(cpumaps, maplen, vcpu),
maplen)'>
...snip...
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
scripts/apibuild.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
I'm seeing some weird errors after I apply this one, like:
make[2]: Entering directory
'/home/zippy/work/libvirt/libvirt.git/_build/docs'
/usr/bin/xsltproc --nonet -o ./ \
--stringparam builddir '/home/zippy/work/libvirt/libvirt.git/_build' \
--stringparam timestamp "Thu May 21 12:42:53 UTC 2020" \
../../docs/newapi.xsl libvirt-api.xml
libvirt-api.xml:2092: parser error : Unescaped '<' not allowed in
attributes values
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 +
(micro)
^
libvirt-api.xml:2092: parser error : attributes construct error
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 +
(micro)
^
libvirt-api.xml:2092: parser error : Couldn't find end of Start Tag
macro line 2092
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 +
(micro)
^
libvirt-api.xml:2092: parser error : StartTag: invalid element name
params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 +
(micro) <
^
libvirt-api.xml:2097: parser error : Opening and ending tag mismatch:
symbols line 2091 and macro
</macro>
^
libvirt-api.xml:2146: parser error : xmlParseEntityRef: no name
_CPU_USED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) / 8] &
^
libvirt-api.xml:2146: parser error : Unescaped '<' not allowed in
attributes values
_USED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) /
8] & (1
^
libvirt-api.xml:2146: parser error : attributes construct error
_USED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) /
8] & (1
^
libvirt-api.xml:2146: parser error : Couldn't find end of Start Tag
macro line 2146
_USED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) /
8] & (1
^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
USED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) /
8] & (1 <
^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
SED' file='libvirt-domain' params='cpumap,cpu'
raw='((cpumap)[(cpu) / 8]
& (1 <<
^
libvirt-api.xml:2150: parser error : Opening and ending tag mismatch:
api line 2 and macro
</macro>
^
libvirt-api.xml:2151: parser error : Extra content at the end of the
document
<macro name='VIR_DOMAIN_BANDWIDTH_IN_AVERAGE'
file='libvirt-domain'
string='
^
unable to parse libvirt-api.xml
Michal