blob: fe33c88af72ea9ecd8c2f69bd4becfd9ab28f63d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
/*
* 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.
*/
package android.hardware.health@2.0;
import @1.0::HealthInfo;
import @1.0::Result;
/**
* Status values for HAL methods.
*/
enum Result : @1.0::Result {
NOT_FOUND,
CALLBACK_DIED,
};
/*
* Identification attributes for a storage device.
*/
struct StorageAttribute {
/**
* Set to true if internal storage
*/
bool isInternal;
/**
* Set to true if this is the boot device.
*/
bool isBootDevice;
/**
* Name of the storage device.
*/
string name;
};
/*
* Information on storage device including life time estimates, end of life
* information and other attributes.
*/
struct StorageInfo {
/**
* Attributes of the storage device whose info is contained by the struct.
*/
StorageAttribute attr;
/**
* pre-eol (end of life) information. Follows JEDEC standard No.84-B50.
*/
uint16_t eol;
/**
* device life time estimation (type A). Follows JEDEC standard No.84-B50.
*/
uint16_t lifetimeA;
/**
* device life time estimation (type B). Follows JEDEC standard No.84-B50.
*/
uint16_t lifetimeB;
/**
* version string
*/
string version;
};
/*
* Disk statistics since boot.
*/
struct DiskStats {
/**
* Number of reads processed.
*/
uint64_t reads;
/**
* number of read I/Os merged with in-queue I/Os.
*/
uint64_t readMerges;
/**
* number of sectors read.
*/
uint64_t readSectors;
/**
* total wait time for read requests.
*/
uint64_t readTicks;
/**
* number of writes processed.
*/
uint64_t writes;
/**
* number of writes merged with in-queue I/Os.
*/
uint64_t writeMerges;
/**
* number of sectors written.
*/
uint64_t writeSectors;
/**
* total wait time for write requests.
*/
uint64_t writeTicks;
/**
* number of I/Os currently in flight.
*/
uint64_t ioInFlight;
/**
* total time this block device has been active.
*/
uint64_t ioTicks;
/**
* total wait time for all requests.
*/
uint64_t ioInQueue;
/**
* Attributes of the memory device.
*/
StorageAttribute attr;
};
/**
* Combined Health Information.
*/
struct HealthInfo {
/**
* V1.0 HealthInfo.
* If a member is unsupported, it is filled with:
* - 0 (for integers);
* - false (for booleans);
* - empty string (for strings);
* - UNKNOWN (for BatteryStatus and BatteryHealth).
*/
@1.0::HealthInfo legacy;
/**
* Average battery current in uA. Will be 0 if unsupported.
*/
int32_t batteryCurrentAverage;
/**
* Disk Statistics. Will be an empty vector if unsupported.
*/
vec<DiskStats> diskStats;
/**
* Information on storage devices. Will be an empty vector if
* unsupported.
*/
vec<StorageInfo> storageInfos;
};
|