qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v4 0/4] Move target- and device specific code from m


From: Denis V. Lunev
Subject: [Qemu-devel] [PATCH v4 0/4] Move target- and device specific code from monitor
Date: Thu, 10 Sep 2015 18:38:57 +0300

The monivation of this set is simple. Recently we have proposed patch
to monitor.c with specific x86 APIC HMP commands. The patchset was denied
with the main motivation "No more arch specific code in monitor.c"
This patchset is the first step to move arch specific code from
monitor.c targets.

So, monitor.c already contains a lot of generic code, as well as the target
specifics code and eventually monitor.c volume will only grow. This trend leads
to a variety of fouling code ifdeffery(and combinations thereof),
poor readability, and entanglement of architecture of the project.
If someone wants to improve processing logic commands at the monitor,
it isn't necessarily must differentiate amongst the implementation of some ARM
or x86_64 specific commands, because the project already has separation of
target specific code on directories.

The presented solution is not the best, but it is quite simple
(PATCH doesn't add more code!) and decides the above mentioned issue.
Subsequently it will not prevent the introduction of more advanced mechanism
that can more effectively resolve the issue.

There is a issue with the placement of code for multiple architectures
(isn't for everyone), but this code is very small. This patch is a step towards
solving the issue associated with maintaining the purity of the code and
structure of the project, which solves not all, but doing a little better
than it is.

Changes from v3:
- removed weak symbol, because it does not work on all platforms
- qemu-monitor-info.texi moved to patch 4

Changes from v2:
- target_monitor_defs provides a target-specific array monitor_defs[]
  This call is added through stub to all archs as a weak symbol. It should
  be redefined on each specific architecture
- fix end of table info (information about the system state)
- ported to current HEAD (iothreads & skeys commands descriptions moved)

Changes from v1:
- ported to new head

Signed-off-by: Pavel Butsykin <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Paolo Bonzini <address@hidden>
CC: Peter Maydell <address@hidden>

Pavel Butsykin (4):
  hmp-commands-info: move info_cmds content out of monitor.c
  monitor: remove target-specific code from monitor.c
  hmp-commands.hx: fix end of table info
  monitor: added generation of documentation for hmp-commands-info.hx

 .gitignore                       |    1 +
 Makefile                         |   10 +-
 Makefile.target                  |    5 +-
 hmp-commands-info.hx             |  749 +++++++++++++++++++++++
 hmp-commands.hx                  |  120 ----
 include/monitor/monitor-common.h |   45 ++
 include/qemu/typedefs.h          |    1 +
 monitor.c                        | 1249 +-------------------------------------
 qemu-doc.texi                    |    2 +
 stubs/Makefile.objs              |    1 +
 stubs/target-monitor-defs.c      |    9 +
 target-i386/Makefile.objs        |    2 +-
 target-i386/monitor.c            |  494 +++++++++++++++
 target-ppc/Makefile.objs         |    2 +-
 target-ppc/monitor.c             |  255 ++++++++
 target-sh4/Makefile.objs         |    1 +
 target-sh4/monitor.c             |   52 ++
 target-sparc/Makefile.objs       |    2 +-
 target-sparc/monitor.c           |  158 +++++
 target-xtensa/Makefile.objs      |    1 +
 target-xtensa/monitor.c          |   34 ++
 21 files changed, 1827 insertions(+), 1366 deletions(-)
 create mode 100644 hmp-commands-info.hx
 create mode 100644 include/monitor/monitor-common.h
 create mode 100644 stubs/target-monitor-defs.c
 create mode 100644 target-i386/monitor.c
 create mode 100644 target-ppc/monitor.c
 create mode 100644 target-sh4/monitor.c
 create mode 100644 target-sparc/monitor.c
 create mode 100644 target-xtensa/monitor.c

-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]