[libvirt] [PATCH] libvirt, logging: cleanup VIR_DEBUG0() VIR_INFO0() VIR_WARN0() VIR_ERROR0()

Daniel P. Berrange berrange at redhat.com
Tue May 10 09:50:43 UTC 2011


On Mon, May 09, 2011 at 05:24:09PM +0800, Lai Jiangshan wrote:
> These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs instead.
> 
> How these coversions works? The magic is using ##.
> #define high_levle_api(fmt, ...) low_levle_api(fmt, ##__VA_ARGS__)
> When __VA_ARGS__ is empty, "##" will swallow the "," in "fmt," to avoid compile error.
> 
> example: origin				after CPP
> 	high_levle_api("%d", a_int)	low_levle_api("%d", a_int)
> 	high_levle_api("a  string")	low_levle_api("a  string")
> 
> About 400 conversions.
> 
> 8 special conversions:
> VIR_XXXX0("") -> VIR_XXXX(" ") (avoid empty format) 2 conversions
> VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0 conversions
> VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s", non_string_literal) (for security) 6 conversions
> 
> Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
> ---
>  daemon/libvirtd.c                            |   76 ++++++++++----------
>  daemon/remote.c                              |   32 ++++----
>  daemon/stream.c                              |    2 +-
>  examples/domain-events/events-c/event-test.c |   10 +--
>  src/cpu/cpu_x86.c                            |    4 +-
>  src/esx/esx_driver.c                         |    8 +-
>  src/esx/esx_vi.c                             |   12 ++--
>  src/libvirt.c                                |    4 +-
>  src/libxl/libxl_driver.c                     |   18 ++--
>  src/lxc/lxc_conf.c                           |    4 +-
>  src/lxc/lxc_container.c                      |   10 +-
>  src/lxc/lxc_controller.c                     |    8 +-
>  src/lxc/lxc_driver.c                         |   12 ++--
>  src/network/bridge_driver.c                  |    4 +-
>  src/node_device/node_device_hal.c            |   28 ++++----
>  src/node_device/node_device_linux_sysfs.c    |    2 +-
>  src/node_device/node_device_udev.c           |    8 +-
>  src/nwfilter/nwfilter_ebiptables_driver.c    |    2 +-
>  src/openvz/openvz_driver.c                   |    6 +-
>  src/phyp/phyp_driver.c                       |  102 +++++++++++++-------------
>  src/qemu/qemu_audit.c                        |   30 ++++----
>  src/qemu/qemu_capabilities.c                 |    4 +-
>  src/qemu/qemu_cgroup.c                       |    2 +-
>  src/qemu/qemu_conf.c                         |    4 +-
>  src/qemu/qemu_domain.c                       |    2 +-
>  src/qemu/qemu_driver.c                       |   10 +-
>  src/qemu/qemu_hotplug.c                      |   22 +++---
>  src/qemu/qemu_migration.c                    |   14 ++--
>  src/qemu/qemu_monitor.c                      |    2 +-
>  src/qemu/qemu_monitor_json.c                 |   36 +++++-----
>  src/qemu/qemu_monitor_text.c                 |    8 +-
>  src/qemu/qemu_process.c                      |   48 ++++++------
>  src/remote/remote_driver.c                   |   64 ++++++++--------
>  src/secret/secret_driver.c                   |    2 +-
>  src/storage/storage_backend_logical.c        |    2 +-
>  src/test/test_driver.c                       |    2 +-
>  src/uml/uml_conf.c                           |    2 +-
>  src/uml/uml_driver.c                         |   14 ++--
>  src/util/bridge.c                            |   10 +-
>  src/util/cgroup.c                            |    4 +-
>  src/util/command.c                           |   18 ++--
>  src/util/event.c                             |    4 +-
>  src/util/event_poll.c                        |    2 +-
>  src/util/hash.c                              |    2 +-
>  src/util/json.c                              |    8 +-
>  src/util/logging.c                           |   10 +-
>  src/util/logging.h                           |   24 ++----
>  src/util/pci.c                               |    4 +-
>  src/util/util.c                              |    8 +-
>  src/util/virtaudit.c                         |    2 +-
>  src/vbox/vbox_driver.c                       |   14 ++--
>  src/vbox/vbox_tmpl.c                         |   32 ++++----
>  src/vmx/vmx.c                                |    4 +-
>  src/xen/xen_driver.c                         |   28 ++++----
>  src/xen/xen_hypervisor.c                     |   18 ++--
>  src/xen/xen_inotify.c                        |   12 ++--
>  src/xen/xend_internal.c                      |    2 +-
>  src/xen/xs_internal.c                        |   12 ++--
>  src/xenxs/xen_sxpr.c                         |    2 +-
>  59 files changed, 415 insertions(+), 425 deletions(-)


