qdev: reset qdev along with qdev tree

This patch changes the reset handling so that qdev has no knowledge of the
global system reset.  Instead, a new bus/device level function is introduced
that allows all devices/buses on the bus/device to be reset using a depth
first transversal.

N.B. we have to expose the implicit system bus because we have various hacks
that result in an implicit system bus existing.  Instead, we ought to have an
explicitly created system bus that we can trigger reset from.  That's a topic
for a future patch though.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
3 files changed
tree: e70d39d0b76d8179a3aff43abc1e31da021194d2
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. default-configs/
  6. docs/
  7. fpu/
  8. fsdev/
  9. gdb-xml/
  10. hw/
  11. linux-user/
  12. net/
  13. pc-bios/
  14. QMP/
  15. roms/
  16. slirp/
  17. sysconfigs/
  18. target-alpha/
  19. target-arm/
  20. target-cris/
  21. target-i386/
  22. target-m68k/
  23. target-microblaze/
  24. target-mips/
  25. target-ppc/
  26. target-s390x/
  27. target-sh4/
  28. target-sparc/
  29. tcg/
  30. tests/
  31. ui/
  32. .gitignore
  33. .gitmodules
  34. a.out.h
  35. acl.c
  36. acl.h
  37. aes.c
  38. aes.h
  39. aio.c
  40. alpha-dis.c
  41. alpha.ld
  42. arch_init.c
  43. arch_init.h
  44. arm-dis.c
  45. arm-semi.c
  46. arm.ld
  47. async.c
  48. balloon.c
  49. balloon.h
  50. block-migration.c
  51. block-migration.h
  52. block.c
  53. block.h
  54. block_int.h
  55. blockdev.c
  56. blockdev.h
  57. bswap.h
  58. bt-host.c
  59. bt-host.h
  60. bt-vhci.c
  61. buffered_file.c
  62. buffered_file.h
  63. cache-utils.c
  64. cache-utils.h
  65. Changelog
  66. check-qdict.c
  67. check-qfloat.c
  68. check-qint.c
  69. check-qjson.c
  70. check-qlist.c
  71. check-qstring.c
  72. cmd.c
  73. cmd.h
  74. CODING_STYLE
  75. compatfd.c
  76. compatfd.h
  77. config.h
  78. configure
  79. console.c
  80. console.h
  81. COPYING
  82. COPYING.LIB
  83. cpu-all.h
  84. cpu-common.h
  85. cpu-defs.h
  86. cpu-exec.c
  87. cpus.c
  88. cpus.h
  89. create_config
  90. cris-dis.c
  91. cursor.c
  92. cursor_hidden.xpm
  93. cursor_left_ptr.xpm
  94. cutils.c
  95. def-helper.h
  96. device_tree.c
  97. device_tree.h
  98. dis-asm.h
  99. disas.c
  100. disas.h
  101. dma-helpers.c
  102. dma.h
  103. dyngen-exec.h
  104. elf.h
  105. envlist.c
  106. envlist.h
  107. exec-all.h
  108. exec.c
  109. feature_to_c.sh
  110. gdbstub.c
  111. gdbstub.h
  112. gen-icount.h
  113. HACKING
  114. hmp-commands.hx
  115. host-utils.c
  116. host-utils.h
  117. hpet.h
  118. hppa-dis.c
  119. hppa.ld
  120. hxtool
  121. i386-dis.c
  122. i386.ld
  123. ia64-dis.c
  124. ia64.ld
  125. input.c
  126. ioport-user.c
  127. ioport.c
  128. ioport.h
  129. iov.c
  130. iov.h
  131. json-lexer.c
  132. json-lexer.h
  133. json-parser.c
  134. json-parser.h
  135. json-streamer.c
  136. json-streamer.h
  137. kvm-all.c
  138. kvm-stub.c
  139. kvm.h
  140. libfdt_env.h
  141. LICENSE
  142. linux-aio.c
  143. m68k-dis.c
  144. m68k-semi.c
  145. m68k.ld
  146. MAINTAINERS
  147. Makefile
  148. Makefile.dis
  149. Makefile.hw
  150. Makefile.objs
  151. Makefile.target
  152. Makefile.user
  153. microblaze-dis.c
  154. migration-exec.c
  155. migration-fd.c
  156. migration-tcp.c
  157. migration-unix.c
  158. migration.c
  159. migration.h
  160. mips-dis.c
  161. mips.ld
  162. module.c
  163. module.h
  164. monitor.c
  165. monitor.h
  166. nbd.c
  167. nbd.h
  168. net-checksum.c
  169. net.c
  170. net.h
  171. notify.c
  172. notify.h
  173. os-posix.c
  174. os-win32.c
  175. osdep.c
  176. osdep.h
  177. oslib-posix.c
  178. oslib-win32.c
  179. path.c
  180. pci-ids.txt
  181. pflib.c
  182. pflib.h
  183. poison.h
  184. posix-aio-compat.c
  185. ppc-dis.c
  186. ppc.ld
  187. ppc64.ld
  188. qbool.c
  189. qbool.h
  190. qdict-test-data.txt
  191. qdict.c
  192. qdict.h
  193. qemu-aio.h
  194. qemu-barrier.h
  195. qemu-binfmt-conf.sh
  196. qemu-char.c
  197. qemu-char.h
  198. qemu-common.h
  199. qemu-config.c
  200. qemu-config.h
  201. qemu-doc.texi
  202. qemu-error.c
  203. qemu-error.h
  204. qemu-img-cmds.hx
  205. qemu-img.c
  206. qemu-img.texi
  207. qemu-io.c
  208. qemu-lock.h
  209. qemu-log.h
  210. qemu-malloc.c
  211. qemu-nbd.c
  212. qemu-nbd.texi
  213. qemu-objects.h
  214. qemu-option.c
  215. qemu-option.h
  216. qemu-options.h
  217. qemu-options.hx
  218. qemu-os-posix.h
  219. qemu-os-win32.h
  220. qemu-queue.h
  221. qemu-sockets.c
  222. qemu-tech.texi
  223. qemu-thread.c
  224. qemu-thread.h
  225. qemu-timer-common.c
  226. qemu-timer.c
  227. qemu-timer.h
  228. qemu-tool.c
  229. qemu-x509.h
  230. qemu.sasl
  231. qemu_socket.h
  232. qerror.c
  233. qerror.h
  234. qfloat.c
  235. qfloat.h
  236. qint.c
  237. qint.h
  238. qjson.c
  239. qjson.h
  240. qlist.c
  241. qlist.h
  242. qmp-commands.hx
  243. qobject.h
  244. qstring.c
  245. qstring.h
  246. range.h
  247. readline.c
  248. readline.h
  249. README
  250. rules.mak
  251. rwhandler.c
  252. rwhandler.h
  253. s390-dis.c
  254. s390.ld
  255. savevm.c
  256. sh4-dis.c
  257. simpletrace.c
  258. simpletrace.h
  259. simpletrace.py
  260. softmmu-semi.h
  261. softmmu_defs.h
  262. softmmu_exec.h
  263. softmmu_header.h
  264. softmmu_template.h
  265. sparc-dis.c
  266. sparc.ld
  267. sparc64.ld
  268. sysemu.h
  269. targphys.h
  270. tcg-runtime.c
  271. texi2pod.pl
  272. thunk.c
  273. thunk.h
  274. TODO
  275. trace-events
  276. tracetool
  277. translate-all.c
  278. uboot_image.h
  279. usb-bsd.c
  280. usb-linux.c
  281. usb-stub.c
  282. VERSION
  283. version.rc
  284. vgafont.h
  285. vl.c
  286. x86_64.ld