[libvirt] [PATCH] 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. --- cfg.mk | 2 +- daemon/remote_generator.pl | 165 ++++----------- src/remote/qemu_protocol.x | 5 +- src/remote/remote_protocol.x | 463 +++++++++++++++++++++--------------------- 4 files changed, 282 insertions(+), 353 deletions(-) diff --git a/cfg.mk b/cfg.mk index 9ee0dd0..f0ca000 100644 --- a/cfg.mk +++ b/cfg.mk @@ -614,7 +614,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)$$) + (\.py$$|^docs/|(src/util/files\.c|src/libvirt\.c|daemon/remote_generator\.pl)$$) exclude_file_name_regexp--sc_prohibit_doubled_word = ^po/ diff --git a/daemon/remote_generator.pl b/daemon/remote_generator.pl index 79d2021..bce6261 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 (<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 = (); @@ -1005,11 +923,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; @@ -1095,8 +1015,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 9eed73f..fa453f4 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 2cf6022..0b88353 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -1953,236 +1953,239 @@ 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 ? -- 1.7.0.4

On 05/11/2011 01:28 PM, Matthias Bolte wrote:
Make procedure parsing more robust, by allowing arbitrary amounts of whitespaces.
Also make some error messages more verbose. --- cfg.mk | 2 +- daemon/remote_generator.pl | 165 ++++----------- src/remote/qemu_protocol.x | 5 +- src/remote/remote_protocol.x | 463 +++++++++++++++++++++--------------------- 4 files changed, 282 insertions(+), 353 deletions(-)
diff --git a/cfg.mk b/cfg.mk index 9ee0dd0..f0ca000 100644 --- a/cfg.mk +++ b/cfg.mk @@ -614,7 +614,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)$$) + (\.py$$|^docs/|(src/util/files\.c|src/libvirt\.c|daemon/remote_generator\.pl)$$)
How about we just exempt _all_ .pl, like we did for .py? Really, the rule for requiring VIR_CLOSE is intended only for C sources. (\.p[yl]$$|^docs/|(src/util/files\.c|src/libvirt\.c)$$)
- 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_DOMAIN_INJECT_NMI = 210 /* autogen autogen */
/* * Notice how the entries are grouped in sets of 10 ?
Might I suggest repeating the comment about the two-word comment at the bottom of the list? After all, you don't want to have to scroll back through 210+ lines just to remind yourself which word applies to which generator, and we only ever add to the bottom of the list. ACK with those nits fixed. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2011/5/12 Eric Blake <eblake@redhat.com>:
On 05/11/2011 01:28 PM, Matthias Bolte wrote:
Make procedure parsing more robust, by allowing arbitrary amounts of whitespaces.
Also make some error messages more verbose. --- cfg.mk | 2 +- daemon/remote_generator.pl | 165 ++++----------- src/remote/qemu_protocol.x | 5 +- src/remote/remote_protocol.x | 463 +++++++++++++++++++++--------------------- 4 files changed, 282 insertions(+), 353 deletions(-)
diff --git a/cfg.mk b/cfg.mk index 9ee0dd0..f0ca000 100644 --- a/cfg.mk +++ b/cfg.mk @@ -614,7 +614,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)$$) + (\.py$$|^docs/|(src/util/files\.c|src/libvirt\.c|daemon/remote_generator\.pl)$$)
How about we just exempt _all_ .pl, like we did for .py? Really, the rule for requiring VIR_CLOSE is intended only for C sources.
(\.p[yl]$$|^docs/|(src/util/files\.c|src/libvirt\.c)$$)
- 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_DOMAIN_INJECT_NMI = 210 /* autogen autogen */
/* * Notice how the entries are grouped in sets of 10 ?
Might I suggest repeating the comment about the two-word comment at the bottom of the list? After all, you don't want to have to scroll back through 210+ lines just to remind yourself which word applies to which generator, and we only ever add to the bottom of the list.
ACK with those nits fixed.
Thanks, fixed and pushed. Matthias
participants (2)
-
Eric Blake
-
Matthias Bolte