> diff --git a/src/util/logging.h b/src/util/logging.h
> index 0dba78c..e948077 100644
> --- a/src/util/logging.h
> +++ b/src/util/logging.h
> @@ -32,35 +32,27 @@
>   */
>  # ifdef ENABLE_DEBUG
>  #  define VIR_DEBUG_INT(category, f, l, fmt,...)                             \
> -    virLogMessage(category, VIR_LOG_DEBUG, f, l, 0, fmt, __VA_ARGS__)
> +    virLogMessage(category, VIR_LOG_DEBUG, f, l, 0, fmt, ##__VA_ARGS__)
>  # else
>  #  define VIR_DEBUG_INT(category, f, l, fmt,...) \
>      do { } while (0)
>  # endif /* !ENABLE_DEBUG */
>  
>  # define VIR_INFO_INT(category, f, l, fmt,...)                              \
> -    virLogMessage(category, VIR_LOG_INFO, f, l, 0, fmt, __VA_ARGS__)
> +    virLogMessage(category, VIR_LOG_INFO, f, l, 0, fmt, ##__VA_ARGS__)
>  # define VIR_WARN_INT(category, f, l, fmt,...)                              \
> -    virLogMessage(category, VIR_LOG_WARN, f, l, 0, fmt, __VA_ARGS__)
> +    virLogMessage(category, VIR_LOG_WARN, f, l, 0, fmt, ##__VA_ARGS__)
>  # define VIR_ERROR_INT(category, f, l, fmt,...)                             \
> -    virLogMessage(category, VIR_LOG_ERROR, f, l, 0, fmt, __VA_ARGS__)
> +    virLogMessage(category, VIR_LOG_ERROR, f, l, 0, fmt, ##__VA_ARGS__)
>  
>  # define VIR_DEBUG(fmt,...)                                                  \
> -        VIR_DEBUG_INT("file." __FILE__, __func__, __LINE__, fmt, __VA_ARGS__)
> -# define VIR_DEBUG0(msg)                                                     \
> -        VIR_DEBUG_INT("file." __FILE__, __func__, __LINE__, "%s", msg)
> +        VIR_DEBUG_INT("file." __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__)
>  # define VIR_INFO(fmt,...)                                                   \
> -        VIR_INFO_INT("file." __FILE__, __func__, __LINE__, fmt, __VA_ARGS__)
> -# define VIR_INFO0(msg)                                                      \
> -        VIR_INFO_INT("file." __FILE__, __func__, __LINE__, "%s", msg)
> +        VIR_INFO_INT("file." __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__)
>  # define VIR_WARN(fmt,...)                                                   \
> -        VIR_WARN_INT("file." __FILE__, __func__, __LINE__, fmt, __VA_ARGS__)
> -# define VIR_WARN0(msg)                                                      \
> -        VIR_WARN_INT("file." __FILE__, __func__, __LINE__, "%s", msg)
> +        VIR_WARN_INT("file." __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__)
>  # define VIR_ERROR(fmt,...)                                                  \
> -        VIR_ERROR_INT("file." __FILE__, __func__, __LINE__, fmt, __VA_ARGS__)
> -# define VIR_ERROR0(msg)                                                     \
> -        VIR_ERROR_INT("file." __FILE__, __func__, __LINE__, "%s", msg)
> +        VIR_ERROR_INT("file." __FILE__, __func__, __LINE__, fmt, ##__VA_ARGS__)

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list