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_InputApplicationHandle(JNIEnv* env);
26928e054931d357326613c78e62f4d850b7c442ffJeff Brownint register_android_server_InputWindowHandle(JNIEnv* env);
2746b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brownint register_android_server_InputManager(JNIEnv* env);
283a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodint register_android_server_LightsService(JNIEnv* env);
2900fa7bdd69f0868fd17ea7c881c771d785b2fbbdJeff Brownint register_android_server_PowerManagerService(JNIEnv* env);
30b01e8bf57b7492b77e3445db51471edcbadda75eMike Lockwoodint register_android_server_SerialService(JNIEnv* env);
3146d0adf8256a42416584765625852b6e48497c90Mike Lockwoodint register_android_server_UsbDeviceManager(JNIEnv* env);
3246d0adf8256a42416584765625852b6e48497c90Mike Lockwoodint register_android_server_UsbHostManager(JNIEnv* env);
333a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwoodint register_android_server_VibratorService(JNIEnv* env);
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_server_SystemServer(JNIEnv* env);
3500b74270c9f136a8727c5f6cda0997a3a905f385Mike Lockwoodint register_android_server_location_GpsLocationProvider(JNIEnv* env);
36ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yehint register_android_server_connectivity_Vpn(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) {
473762c311729fe9f3af085c14c5c1fb471d994c03Steve Block        ALOGE("GetEnv failed!");
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return result;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
50ec193dec4d9ca2cfc8295c4becfe950a906a15edSteve Block    ALOG_ASSERT(env, "Could not retrieve the env!");
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5200fa7bdd69f0868fd17ea7c881c771d785b2fbbdJeff Brown    register_android_server_PowerManagerService(env);
53b01e8bf57b7492b77e3445db51471edcbadda75eMike Lockwood    register_android_server_SerialService(env);
54928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputApplicationHandle(env);
55928e054931d357326613c78e62f4d850b7c442ffJeff Brown    register_android_server_InputWindowHandle(env);
5646b9ac0ae2162309774a7478cd9d4e578747bfc2Jeff Brown    register_android_server_InputManager(env);
573a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood    register_android_server_LightsService(env);
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_AlarmManagerService(env);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_BatteryService(env);
6046d0adf8256a42416584765625852b6e48497c90Mike Lockwood    register_android_server_UsbDeviceManager(env);
6146d0adf8256a42416584765625852b6e48497c90Mike Lockwood    register_android_server_UsbHostManager(env);
623a32213c4029a03fe39486f3d6ebd0ea18928ee1Mike Lockwood    register_android_server_VibratorService(env);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    register_android_server_SystemServer(env);
6400b74270c9f136a8727c5f6cda0997a3a905f385Mike Lockwood    register_android_server_location_GpsLocationProvider(env);
65ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh    register_android_server_connectivity_Vpn(env);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return JNI_VERSION_1_4;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
69