diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
commit | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /cmds/system_server/library/system_init.cpp | |
parent | 076357b8567458d4b6dfdcf839ef751634cd2bfb (diff) | |
download | frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'cmds/system_server/library/system_init.cpp')
-rw-r--r-- | cmds/system_server/library/system_init.cpp | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/cmds/system_server/library/system_init.cpp b/cmds/system_server/library/system_init.cpp deleted file mode 100644 index 73b23e2..0000000 --- a/cmds/system_server/library/system_init.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * System server main initialization. - * - * The system server is responsible for becoming the Binder - * context manager, supplying the root ServiceManager object - * through which other services can be found. - */ - -#define LOG_TAG "sysproc" - -#include <utils/IPCThreadState.h> -#include <utils/ProcessState.h> -#include <utils/IServiceManager.h> -#include <utils/TextOutput.h> -#include <utils/Log.h> - -#include <SurfaceFlinger.h> -#include <AudioFlinger.h> -#include <CameraService.h> -#include <MediaPlayerService.h> - -#include <android_runtime/AndroidRuntime.h> - -#include <signal.h> -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> -#include <sys/time.h> -#include <cutils/properties.h> - -using namespace android; - -namespace android { -/** - * This class is used to kill this process when the runtime dies. - */ -class GrimReaper : public IBinder::DeathRecipient { -public: - GrimReaper() { } - - virtual void binderDied(const wp<IBinder>& who) - { - LOGI("Grim Reaper killing system_server..."); - kill(getpid(), SIGKILL); - } -}; - -} // namespace android - - - -extern "C" status_t system_init() -{ - LOGI("Entered system_init()"); - - sp<ProcessState> proc(ProcessState::self()); - - sp<IServiceManager> sm = defaultServiceManager(); - LOGI("ServiceManager: %p\n", sm.get()); - - sp<GrimReaper> grim = new GrimReaper(); - sm->asBinder()->linkToDeath(grim, grim.get(), 0); - - char propBuf[PROPERTY_VALUE_MAX]; - property_get("system_init.startsurfaceflinger", propBuf, "1"); - if (strcmp(propBuf, "1") == 0) { - // Start the SurfaceFlinger - SurfaceFlinger::instantiate(); - } - - // On the simulator, audioflinger et al don't get started the - // same way as on the device, and we need to start them here - if (!proc->supportsProcesses()) { - - // Start the AudioFlinger - AudioFlinger::instantiate(); - - // Start the media playback service - MediaPlayerService::instantiate(); - - // Start the camera service - CameraService::instantiate(); - } - - // And now start the Android runtime. We have to do this bit - // of nastiness because the Android runtime initialization requires - // some of the core system services to already be started. - // All other servers should just start the Android runtime at - // the beginning of their processes's main(), before calling - // the init function. - LOGI("System server: starting Android runtime.\n"); - - AndroidRuntime* runtime = AndroidRuntime::getRuntime(); - - LOGI("System server: starting Android services.\n"); - runtime->callStatic("com/android/server/SystemServer", "init2"); - - // If running in our own process, just go into the thread - // pool. Otherwise, call the initialization finished - // func to let this process continue its initilization. - if (proc->supportsProcesses()) { - LOGI("System server: entering thread pool.\n"); - ProcessState::self()->startThreadPool(); - IPCThreadState::self()->joinThreadPool(); - LOGI("System server: exiting thread pool.\n"); - } - return NO_ERROR; -} - |