152f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk/*
252f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * Copyright 2015 The Android Open Source Project
352f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk *
452f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * Licensed under the Apache License, Version 2.0 (the "License");
552f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * you may not use this file except in compliance with the License.
652f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * You may obtain a copy of the License at
752f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk *
852f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk *      http://www.apache.org/licenses/LICENSE-2.0
952f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk *
1052f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * Unless required by applicable law or agreed to in writing, software
1152f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * distributed under the License is distributed on an "AS IS" BASIS,
1252f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * See the License for the specific language governing permissions and
1452f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk * limitations under the License.
1552f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk */
1652f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
1752f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk#ifndef ANDROID_I_PROCESS_INFO_SERVICE_H
1852f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk#define ANDROID_I_PROCESS_INFO_SERVICE_H
1952f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
2052f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk#include <binder/IInterface.h>
2152f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
2252f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunknamespace android {
2352f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
2452f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk// ----------------------------------------------------------------------
2552f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
2652f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunkclass IProcessInfoService : public IInterface {
2752f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunkpublic:
2817576de056a57753eb4af797545db88ef4f81ef0Colin Cross    DECLARE_META_INTERFACE(ProcessInfoService)
2952f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
3052f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk    virtual status_t    getProcessStatesFromPids( size_t length,
3152f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk                                                  /*in*/ int32_t* pids,
3252f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk                                                  /*out*/ int32_t* states) = 0;
3352f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
34c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang    virtual status_t    getProcessStatesAndOomScoresFromPids( size_t length,
35c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang                                                  /*in*/ int32_t* pids,
36c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang                                                  /*out*/ int32_t* states,
37c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang                                                  /*out*/ int32_t* scores) = 0;
38c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang
3952f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk    enum {
4052f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk        GET_PROCESS_STATES_FROM_PIDS = IBinder::FIRST_CALL_TRANSACTION,
41c72a90a335556be566628e1b0a76b3bd818498b4Chong Zhang        GET_PROCESS_STATES_AND_OOM_SCORES_FROM_PIDS,
4252f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk    };
4352f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk};
4452f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
4552f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk// ----------------------------------------------------------------------
4652f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
4752f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk}; // namespace android
4852f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk
4952f0407d6871c43d1e6502ec6754d5811c86ed82Ruben Brunk#endif // ANDROID_I_PROCESS_INFO_SERVICE_H
50