onload.cpp revision 46d0adf8256a42416584765625852b6e48497c90
1199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong/*
2199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Copyright (C) 2009 The Android Open Source Project
3199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong *
4199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Licensed under the Apache License, Version 2.0 (the "License");
5199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * you may not use this file except in compliance with the License.
6199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * You may obtain a copy of the License at
7199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong *
8199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong *      http://www.apache.org/licenses/LICENSE-2.0
9199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong *
10199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Unless required by applicable law or agreed to in writing, software
11199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * distributed under the License is distributed on an "AS IS" BASIS,
12199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * See the License for the specific language governing permissions and
14199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * limitations under the License.
15199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong */
16199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "JNIHelp.h"
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "jni.h"
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "utils/Log.h"
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "utils/misc.h"
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace android {
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_server_AlarmManagerService(JNIEnv* env);
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_server_BatteryService(JNIEnv* env);
25928e054931d357326613c78e62f4d850b7c442ffJeff Brownint register_android_server_InputApplication(JNIEnv* env);
26928e054931d357326613c78e62f4d850b7c442ffJeff Brownint register_android_server_InputApplicationHandle(JNIEnv* env);
27928e054931d357326613c78e62f4d850b7c442ffJeff Brownint register_android_server_InputWindow(JNIEnv* env);
28928e054931d357326613c78e62f4d850b7c442ffJeff Brownint register_android_server_InputWindowHandle(JNIEnv* env);
2946b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownint register_android_server_InputManager(JNIEnv* env);
303a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodint register_android_server_LightsService(JNIEnv* env);
3100fa7bdd69f0868fd17ea7c881c771d785b2fbbdJeff Brownint register_android_server_PowerManagerService(JNIEnv* env);
3246d0adf8256a42416584765625852b6e48497c90Mike Lockwoodint register_android_server_UsbDeviceManager(JNIEnv* env);
3346d0adf8256a42416584765625852b6e48497c90Mike Lockwoodint register_android_server_UsbHostManager(JNIEnv* env);
343a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodint register_android_server_VibratorService(JNIEnv* env);
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_server_SystemServer(JNIEnv* env);
3600b74270c9f136a8727c5f6cda0997a3a905f385Mike Lockwoodint register_android_server_location_GpsLocationProvider(JNIEnv* env);
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectusing namespace android;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectextern "C" jint JNI_OnLoad(JavaVM* vm, void* reserved)
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    JNIEnv* env = NULL;
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    jint result = -1;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        LOGE("GetEnv failed!");
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    LOG_ASSERT(env, "Could not retrieve the env!");
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5200fa7bdd69f0868fd17ea7c881c771d785b2fbbdJeff Brown    register_android_server_PowerManagerService(env);
53928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputApplication(env);
54928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputApplicationHandle(env);
55928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputWindow(env);
56928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputWindowHandle(env);
5746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown    register_android_server_InputManager(env);
583a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood    register_android_server_LightsService(env);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_AlarmManagerService(env);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_BatteryService(env);
6146d0adf8256a42416584765625852b6e48497c90Mike Lockwood    register_android_server_UsbDeviceManager(env);
6246d0adf8256a42416584765625852b6e48497c90Mike Lockwood    register_android_server_UsbHostManager(env);
633a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood    register_android_server_VibratorService(env);
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_SystemServer(env);
6500b74270c9f136a8727c5f6cda0997a3a905f385Mike Lockwood    register_android_server_location_GpsLocationProvider(env);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return JNI_VERSION_1_4;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69