Check RAM availability before VM is initialized.

Quite often (especially on older XP machines) attempts to allocate large VM RAM is
going to fail, and crash the emulator. Since it's failing deep inside QEMU, it's
not really possible to provide the user with a meaningful explanation for the crash.
So, before initializing VM we should check if QEMU is going to be able to allocate
requested amount of RAM, and if not, try to come up with a recomendation.

Change-Id: Id6213d50c70f6bd3b32c4df2ded96d8e3013ec40
1 file changed
tree: d14602cb7817a456b17a24c3422d890d27a51a59
  1. android/
  2. audio/
  3. block/
  4. distrib/
  5. docs/
  6. elff/
  7. fpu/
  8. gdb-xml/
  9. hw/
  10. images/
  11. memcheck/
  12. pc-bios/
  13. proxy/
  14. slirp/
  15. slirp-android/
  16. target-arm/
  17. target-i386/
  18. target-mips/
  19. tcg/
  20. telephony/
  21. .gitignore
  22. a.out.h
  23. acl.c
  24. acl.h
  25. aes.c
  26. aes.h
  27. aio-android.c
  28. aio.c
  29. alpha.ld
  30. android-configure.sh
  31. android-rebuild.sh
  32. android-trace.h
  33. android-trace_common.h
  34. Android.mk
  35. arch_init.c
  36. arch_init.h
  37. arm-dis.c
  38. arm-semi.c
  39. arm.ld
  40. async.c
  41. balloon.h
  42. block.c
  43. block.h
  44. block_int.h
  45. blockdev.c
  46. blockdev.h
  47. bswap.h
  48. bt-host.c
  49. bt-host.h
  50. bt-vhci.c
  51. buffered_file.c
  52. buffered_file.h
  53. cache-utils.c
  54. cache-utils.h
  55. cbuffer.c
  56. cbuffer.h
  57. Changelog
  58. CHANGES.TXT
  59. charpipe.c
  60. charpipe.h
  61. CleanSpec.mk
  62. compatfd.c
  63. compatfd.h
  64. console.c
  65. console.h
  66. COPYING
  67. COPYING.LIB
  68. cpu-all.h
  69. cpu-common.h
  70. cpu-defs.h
  71. cpu-exec.c
  72. cpus.c
  73. cpus.h
  74. curses.c
  75. curses_keys.h
  76. cutils.c
  77. d3des.c
  78. d3des.h
  79. def-helper.h
  80. device_tree.c
  81. device_tree.h
  82. dis-asm.h
  83. disas.c
  84. disas.h
  85. dma-helpers.c
  86. dma.h
  87. dyngen-exec.h
  88. dynlink-static.c
  89. dynlink.h
  90. elf.h
  91. elf_ops.h
  92. envlist.c
  93. envlist.h
  94. exec-all.h
  95. exec.c
  96. feature_to_c.sh
  97. gdbstub.c
  98. gdbstub.h
  99. gen-charmap.py
  100. gen-icount.h
  101. gen-skin.py
  102. hax.h
  103. host-defs.h
  104. host-utils.c
  105. host-utils.h
  106. hostregs_helper.h
  107. hpet.h
  108. hxtool
  109. i386-dis.c
  110. i386-vl.ld
  111. i386.ld
  112. ia64.ld
  113. input.c
  114. INSTALL
  115. iohandler.c
  116. iolooper-select.c
  117. iolooper.h
  118. ioport-user.c
  119. ioport.c
  120. ioport.h
  121. json-lexer.c
  122. json-lexer.h
  123. json-parser.c
  124. json-parser.h
  125. json-streamer.c
  126. json-streamer.h
  127. keymaps.c
  128. keymaps.h
  129. kqemu.c
  130. kqemu.h
  131. kvm-all.c
  132. kvm-android.c
  133. kvm-android.h
  134. kvm.h
  135. LICENSE
  136. linux_keycodes.h
  137. loader.c
  138. loadpng.c
  139. m68k.ld
  140. Makefile
  141. Makefile.android
  142. Makefile.common
  143. Makefile.target
  144. migration-dummy-android.c
  145. migration-exec.c
  146. migration-tcp-android.c
  147. migration-tcp.c
  148. migration.c
  149. migration.h
  150. mips-dis.c
  151. module.c
  152. module.h
  153. MODULE_LICENSE_GPL
  154. monitor-android.h
  155. monitor.c
  156. monitor.h
  157. net-android.c
  158. net-checksum.c
  159. net.c
  160. net.h
  161. NOTICE
  162. notify.c
  163. notify.h
  164. offset_layout.py
  165. os-posix.c
  166. os-win32.c
  167. osdep.c
  168. osdep.h
  169. oslib-posix.c
  170. oslib-win32.c
  171. path.c
  172. poison.h
  173. posix-aio-compat.c
  174. ppc-dis.c
  175. ppc.ld
  176. qbool.c
  177. qbool.h
  178. qdict.c
  179. qdict.h
  180. qemu-aio.h
  181. qemu-barrier.h
  182. qemu-char.c
  183. qemu-char.h
  184. qemu-common.h
  185. qemu-config.c
  186. qemu-config.h
  187. qemu-error.c
  188. qemu-error.h
  189. qemu-io.c
  190. qemu-lock.h
  191. qemu-log.h
  192. qemu-malloc.c
  193. qemu-monitor.hx
  194. qemu-objects.h
  195. qemu-option.c
  196. qemu-option.h
  197. qemu-options.h
  198. qemu-options.hx
  199. qemu-os-posix.h
  200. qemu-os-win32.h
  201. qemu-queue.h
  202. qemu-sockets-android.c
  203. qemu-sockets.c
  204. qemu-thread.c
  205. qemu-thread.h
  206. qemu-timer-common.c
  207. qemu-timer.c
  208. qemu-timer.h
  209. qemu_debug.h
  210. qemu_file.h
  211. qemu_socket.h
  212. qemu_timers.h
  213. qerror.c
  214. qerror.h
  215. qfloat.c
  216. qfloat.h
  217. qint.c
  218. qint.h
  219. qjson.c
  220. qjson.h
  221. qlist.c
  222. qlist.h
  223. qobject.h
  224. qstring.c
  225. qstring.h
  226. readline.c
  227. readline.h
  228. README
  229. savevm.c
  230. sdl_keysym.h
  231. shaper.c
  232. shaper.h
  233. sockets.c
  234. sockets.h
  235. softmmu-semi.h
  236. softmmu_defs.h
  237. softmmu_exec.h
  238. softmmu_header.h
  239. softmmu_outside_jit.c
  240. softmmu_outside_jit.h
  241. softmmu_template.h
  242. sparc.ld
  243. sys-tree.h
  244. sysemu.h
  245. tap-win32.c
  246. targphys.h
  247. tcpdump.c
  248. tcpdump.h
  249. thunk.c
  250. thunk.h
  251. trace.c
  252. trace.h
  253. trace_common.h
  254. translate-all.c
  255. translate-op.c
  256. translate.make
  257. uboot_image.h
  258. usb-dummy-android.c
  259. usb-linux.c
  260. user-events-qemu.c
  261. user-events.h
  262. varint.c
  263. varint.h
  264. vgafont.h
  265. vl-android-ui.c
  266. vl-android.c
  267. vl.c
  268. vnc-android.c
  269. vnc-tls.h
  270. vnc.c
  271. vnc.h
  272. vnc_keysym.h
  273. vnchextile.h
  274. x86_64.ld