remote generator: Add skipgen/autogen flags to .x files

Make procedure parsing more robust, by allowing arbitrary
amounts of whitespaces.

Also make some error messages more verbose.
This commit is contained in:
Matthias Bolte 2011-05-11 21:28:39 +02:00
parent 88d03d4ff1
commit 2a5251e2c4
4 changed files with 266 additions and 333 deletions

2
cfg.mk
View File

@ -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/

View File

@ -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 (<PROTOCOL>) {
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";
}
}
}

View File

@ -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 */
};

View File

@ -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,
/* 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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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_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,
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
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. */
};
/*