1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #ifndef _UID_INFO_H_
- #define _UID_INFO_H_
- #include <string>
- #include <unordered_map>
- #include <binder/Parcelable.h>
- namespace android {
- namespace os {
- namespace storaged {
- enum uid_stat_t {
- FOREGROUND = 0,
- BACKGROUND = 1,
- UID_STATS = 2
- };
- enum charger_stat_t {
- CHARGER_OFF = 0,
- CHARGER_ON = 1,
- CHARGER_STATS = 2
- };
- enum io_type_t {
- READ = 0,
- WRITE = 1,
- IO_TYPES = 2
- };
- struct io_stats {
- uint64_t rchar; // characters read
- uint64_t wchar; // characters written
- uint64_t read_bytes; // bytes read (from storage layer)
- uint64_t write_bytes; // bytes written (to storage layer)
- uint64_t fsync; // number of fsync syscalls
- };
- class task_info {
- public:
- std::string comm;
- pid_t pid;
- io_stats io[UID_STATS];
- bool parse_task_io_stats(std::string&& s);
- };
- class UidInfo : public Parcelable {
- public:
- uint32_t uid; // user id
- std::string name; // package name
- io_stats io[UID_STATS]; // [0]:foreground [1]:background
- std::unordered_map<uint32_t, task_info> tasks; // mapped from pid
- status_t writeToParcel(Parcel* parcel) const override;
- status_t readFromParcel(const Parcel* parcel) override;
- };
- } // namespace storaged
- } // namespace os
- } // namespace android
- #endif /* _UID_INFO_H_ */
|