Use a per-process server address for the GLES server

Previously we used a hardcoded address (tcp port, unix pipe path,
etc.) for the OpenGLRender system. Multiple emulators would all try to
listen on the same address, with the system non-deterministically (?)
choosing which one accepted each new connection. This resulted in
frames going to the wrong emulator window, one emulator shutting down
another's OpenGL system, etc.

Now the OpenGLRender server requests an unused tcp port or derives a
path from the pid, and reports the address back to the emulator client
to use for future connections from the guest.

Change-Id: I139d32615200b36b87f2d2ede4abb4060ec02776
3 files changed
tree: 4338811f487cd81e377017016e3a1779bcd3a7e6
  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