diff --git a/cfg.mk b/cfg.mk index 4fd6c9894c58f08182ff09a3434829ff66162b37..cb059f5396adbcc8eda8f7f093fff0e3c41e77f2 100644 --- a/cfg.mk +++ b/cfg.mk @@ -613,7 +613,7 @@ exclude_file_name_regexp--sc_prohibit_asprintf = \ exclude_file_name_regexp--sc_prohibit_can_not = ^po/ exclude_file_name_regexp--sc_prohibit_close = \ - (\.py$$|^docs/|(src/util/files\.c|src/libvirt\.c)$$) + (\.p[yl]$$|^docs/|(src/util/files\.c|src/libvirt\.c)$$) exclude_file_name_regexp--sc_prohibit_doubled_word = ^po/ diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl index dc58ce8f7b3e097d1ddb66ff34e322a8d1058cd2..c53ebc875875951c9e05f6c087b63089c1dc7571 100755 --- a/daemon/remote_generator.pl +++ b/daemon/remote_generator.pl @@ -23,9 +23,11 @@ use Getopt::Std; our ($opt_p, $opt_t, $opt_a, $opt_r, $opt_d, $opt_c, $opt_b, $opt_k); getopts ('ptardcbk'); -my $structprefix = $ARGV[0]; +my $structprefix = shift or die "missing prefix argument"; +my $protocol = shift or die "missing protocol argument"; +my @autogen; + my $procprefix = uc $structprefix; -shift; # Convert name_of_call to NameOfCall. sub name_to_ProcName { @@ -41,7 +43,7 @@ sub name_to_ProcName { # Read the input file (usually remote_protocol.x) and form an # opinion about the name, args and return type of each RPC. -my ($name, $ProcName, $id, %calls, @calls); +my ($name, $ProcName, $id, $flags, $gen, %calls, @calls); # only generate a close method if -c was passed if ($opt_c) { @@ -59,7 +61,9 @@ my $collect_args_members = 0; my $collect_ret_members = 0; my $last_name; -while (<>) { +open PROTOCOL, "<$protocol" or die "cannot open $protocol: $!"; + +while () { if ($collect_args_members) { if (/^};/) { $collect_args_members = 0; @@ -124,11 +128,28 @@ while (<>) { $collect_args_members = 0; $collect_ret_members = 0; - } elsif (/^\s*${procprefix}_PROC_(.*?)\s+=\s+(\d+),?$/) { + } elsif (/^\s*${procprefix}_PROC_(.*?)\s*=\s*(\d+)\s*,?(.*)$/) { $name = lc $1; $id = $2; + $flags = $3; $ProcName = name_to_ProcName ($name); + if ($opt_b or $opt_k) { + if (!($flags =~ m/^\s*\/\*\s*(\S+)\s+(\S+)\s*\*\/\s*$/)) { + die "invalid generator flags for ${procprefix}_PROC_${name}" + } + + $gen = $opt_b ? $1 : $2; + + if ($gen eq "autogen") { + push(@autogen, $ProcName); + } elsif ($gen eq "skipgen") { + # ignore it + } else { + die "invalid generator flags for ${procprefix}_PROC_${name}" + } + } + $calls[$id] = $calls{$name}; $collect_args_members = 0; @@ -139,6 +160,8 @@ while (<>) { } } +close(PROTOCOL); + #---------------------------------------------------------------------- # Output @@ -238,63 +261,15 @@ elsif ($opt_t) { # Bodies for dispatch functions ("remote_dispatch_bodies.h"). elsif ($opt_b) { - # list of functions that currently are not generatable - my @ungeneratable; - - if ($structprefix eq "remote") { - @ungeneratable = ("Close", - "DomainEventsDeregisterAny", - "DomainEventsRegisterAny", - "DomainMigratePrepareTunnel", - "DomainOpenConsole", - "DomainPinVcpu", - "DomainSetSchedulerParameters", - "DomainSetMemoryParameters", - "DomainSetBlkioParameters", - "Open", - "StorageVolUpload", - "StorageVolDownload", - - "AuthList", - "AuthSaslInit", - "AuthSaslStart", - "AuthSaslStep", - "AuthPolkit", - - "DomainBlockPeek", - "DomainCreateWithFlags", - "DomainEventsDeregister", - "DomainEventsRegister", - "DomainGetBlkioParameters", - "DomainGetMemoryParameters", - "DomainGetSchedulerParameters", - "DomainGetSchedulerType", - "DomainGetSecurityLabel", - "DomainGetVcpus", - "DomainMemoryPeek", - "DomainMemoryStats", - "DomainMigratePrepare", - "DomainMigratePrepare2", - "GetType", - "NodeDeviceGetParent", - "NodeGetSecurityModel", - "SecretGetValue"); - } elsif ($structprefix eq "qemu") { - @ungeneratable = ("MonitorCommand"); - } - - my %ug = map { $_ => 1 } @ungeneratable; + my %generate = map { $_ => 1 } @autogen; my @keys = sort (keys %calls); foreach (@keys) { # skip things which are REMOTE_MESSAGE next if $calls{$_}->{msg}; - if (exists($ug{$calls{$_}->{ProcName}})) { - print "\n/* ${structprefix}Dispatch$calls{$_}->{ProcName} has " . - "to be implemented manually */\n"; - next; - } + # skip procedures not on generate list + next if ! exists($generate{$calls{$_}->{ProcName}}); my $has_node_device = 0; my @vars_list = (); @@ -550,6 +525,8 @@ elsif ($opt_b) { } else { $single_ret_by_ref = 1; } + } elsif ($ret_member =~ m/^(\/)?\*/) { + # ignore comments } else { die "unhandled type for return value: $ret_member"; } @@ -756,63 +733,7 @@ elsif ($opt_b) { # Bodies for client functions ("remote_client_bodies.h"). elsif ($opt_k) { - # list of functions that currently are not generatable - my @ungeneratable; - - if ($structprefix eq "remote") { - @ungeneratable = ("Close", - "DomainEventsDeregisterAny", - "DomainEventsRegisterAny", - "DomainMigratePrepareTunnel", - "DomainOpenConsole", - "DomainSetSchedulerParameters", - "DomainSetMemoryParameters", - "DomainSetBlkioParameters", - "Open", - "StorageVolUpload", - "StorageVolDownload", - - "AuthList", - "AuthSaslInit", - "AuthSaslStart", - "AuthSaslStep", - "AuthPolkit", - - "DomainCreate", - "DomainDestroy", - "FindStoragePoolSources", - "IsSecure", - "SupportsFeature", - "NodeGetCellsFreeMemory", - "ListDomains", - "GetURI", - "NodeDeviceDettach", - "NodeDeviceReset", - "NodeDeviceReAttach", - - "DomainBlockPeek", - "DomainCreateWithFlags", - "DomainEventsDeregister", - "DomainEventsRegister", - "DomainGetBlkioParameters", - "DomainGetMemoryParameters", - "DomainGetSchedulerParameters", - "DomainGetSchedulerType", - "DomainGetSecurityLabel", - "DomainGetVcpus", - "DomainMemoryPeek", - "DomainMemoryStats", - "DomainMigratePrepare", - "DomainMigratePrepare2", - "GetType", - "NodeDeviceGetParent", - "NodeGetSecurityModel", - "SecretGetValue"); - } elsif ($structprefix eq "qemu") { - @ungeneratable = ("MonitorCommand"); - } - - my %ug = map { $_ => 1 } @ungeneratable; + my %generate = map { $_ => 1 } @autogen; my @keys = sort (keys %calls); foreach (@keys) { @@ -821,11 +742,8 @@ elsif ($opt_k) { # skip things which are REMOTE_MESSAGE next if $call->{msg}; - if (exists($ug{$call->{ProcName}})) { - print "\n/* ${structprefix}Dispatch$call->{ProcName} has to " . - "be implemented manually */\n"; - next; - } + # skip procedures not on generate list + next if ! exists($generate{$call->{ProcName}}); # handle arguments to the function my @args_list = (); @@ -999,11 +917,13 @@ elsif ($opt_k) { push(@ret_list, "memcpy(result->$3, ret.$3, sizeof result->$3);"); } elsif ($ret_member =~ m/<\S+>;/ or $ret_member =~ m/\[\S+\];/) { # just make all other array types fail - die "unhandled type for multi-return-value: $ret_member"; + die "unhandled type for multi-return-value for " . + "procedure $call->{name}: $ret_member"; } elsif ($ret_member =~ m/^(unsigned )?(char|short|int|hyper) (\S+);/) { push(@ret_list, "result->$3 = ret.$3;"); } else { - die "unhandled type for multi-return-value: $ret_member"; + die "unhandled type for multi-return-value for " . + "procedure $call->{name}: $ret_member"; } } elsif ($ret_member =~ m/^remote_nonnull_string (\S+)<(\S+)>;/) { $single_ret_as_list = 1; @@ -1089,8 +1009,11 @@ elsif ($opt_k) { } else { die "unhandled type for return value: $ret_member"; } + } elsif ($ret_member =~ m/^(\/)?\*/) { + # ignore comments } else { - die "unhandled type for return value: $ret_member"; + die "unhandled type for return value for procedure " . + "$call->{name}: $ret_member"; } } } diff --git a/src/remote/qemu_protocol.x b/src/remote/qemu_protocol.x index 9eed73fa9147c0e5fda291b3b2a4004361732b32..fa453f4bbc6914cbbcf36ab68dd9144a90b67db1 100644 --- a/src/remote/qemu_protocol.x +++ b/src/remote/qemu_protocol.x @@ -42,5 +42,8 @@ const QEMU_PROGRAM = 0x20008087; const QEMU_PROTOCOL_VERSION = 1; enum qemu_procedure { - QEMU_PROC_MONITOR_COMMAND = 1 + /* Each function must have a two-word comment. The first word is + * whether remote_generator.pl handles daemon, the second whether + * it handles src/remote. */ + QEMU_PROC_MONITOR_COMMAND = 1 /* skipgen skipgen */ }; diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index 2cf6022d51c73014174b89cb2b479ce0b1879e44..99e5c95f3db37590872e4bcccba7d7ede73f56ab 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -1953,241 +1953,248 @@ const REMOTE_PROGRAM = 0x20008086; const REMOTE_PROTOCOL_VERSION = 1; enum remote_procedure { - REMOTE_PROC_OPEN = 1, - REMOTE_PROC_CLOSE = 2, - REMOTE_PROC_GET_TYPE = 3, - REMOTE_PROC_GET_VERSION = 4, - REMOTE_PROC_GET_MAX_VCPUS = 5, - REMOTE_PROC_NODE_GET_INFO = 6, - REMOTE_PROC_GET_CAPABILITIES = 7, - REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8, - REMOTE_PROC_DOMAIN_CREATE = 9, - REMOTE_PROC_DOMAIN_CREATE_XML = 10, - - REMOTE_PROC_DOMAIN_DEFINE_XML = 11, - REMOTE_PROC_DOMAIN_DESTROY = 12, - REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13, - REMOTE_PROC_DOMAIN_GET_XML_DESC = 14, - REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15, - REMOTE_PROC_DOMAIN_GET_INFO = 16, - REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17, - REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18, - REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19, - REMOTE_PROC_DOMAIN_GET_VCPUS = 20, - - REMOTE_PROC_LIST_DEFINED_DOMAINS = 21, - REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22, - REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23, - REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24, - REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25, - REMOTE_PROC_DOMAIN_PIN_VCPU = 26, - REMOTE_PROC_DOMAIN_REBOOT = 27, - REMOTE_PROC_DOMAIN_RESUME = 28, - REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29, - REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30, - - REMOTE_PROC_DOMAIN_SET_MEMORY = 31, - REMOTE_PROC_DOMAIN_SET_VCPUS = 32, - REMOTE_PROC_DOMAIN_SHUTDOWN = 33, - REMOTE_PROC_DOMAIN_SUSPEND = 34, - REMOTE_PROC_DOMAIN_UNDEFINE = 35, - REMOTE_PROC_LIST_DEFINED_NETWORKS = 36, - REMOTE_PROC_LIST_DOMAINS = 37, - REMOTE_PROC_LIST_NETWORKS = 38, - REMOTE_PROC_NETWORK_CREATE = 39, - REMOTE_PROC_NETWORK_CREATE_XML = 40, - - REMOTE_PROC_NETWORK_DEFINE_XML = 41, - REMOTE_PROC_NETWORK_DESTROY = 42, - REMOTE_PROC_NETWORK_GET_XML_DESC = 43, - REMOTE_PROC_NETWORK_GET_AUTOSTART = 44, - REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45, - REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46, - REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47, - REMOTE_PROC_NETWORK_SET_AUTOSTART = 48, - REMOTE_PROC_NETWORK_UNDEFINE = 49, - REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50, - - REMOTE_PROC_NUM_OF_DOMAINS = 51, - REMOTE_PROC_NUM_OF_NETWORKS = 52, - REMOTE_PROC_DOMAIN_CORE_DUMP = 53, - REMOTE_PROC_DOMAIN_RESTORE = 54, - REMOTE_PROC_DOMAIN_SAVE = 55, - REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56, - REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57, - REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58, - REMOTE_PROC_GET_HOSTNAME = 59, - REMOTE_PROC_SUPPORTS_FEATURE = 60, - - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61, - REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62, - REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63, - REMOTE_PROC_DOMAIN_BLOCK_STATS = 64, - REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65, - REMOTE_PROC_AUTH_LIST = 66, - REMOTE_PROC_AUTH_SASL_INIT = 67, - REMOTE_PROC_AUTH_SASL_START = 68, - REMOTE_PROC_AUTH_SASL_STEP = 69, - REMOTE_PROC_AUTH_POLKIT = 70, - - REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71, - REMOTE_PROC_LIST_STORAGE_POOLS = 72, - REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73, - REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74, - REMOTE_PROC_FIND_STORAGE_POOL_SOURCES = 75, - REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76, - REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77, - REMOTE_PROC_STORAGE_POOL_CREATE = 78, - REMOTE_PROC_STORAGE_POOL_BUILD = 79, - REMOTE_PROC_STORAGE_POOL_DESTROY = 80, - - REMOTE_PROC_STORAGE_POOL_DELETE = 81, - REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82, - REMOTE_PROC_STORAGE_POOL_REFRESH = 83, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85, - REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86, - REMOTE_PROC_STORAGE_POOL_GET_INFO = 87, - REMOTE_PROC_STORAGE_POOL_GET_XML_DESC = 88, - REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89, - REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90, - - REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91, - REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92, - REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93, - REMOTE_PROC_STORAGE_VOL_DELETE = 94, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96, - REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, - REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, - REMOTE_PROC_STORAGE_VOL_GET_XML_DESC = 99, - REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, - - REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101, - REMOTE_PROC_NODE_GET_FREE_MEMORY = 102, - REMOTE_PROC_DOMAIN_BLOCK_PEEK = 103, - REMOTE_PROC_DOMAIN_MEMORY_PEEK = 104, - REMOTE_PROC_DOMAIN_EVENTS_REGISTER = 105, - REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER = 106, - REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE = 107, - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2 = 108, - REMOTE_PROC_DOMAIN_MIGRATE_FINISH2 = 109, - REMOTE_PROC_GET_URI = 110, - - REMOTE_PROC_NODE_NUM_OF_DEVICES = 111, - REMOTE_PROC_NODE_LIST_DEVICES = 112, - REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME = 113, - REMOTE_PROC_NODE_DEVICE_GET_XML_DESC = 114, - REMOTE_PROC_NODE_DEVICE_GET_PARENT = 115, - REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS = 116, - REMOTE_PROC_NODE_DEVICE_LIST_CAPS = 117, - REMOTE_PROC_NODE_DEVICE_DETTACH = 118, - REMOTE_PROC_NODE_DEVICE_RE_ATTACH = 119, - REMOTE_PROC_NODE_DEVICE_RESET = 120, - - REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL = 121, - REMOTE_PROC_NODE_GET_SECURITY_MODEL = 122, - REMOTE_PROC_NODE_DEVICE_CREATE_XML = 123, - REMOTE_PROC_NODE_DEVICE_DESTROY = 124, - REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM = 125, - REMOTE_PROC_NUM_OF_INTERFACES = 126, - REMOTE_PROC_LIST_INTERFACES = 127, - REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME = 128, - REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING = 129, - REMOTE_PROC_INTERFACE_GET_XML_DESC = 130, - - REMOTE_PROC_INTERFACE_DEFINE_XML = 131, - REMOTE_PROC_INTERFACE_UNDEFINE = 132, - REMOTE_PROC_INTERFACE_CREATE = 133, - REMOTE_PROC_INTERFACE_DESTROY = 134, - REMOTE_PROC_DOMAIN_XML_FROM_NATIVE = 135, - REMOTE_PROC_DOMAIN_XML_TO_NATIVE = 136, - REMOTE_PROC_NUM_OF_DEFINED_INTERFACES = 137, - REMOTE_PROC_LIST_DEFINED_INTERFACES = 138, - REMOTE_PROC_NUM_OF_SECRETS = 139, - REMOTE_PROC_LIST_SECRETS = 140, - - REMOTE_PROC_SECRET_LOOKUP_BY_UUID = 141, - REMOTE_PROC_SECRET_DEFINE_XML = 142, - REMOTE_PROC_SECRET_GET_XML_DESC = 143, - REMOTE_PROC_SECRET_SET_VALUE = 144, - REMOTE_PROC_SECRET_GET_VALUE = 145, - REMOTE_PROC_SECRET_UNDEFINE = 146, - REMOTE_PROC_SECRET_LOOKUP_BY_USAGE = 147, - REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148, - REMOTE_PROC_IS_SECURE = 149, - REMOTE_PROC_DOMAIN_IS_ACTIVE = 150, - - REMOTE_PROC_DOMAIN_IS_PERSISTENT = 151, - REMOTE_PROC_NETWORK_IS_ACTIVE = 152, - REMOTE_PROC_NETWORK_IS_PERSISTENT = 153, - REMOTE_PROC_STORAGE_POOL_IS_ACTIVE = 154, - REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT = 155, - REMOTE_PROC_INTERFACE_IS_ACTIVE = 156, - REMOTE_PROC_GET_LIB_VERSION = 157, - REMOTE_PROC_CPU_COMPARE = 158, - REMOTE_PROC_DOMAIN_MEMORY_STATS = 159, - REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS = 160, - - REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS = 161, - REMOTE_PROC_CPU_BASELINE = 162, - REMOTE_PROC_DOMAIN_GET_JOB_INFO = 163, - REMOTE_PROC_DOMAIN_ABORT_JOB = 164, - REMOTE_PROC_STORAGE_VOL_WIPE = 165, - REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME = 166, - REMOTE_PROC_DOMAIN_EVENTS_REGISTER_ANY = 167, - REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER_ANY = 168, - REMOTE_PROC_DOMAIN_EVENT_REBOOT = 169, - REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE = 170, - - REMOTE_PROC_DOMAIN_EVENT_WATCHDOG = 171, - REMOTE_PROC_DOMAIN_EVENT_IO_ERROR = 172, - REMOTE_PROC_DOMAIN_EVENT_GRAPHICS = 173, - REMOTE_PROC_DOMAIN_UPDATE_DEVICE_FLAGS = 174, - REMOTE_PROC_NWFILTER_LOOKUP_BY_NAME = 175, - REMOTE_PROC_NWFILTER_LOOKUP_BY_UUID = 176, - REMOTE_PROC_NWFILTER_GET_XML_DESC = 177, - REMOTE_PROC_NUM_OF_NWFILTERS = 178, - REMOTE_PROC_LIST_NWFILTERS = 179, - REMOTE_PROC_NWFILTER_DEFINE_XML = 180, - - REMOTE_PROC_NWFILTER_UNDEFINE = 181, - REMOTE_PROC_DOMAIN_MANAGED_SAVE = 182, - REMOTE_PROC_DOMAIN_HAS_MANAGED_SAVE_IMAGE = 183, - REMOTE_PROC_DOMAIN_MANAGED_SAVE_REMOVE = 184, - REMOTE_PROC_DOMAIN_SNAPSHOT_CREATE_XML = 185, - REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC = 186, - REMOTE_PROC_DOMAIN_SNAPSHOT_NUM = 187, - REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_NAMES = 188, - REMOTE_PROC_DOMAIN_SNAPSHOT_LOOKUP_BY_NAME = 189, - REMOTE_PROC_DOMAIN_HAS_CURRENT_SNAPSHOT = 190, - - REMOTE_PROC_DOMAIN_SNAPSHOT_CURRENT = 191, - REMOTE_PROC_DOMAIN_REVERT_TO_SNAPSHOT = 192, - REMOTE_PROC_DOMAIN_SNAPSHOT_DELETE = 193, - REMOTE_PROC_DOMAIN_GET_BLOCK_INFO = 194, - REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON = 195, - REMOTE_PROC_DOMAIN_CREATE_WITH_FLAGS = 196, - REMOTE_PROC_DOMAIN_SET_MEMORY_PARAMETERS = 197, - REMOTE_PROC_DOMAIN_GET_MEMORY_PARAMETERS = 198, - REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS = 199, - REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS = 200, - - REMOTE_PROC_DOMAIN_OPEN_CONSOLE = 201, - REMOTE_PROC_DOMAIN_IS_UPDATED = 202, - REMOTE_PROC_GET_SYSINFO = 203, - REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204, - REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205, - REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206, - REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207, - REMOTE_PROC_STORAGE_VOL_UPLOAD = 208, - REMOTE_PROC_STORAGE_VOL_DOWNLOAD = 209, - REMOTE_PROC_DOMAIN_INJECT_NMI = 210 + /* Each function must have a two-word comment. The first word is + * whether remote_generator.pl handles daemon, the second whether + * it handles src/remote. */ + REMOTE_PROC_OPEN = 1, /* skipgen skipgen */ + REMOTE_PROC_CLOSE = 2, /* skipgen skipgen */ + REMOTE_PROC_GET_TYPE = 3, /* skipgen skipgen */ + REMOTE_PROC_GET_VERSION = 4, /* autogen autogen */ + REMOTE_PROC_GET_MAX_VCPUS = 5, /* autogen autogen */ + REMOTE_PROC_NODE_GET_INFO = 6, /* autogen autogen */ + REMOTE_PROC_GET_CAPABILITIES = 7, /* autogen autogen */ + REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8, /* autogen autogen */ + REMOTE_PROC_DOMAIN_CREATE = 9, /* autogen skipgen */ + REMOTE_PROC_DOMAIN_CREATE_XML = 10, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_DEFINE_XML = 11, /* autogen autogen */ + REMOTE_PROC_DOMAIN_DESTROY = 12, /* autogen skipgen */ + REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_XML_DESC = 14, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_INFO = 16, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_VCPUS = 20, /* skipgen skipgen */ + + REMOTE_PROC_LIST_DEFINED_DOMAINS = 21, /* autogen autogen */ + REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22, /* autogen autogen */ + REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23, /* autogen autogen */ + REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24, /* autogen autogen */ + REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25, /* autogen autogen */ + REMOTE_PROC_DOMAIN_PIN_VCPU = 26, /* skipgen autogen */ + REMOTE_PROC_DOMAIN_REBOOT = 27, /* autogen autogen */ + REMOTE_PROC_DOMAIN_RESUME = 28, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_SET_MEMORY = 31, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SET_VCPUS = 32, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SHUTDOWN = 33, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SUSPEND = 34, /* autogen autogen */ + REMOTE_PROC_DOMAIN_UNDEFINE = 35, /* autogen autogen */ + REMOTE_PROC_LIST_DEFINED_NETWORKS = 36, /* autogen autogen */ + REMOTE_PROC_LIST_DOMAINS = 37, /* autogen skipgen */ + REMOTE_PROC_LIST_NETWORKS = 38, /* autogen autogen */ + REMOTE_PROC_NETWORK_CREATE = 39, /* autogen autogen */ + REMOTE_PROC_NETWORK_CREATE_XML = 40, /* autogen autogen */ + + REMOTE_PROC_NETWORK_DEFINE_XML = 41, /* autogen autogen */ + REMOTE_PROC_NETWORK_DESTROY = 42, /* autogen autogen */ + REMOTE_PROC_NETWORK_GET_XML_DESC = 43, /* autogen autogen */ + REMOTE_PROC_NETWORK_GET_AUTOSTART = 44, /* autogen autogen */ + REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45, /* autogen autogen */ + REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46, /* autogen autogen */ + REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47, /* autogen autogen */ + REMOTE_PROC_NETWORK_SET_AUTOSTART = 48, /* autogen autogen */ + REMOTE_PROC_NETWORK_UNDEFINE = 49, /* autogen autogen */ + REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50, /* autogen autogen */ + + REMOTE_PROC_NUM_OF_DOMAINS = 51, /* autogen autogen */ + REMOTE_PROC_NUM_OF_NETWORKS = 52, /* autogen autogen */ + REMOTE_PROC_DOMAIN_CORE_DUMP = 53, /* autogen autogen */ + REMOTE_PROC_DOMAIN_RESTORE = 54, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SAVE = 55, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE = 56, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS = 57, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS = 58, /* skipgen skipgen */ + REMOTE_PROC_GET_HOSTNAME = 59, /* autogen autogen */ + REMOTE_PROC_SUPPORTS_FEATURE = 60, /* autogen skipgen */ + + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE = 61, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_MIGRATE_PERFORM = 62, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MIGRATE_FINISH = 63, /* autogen autogen */ + REMOTE_PROC_DOMAIN_BLOCK_STATS = 64, /* autogen autogen */ + REMOTE_PROC_DOMAIN_INTERFACE_STATS = 65, /* autogen autogen */ + REMOTE_PROC_AUTH_LIST = 66, /* skipgen skipgen */ + REMOTE_PROC_AUTH_SASL_INIT = 67, /* skipgen skipgen */ + REMOTE_PROC_AUTH_SASL_START = 68, /* skipgen skipgen */ + REMOTE_PROC_AUTH_SASL_STEP = 69, /* skipgen skipgen */ + REMOTE_PROC_AUTH_POLKIT = 70, /* skipgen skipgen */ + + REMOTE_PROC_NUM_OF_STORAGE_POOLS = 71, /* autogen autogen */ + REMOTE_PROC_LIST_STORAGE_POOLS = 72, /* autogen autogen */ + REMOTE_PROC_NUM_OF_DEFINED_STORAGE_POOLS = 73, /* autogen autogen */ + REMOTE_PROC_LIST_DEFINED_STORAGE_POOLS = 74, /* autogen autogen */ + REMOTE_PROC_FIND_STORAGE_POOL_SOURCES = 75, /* autogen skipgen */ + REMOTE_PROC_STORAGE_POOL_CREATE_XML = 76, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_DEFINE_XML = 77, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_CREATE = 78, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_BUILD = 79, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_DESTROY = 80, /* autogen autogen */ + + REMOTE_PROC_STORAGE_POOL_DELETE = 81, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_UNDEFINE = 82, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_REFRESH = 83, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME = 84, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID = 85, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME = 86, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_GET_INFO = 87, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_GET_XML_DESC = 88, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART = 89, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART = 90, /* autogen autogen */ + + REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES = 91, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES = 92, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_CREATE_XML = 93, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_DELETE = 94, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME = 95, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY = 96, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH = 97, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_GET_INFO = 98, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_GET_XML_DESC = 99, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_GET_PATH = 100, /* autogen autogen */ + + REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY = 101, /* autogen skipgen */ + REMOTE_PROC_NODE_GET_FREE_MEMORY = 102, /* autogen autogen */ + REMOTE_PROC_DOMAIN_BLOCK_PEEK = 103, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_MEMORY_PEEK = 104, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_EVENTS_REGISTER = 105, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER = 106, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE = 107, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2 = 108, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_MIGRATE_FINISH2 = 109, /* autogen autogen */ + REMOTE_PROC_GET_URI = 110, /* autogen skipgen */ + + REMOTE_PROC_NODE_NUM_OF_DEVICES = 111, /* autogen autogen */ + REMOTE_PROC_NODE_LIST_DEVICES = 112, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME = 113, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_GET_XML_DESC = 114, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_GET_PARENT = 115, /* skipgen skipgen */ + REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS = 116, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_LIST_CAPS = 117, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_DETTACH = 118, /* autogen skipgen */ + REMOTE_PROC_NODE_DEVICE_RE_ATTACH = 119, /* autogen skipgen */ + REMOTE_PROC_NODE_DEVICE_RESET = 120, /* autogen skipgen */ + + REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL = 121, /* skipgen skipgen */ + REMOTE_PROC_NODE_GET_SECURITY_MODEL = 122, /* skipgen skipgen */ + REMOTE_PROC_NODE_DEVICE_CREATE_XML = 123, /* autogen autogen */ + REMOTE_PROC_NODE_DEVICE_DESTROY = 124, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM = 125, /* autogen autogen */ + REMOTE_PROC_NUM_OF_INTERFACES = 126, /* autogen autogen */ + REMOTE_PROC_LIST_INTERFACES = 127, /* autogen autogen */ + REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME = 128, /* autogen autogen */ + REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING = 129, /* autogen autogen */ + REMOTE_PROC_INTERFACE_GET_XML_DESC = 130, /* autogen autogen */ + + REMOTE_PROC_INTERFACE_DEFINE_XML = 131, /* autogen autogen */ + REMOTE_PROC_INTERFACE_UNDEFINE = 132, /* autogen autogen */ + REMOTE_PROC_INTERFACE_CREATE = 133, /* autogen autogen */ + REMOTE_PROC_INTERFACE_DESTROY = 134, /* autogen autogen */ + REMOTE_PROC_DOMAIN_XML_FROM_NATIVE = 135, /* autogen autogen */ + REMOTE_PROC_DOMAIN_XML_TO_NATIVE = 136, /* autogen autogen */ + REMOTE_PROC_NUM_OF_DEFINED_INTERFACES = 137, /* autogen autogen */ + REMOTE_PROC_LIST_DEFINED_INTERFACES = 138, /* autogen autogen */ + REMOTE_PROC_NUM_OF_SECRETS = 139, /* autogen autogen */ + REMOTE_PROC_LIST_SECRETS = 140, /* autogen autogen */ + + REMOTE_PROC_SECRET_LOOKUP_BY_UUID = 141, /* autogen autogen */ + REMOTE_PROC_SECRET_DEFINE_XML = 142, /* autogen autogen */ + REMOTE_PROC_SECRET_GET_XML_DESC = 143, /* autogen autogen */ + REMOTE_PROC_SECRET_SET_VALUE = 144, /* autogen autogen */ + REMOTE_PROC_SECRET_GET_VALUE = 145, /* skipgen skipgen */ + REMOTE_PROC_SECRET_UNDEFINE = 146, /* autogen autogen */ + REMOTE_PROC_SECRET_LOOKUP_BY_USAGE = 147, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL = 148, /* skipgen skipgen */ + REMOTE_PROC_IS_SECURE = 149, /* autogen skipgen */ + REMOTE_PROC_DOMAIN_IS_ACTIVE = 150, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_IS_PERSISTENT = 151, /* autogen autogen */ + REMOTE_PROC_NETWORK_IS_ACTIVE = 152, /* autogen autogen */ + REMOTE_PROC_NETWORK_IS_PERSISTENT = 153, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_IS_ACTIVE = 154, /* autogen autogen */ + REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT = 155, /* autogen autogen */ + REMOTE_PROC_INTERFACE_IS_ACTIVE = 156, /* autogen autogen */ + REMOTE_PROC_GET_LIB_VERSION = 157, /* autogen autogen */ + REMOTE_PROC_CPU_COMPARE = 158, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MEMORY_STATS = 159, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS = 160, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS = 161, /* autogen autogen */ + REMOTE_PROC_CPU_BASELINE = 162, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_JOB_INFO = 163, /* autogen autogen */ + REMOTE_PROC_DOMAIN_ABORT_JOB = 164, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_WIPE = 165, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME = 166, /* autogen autogen */ + REMOTE_PROC_DOMAIN_EVENTS_REGISTER_ANY = 167, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_EVENTS_DEREGISTER_ANY = 168, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_EVENT_REBOOT = 169, /* autogen autogen */ + REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE = 170, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_EVENT_WATCHDOG = 171, /* autogen autogen */ + REMOTE_PROC_DOMAIN_EVENT_IO_ERROR = 172, /* autogen autogen */ + REMOTE_PROC_DOMAIN_EVENT_GRAPHICS = 173, /* autogen autogen */ + REMOTE_PROC_DOMAIN_UPDATE_DEVICE_FLAGS = 174, /* autogen autogen */ + REMOTE_PROC_NWFILTER_LOOKUP_BY_NAME = 175, /* autogen autogen */ + REMOTE_PROC_NWFILTER_LOOKUP_BY_UUID = 176, /* autogen autogen */ + REMOTE_PROC_NWFILTER_GET_XML_DESC = 177, /* autogen autogen */ + REMOTE_PROC_NUM_OF_NWFILTERS = 178, /* autogen autogen */ + REMOTE_PROC_LIST_NWFILTERS = 179, /* autogen autogen */ + REMOTE_PROC_NWFILTER_DEFINE_XML = 180, /* autogen autogen */ + + REMOTE_PROC_NWFILTER_UNDEFINE = 181, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MANAGED_SAVE = 182, /* autogen autogen */ + REMOTE_PROC_DOMAIN_HAS_MANAGED_SAVE_IMAGE = 183, /* autogen autogen */ + REMOTE_PROC_DOMAIN_MANAGED_SAVE_REMOVE = 184, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_CREATE_XML = 185, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC = 186, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_NUM = 187, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_NAMES = 188, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_LOOKUP_BY_NAME = 189, /* autogen autogen */ + REMOTE_PROC_DOMAIN_HAS_CURRENT_SNAPSHOT = 190, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_SNAPSHOT_CURRENT = 191, /* autogen autogen */ + REMOTE_PROC_DOMAIN_REVERT_TO_SNAPSHOT = 192, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SNAPSHOT_DELETE = 193, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_BLOCK_INFO = 194, /* autogen autogen */ + REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON = 195, /* autogen autogen */ + REMOTE_PROC_DOMAIN_CREATE_WITH_FLAGS = 196, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_SET_MEMORY_PARAMETERS = 197, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_GET_MEMORY_PARAMETERS = 198, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS = 199, /* autogen autogen */ + REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS = 200, /* autogen autogen */ + + REMOTE_PROC_DOMAIN_OPEN_CONSOLE = 201, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_IS_UPDATED = 202, /* autogen autogen */ + REMOTE_PROC_GET_SYSINFO = 203, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS = 204, /* autogen autogen */ + REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS = 205, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS = 206, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207, /* autogen autogen */ + REMOTE_PROC_STORAGE_VOL_UPLOAD = 208, /* skipgen skipgen */ + REMOTE_PROC_STORAGE_VOL_DOWNLOAD = 209, /* skipgen skipgen */ + REMOTE_PROC_DOMAIN_INJECT_NMI = 210 /* autogen autogen */ /* * Notice how the entries are grouped in sets of 10 ? * Nice isn't it. Please keep it this way when adding more. */ + + /* Each function must have a two-word comment. The first word is + * whether remote_generator.pl handles daemon, the second whether + * it handles src/remote. */ }; /*