qtest.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * QTest accelerator code
  3. *
  4. * Copyright IBM, Corp. 2011
  5. *
  6. * Authors:
  7. * Anthony Liguori <aliguori@us.ibm.com>
  8. *
  9. * This work is licensed under the terms of the GNU GPL, version 2 or later.
  10. * See the COPYING file in the top-level directory.
  11. *
  12. */
  13. #include "qemu/osdep.h"
  14. #include "qapi/error.h"
  15. #include "qemu/module.h"
  16. #include "qemu/option.h"
  17. #include "qemu/config-file.h"
  18. #include "sysemu/accel.h"
  19. #include "sysemu/qtest.h"
  20. #include "sysemu/cpus.h"
  21. static int qtest_init_accel(MachineState *ms)
  22. {
  23. QemuOpts *opts = qemu_opts_create(qemu_find_opts("icount"), NULL, 0,
  24. &error_abort);
  25. qemu_opt_set(opts, "shift", "0", &error_abort);
  26. configure_icount(opts, &error_abort);
  27. qemu_opts_del(opts);
  28. return 0;
  29. }
  30. static void qtest_accel_class_init(ObjectClass *oc, void *data)
  31. {
  32. AccelClass *ac = ACCEL_CLASS(oc);
  33. ac->name = "QTest";
  34. ac->init_machine = qtest_init_accel;
  35. ac->allowed = &qtest_allowed;
  36. }
  37. #define TYPE_QTEST_ACCEL ACCEL_CLASS_NAME("qtest")
  38. static const TypeInfo qtest_accel_type = {
  39. .name = TYPE_QTEST_ACCEL,
  40. .parent = TYPE_ACCEL,
  41. .class_init = qtest_accel_class_init,
  42. };
  43. static void qtest_type_init(void)
  44. {
  45. type_register_static(&qtest_accel_type);
  46. }
  47. type_init(qtest_type_init);