You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

arch_init.c 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /*
  2. * QEMU System Emulator
  3. *
  4. * Copyright (c) 2003-2008 Fabrice Bellard
  5. *
  6. * Permission is hereby granted, free of charge, to any person obtaining a copy
  7. * of this software and associated documentation files (the "Software"), to deal
  8. * in the Software without restriction, including without limitation the rights
  9. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10. * copies of the Software, and to permit persons to whom the Software is
  11. * furnished to do so, subject to the following conditions:
  12. *
  13. * The above copyright notice and this permission notice shall be included in
  14. * all copies or substantial portions of the Software.
  15. *
  16. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  19. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22. * THE SOFTWARE.
  23. */
  24. #include "qemu/osdep.h"
  25. #include "cpu.h"
  26. #include "sysemu/sysemu.h"
  27. #include "sysemu/arch_init.h"
  28. #include "hw/pci/pci.h"
  29. #include "hw/audio/soundhw.h"
  30. #include "qapi/qapi-commands-misc.h"
  31. #include "qapi/error.h"
  32. #include "qemu/config-file.h"
  33. #include "qemu/error-report.h"
  34. #include "hw/acpi/acpi.h"
  35. #include "qemu/help_option.h"
  36. #ifdef TARGET_SPARC
  37. int graphic_width = 1024;
  38. int graphic_height = 768;
  39. int graphic_depth = 8;
  40. #else
  41. int graphic_width = 800;
  42. int graphic_height = 600;
  43. int graphic_depth = 32;
  44. #endif
  45. #if defined(TARGET_ALPHA)
  46. #define QEMU_ARCH QEMU_ARCH_ALPHA
  47. #elif defined(TARGET_ARM)
  48. #define QEMU_ARCH QEMU_ARCH_ARM
  49. #elif defined(TARGET_CRIS)
  50. #define QEMU_ARCH QEMU_ARCH_CRIS
  51. #elif defined(TARGET_HPPA)
  52. #define QEMU_ARCH QEMU_ARCH_HPPA
  53. #elif defined(TARGET_I386)
  54. #define QEMU_ARCH QEMU_ARCH_I386
  55. #elif defined(TARGET_LM32)
  56. #define QEMU_ARCH QEMU_ARCH_LM32
  57. #elif defined(TARGET_M68K)
  58. #define QEMU_ARCH QEMU_ARCH_M68K
  59. #elif defined(TARGET_MICROBLAZE)
  60. #define QEMU_ARCH QEMU_ARCH_MICROBLAZE
  61. #elif defined(TARGET_MIPS)
  62. #define QEMU_ARCH QEMU_ARCH_MIPS
  63. #elif defined(TARGET_MOXIE)
  64. #define QEMU_ARCH QEMU_ARCH_MOXIE
  65. #elif defined(TARGET_NIOS2)
  66. #define QEMU_ARCH QEMU_ARCH_NIOS2
  67. #elif defined(TARGET_OPENRISC)
  68. #define QEMU_ARCH QEMU_ARCH_OPENRISC
  69. #elif defined(TARGET_PPC)
  70. #define QEMU_ARCH QEMU_ARCH_PPC
  71. #elif defined(TARGET_RISCV)
  72. #define QEMU_ARCH QEMU_ARCH_RISCV
  73. #elif defined(TARGET_S390X)
  74. #define QEMU_ARCH QEMU_ARCH_S390X
  75. #elif defined(TARGET_SH4)
  76. #define QEMU_ARCH QEMU_ARCH_SH4
  77. #elif defined(TARGET_SPARC)
  78. #define QEMU_ARCH QEMU_ARCH_SPARC
  79. #elif defined(TARGET_TRICORE)
  80. #define QEMU_ARCH QEMU_ARCH_TRICORE
  81. #elif defined(TARGET_UNICORE32)
  82. #define QEMU_ARCH QEMU_ARCH_UNICORE32
  83. #elif defined(TARGET_XTENSA)
  84. #define QEMU_ARCH QEMU_ARCH_XTENSA
  85. #endif
  86. const uint32_t arch_type = QEMU_ARCH;
  87. int kvm_available(void)
  88. {
  89. #ifdef CONFIG_KVM
  90. return 1;
  91. #else
  92. return 0;
  93. #endif
  94. }
  95. int xen_available(void)
  96. {
  97. #ifdef CONFIG_XEN
  98. return 1;
  99. #else
  100. return 0;
  101. #endif
  102. }
  103. TargetInfo *qmp_query_target(Error **errp)
  104. {
  105. TargetInfo *info = g_malloc0(sizeof(*info));
  106. info->arch = qapi_enum_parse(&SysEmuTarget_lookup, TARGET_NAME, -1,
  107. &error_abort);
  108. return info;
  109. }