Generate libvirt constants from libvirt sources.

- Add a yacc-based parser and a hand-written lexer to read the
remote_protocol.x file from libvirt's sources.
- Use the new parser to generate the constants used to communicate with
libvirt.
This commit is contained in:
Geoff Hickey
2017-11-02 19:42:44 -04:00
parent 8b2644f7ff
commit 5a6654f07a
11 changed files with 1340 additions and 75 deletions

View File

@@ -15,54 +15,11 @@
// Package constants provides shared data for the libvirt package.
package constants
// protocol procedure numbers
const (
ProgramVersion = 1
ProgramRemote = 0x20008086
ProgramQEMU = 0x20008087
ProgramKeepAlive = 0x6b656570
)
// libvirt procedure identifiers
// These are libvirt procedure numbers which correspond to each respective
// API call between remote_internal driver and libvirtd. Although stable.
// Each call is identified by a unique number which *may change at any time*.
//
// Examples:
// REMOTE_PROC_CONNECT_OPEN = 1
// REMOTE_PROC_DOMAIN_DEFINE_XML = 11
// REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207,
//
// See:
// https://libvirt.org/git/?p=libvirt.git;a=blob_plain;f=src/remote/remote_protocol.x;hb=HEAD
const (
ProcConnectOpen = 1
ProcConnectClose = 2
ProcConnectGetCapabilties = 7
ProcDomainGetXMLDesc = 14
ProcDomainLookupByName = 23
ProcDomainReboot = 27
ProcAuthList = 66
ProcStoragePoolRefresh = 83
ProcStoragePoolLookupByName = 84
ProcConnectGetLibVersion = 157
ProcDomainMemoryStats = 159
ProcDomainCreateWithFlags = 196
ProcDomainMigrateSetMaxSpeed = 207
ProcDomainGetState = 212
ProcDomainUndefineFlags = 231
ProcDomainDestroyFlags = 234
ProcDomainReset = 245
ProcDomainSetBlockIOTune = 252
ProcDomainGetBlockIOTune = 253
ProcDomainShutdownFlags = 258
ProcConnectListAllDomains = 273
ProcConnectListAllStoragePools = 281
ProcConnectListAllSecrets = 287
ProcMigratePerformParams = 305
ProcDomainDefineXMLFlags = 350
)
// qemu procedure identifiers
const (
QEMUDomainMonitor = 1