Hi

This series:
a- bring back the support for config-devices.h

   Paul was the one that removed my previous submission.
   You can see on the last patch why I want config-devices.h

b- move all hpet code to hpet.c/hpet_emul.h

   In the last patch, I add CONFIG_HPET define, and made everything
   depending on that define.  When we have !CONFIG_HPET we just create
   stub functions.

This was my idea to create config-devices.h in the first place.

Paul, if you don't like it, I am open to alternatives.  Problem here
is that there are devices that we don't want to ship in RHEL for one
reason or another.  Solutions so far:

- use Makefile/ifdefs in calling files trickery: this is ugly as hell
  and was refused (I sent patches to do that ~1 year ago).

I was told to use CONFIG_FOO to disable the full compilation and a
config file, like the kernel.

Here we go, then Paul removed the config-device.h part, because:

>   Also remove config-devices.h.  Code does not and should not care which
>   devices are being built.

This is ok, when device is only called through qdev, and then it is trivial
to compile out.

Notice that that there are another cases where we have to do Makefile tricks
just because we don't have config-devices.mak symbols in "C-land".

See for example Makefile.target

CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)

obj-$(CONFIG_KVM) += kvm.o kvm-all.o
obj-$(CONFIG_NO_KVM) += kvm-stub.o

In this case makes sense to have an stub because there are lots of
functions, but in the hpet case there are only two functions that are
exported.  My problem with the "stub file" way is that we are going to
end with three files by device (foo.c, foo-stub.c, foo.h).  Where
foo-stub.c is basically trivial.

I also removed the "info hpet" command.  I can be convinced that it is better 
to change its
output to
       HPET is disabled by QEMU
or
       HPET is not present
or any other stirng.

Comments?  Any better suggestion?

Later, Juan.


Juan Quintela (6):
  Create again config-device.h and config.devices.h
  Move no_hpet declaration to hpet_emul.h
  Move no_hpet test to inside hpet_init()
  Make hpet_in_legacy_mode() return 0 for !TARGET_I386
  make hpet_in_legacy_mode() return a bool
  Create CONFIG_HPET

 Makefile                           |    7 +++++--
 Makefile.target                    |    8 ++++++--
 config.h                           |   10 ++++++++++
 default-configs/i386-softmmu.mak   |    1 +
 default-configs/x86_64-softmmu.mak |    1 +
 hw/hpet.c                          |    9 ++++++---
 hw/hpet_emul.h                     |   20 +++++++++++++++++---
 hw/mc146818rtc.c                   |    6 ------
 hw/pc.c                            |    4 +---
 hw/pc.h                            |    3 ---
 monitor.c                          |    5 ++++-
 11 files changed, 51 insertions(+), 23 deletions(-)


Reply via email to