From 7ffddd66de46c27c4e24d9af9b47fc0b9a8da8d1 Mon Sep 17 00:00:00 2001 From: Vladimir Chtchetkine Date: Fri, 5 Aug 2011 10:15:04 -0700 Subject: Fic minor bug, and update docs. Change-Id: Ifdc2b019c499d995c8dc493dd4684dd21d0cf995 --- docs/ANDROID-QEMUD.TXT | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/ANDROID-QEMUD.TXT b/docs/ANDROID-QEMUD.TXT index 7841399..8b4f8d6 100644 --- a/docs/ANDROID-QEMUD.TXT +++ b/docs/ANDROID-QEMUD.TXT @@ -6,7 +6,9 @@ I. Overview: The Android system image includes a small daemon program named "qemud" which is started at boot time. Its purpose is to provide a multiplexing communication channel between the emulated system and the emulator program -itself. +itself. Another way to support communication between the emulated system and +the emulator program is using qemu pipes (see ANDROID-QEMU-PIPE.TXT for details +on qemu pipes). Its goal is to allow certain parts of the system to talk directly to the emulator without requiring special kernel support; this simplifies a lot of @@ -169,6 +171,17 @@ Since the "cupcake" platform, this works as follows: Certain services do not need it at all (GSM, GPS) so it is optional and must be used depending on which service you talk to by clients. +- QEMU pipe communication model works similarly to the serial port multiplexing, + but also has some differences as far as connecting client with the service is + concerned: + + emulator <-+--> /dev/qemu_pipe/qemud:srv1 <---> client1 + | + +--> /dev/qemu_pipe/qemud:srv2 <---> client2 + + In the pipe model each client gets connected to the emulator through a unique + handle to /dev/qemu_pipe (a "pipe"), so there is no need for multiplexing the + channels. III. Legacy 'qemud': -------------------- @@ -254,7 +267,7 @@ only uses a single socket and allows concurrent clients for a all services. IV. State snapshots: -------------------- -Support for snapshots relies on the symmetric qemud_*_save and qemud_*_load +Support for snapshots relies on the symmetric qemud_*_save and qemud_*_load functions which save the state of the various Qemud* structs defined in android/hw-qemud.c. The high-level process is as follows. -- cgit v1.1