summaryrefslogtreecommitdiff
path: root/generator.py
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2012-01-20 11:43:28 -0700
committerEric Blake <eblake@redhat.com>2012-01-20 16:05:51 -0700
commitc8d44e634c381572975f670cd91af6fae01d99c6 (patch)
treeb204332c83e55eecb062fe11414dc6952da56a3a /generator.py
parente8fe76bdbf50f59fc2d7b89280601a053e6fd145 (diff)
downloadlibvirt-python-c8d44e634c381572975f670cd91af6fae01d99c6.tar.gz
API: make declaration of _LAST enum values conditional
Although this is a public API break, it only affects users that were compiling against *_LAST values, and can be trivially worked around without impacting compilation against older headers, by the user defining VIR_ENUM_SENTINELS before using libvirt.h. It is not an ABI break, since enum values do not appear as .so entry points. Meanwhile, it prevents users from using non-stable enum values without explicitly acknowledging the risk of doing so. See this list discussion: https://www.redhat.com/archives/libvir-list/2012-January/msg00804.html * include/libvirt/libvirt.h.in: Hide all sentinels behind LIBVIRT_ENUM_SENTINELS, and add missing sentinels. * src/internal.h (VIR_DEPRECATED): Allow inclusion after libvirt.h. (LIBVIRT_ENUM_SENTINELS): Expose sentinels internally. * daemon/libvirtd.h: Use the sentinels. * src/remote/remote_protocol.x (includes): Don't expose sentinels. * python/generator.py (enum): Likewise. * tests/cputest.c (cpuTestCompResStr): Silence compiler warning. * tools/virsh.c (vshDomainStateReasonToString) (vshDomainControlStateToString): Likewise.
Diffstat (limited to 'generator.py')
-rwxr-xr-xgenerator.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/generator.py b/generator.py
index 6fee3a4..de635dc 100755
--- a/generator.py
+++ b/generator.py
@@ -205,7 +205,8 @@ def enum(type, name, value):
value = 1
elif value == 'VIR_DOMAIN_AFFECT_CONFIG':
value = 2
- enums[type][name] = value
+ if name[-5:] != '_LAST':
+ enums[type][name] = value
def qemu_enum(type, name, value):
if not qemu_enums.has_key(type):