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