1f8601845997d994252daf3a429577fc81a8ec604Yi Jin/*
2f8601845997d994252daf3a429577fc81a8ec604Yi Jin * Copyright (C) 2017 The Android Open Source Project
3f8601845997d994252daf3a429577fc81a8ec604Yi Jin *
4f8601845997d994252daf3a429577fc81a8ec604Yi Jin * Licensed under the Apache License, Version 2.0 (the "License");
5f8601845997d994252daf3a429577fc81a8ec604Yi Jin * you may not use this file except in compliance with the License.
6f8601845997d994252daf3a429577fc81a8ec604Yi Jin * You may obtain a copy of the License at
7f8601845997d994252daf3a429577fc81a8ec604Yi Jin *
8f8601845997d994252daf3a429577fc81a8ec604Yi Jin *      http://www.apache.org/licenses/LICENSE-2.0
9f8601845997d994252daf3a429577fc81a8ec604Yi Jin *
10f8601845997d994252daf3a429577fc81a8ec604Yi Jin * Unless required by applicable law or agreed to in writing, software
11f8601845997d994252daf3a429577fc81a8ec604Yi Jin * distributed under the License is distributed on an "AS IS" BASIS,
12f8601845997d994252daf3a429577fc81a8ec604Yi Jin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f8601845997d994252daf3a429577fc81a8ec604Yi Jin * See the License for the specific language governing permissions and
14f8601845997d994252daf3a429577fc81a8ec604Yi Jin * limitations under the License.
15f8601845997d994252daf3a429577fc81a8ec604Yi Jin */
16f8601845997d994252daf3a429577fc81a8ec604Yi Jin
17f8601845997d994252daf3a429577fc81a8ec604Yi Jinsyntax = "proto2";
18f8601845997d994252daf3a429577fc81a8ec604Yi Jin
19f8601845997d994252daf3a429577fc81a8ec604Yi Jinoption java_package = "android";
20f8601845997d994252daf3a429577fc81a8ec604Yi Jinoption java_multiple_files = true;
21f8601845997d994252daf3a429577fc81a8ec604Yi Jin
22f8601845997d994252daf3a429577fc81a8ec604Yi Jinimport "google/protobuf/descriptor.proto";
23f8601845997d994252daf3a429577fc81a8ec604Yi Jin
24f8601845997d994252daf3a429577fc81a8ec604Yi Jinpackage android;
25f8601845997d994252daf3a429577fc81a8ec604Yi Jin
26f8601845997d994252daf3a429577fc81a8ec604Yi Jin// SectionType defines how incidentd gonna get the field's data
27f8601845997d994252daf3a429577fc81a8ec604Yi Jinenum SectionType {
28f8601845997d994252daf3a429577fc81a8ec604Yi Jin
29f8601845997d994252daf3a429577fc81a8ec604Yi Jin    // Default fields, not available in incidentd
30f8601845997d994252daf3a429577fc81a8ec604Yi Jin    SECTION_NONE = 0;
31f8601845997d994252daf3a429577fc81a8ec604Yi Jin
32f8601845997d994252daf3a429577fc81a8ec604Yi Jin    // incidentd reads a file to get the data for annotated field
33f8601845997d994252daf3a429577fc81a8ec604Yi Jin    SECTION_FILE = 1;
34f8601845997d994252daf3a429577fc81a8ec604Yi Jin
35f8601845997d994252daf3a429577fc81a8ec604Yi Jin    // incidentd executes the given command for annotated field
36f8601845997d994252daf3a429577fc81a8ec604Yi Jin    SECTION_COMMAND = 2;
37f8601845997d994252daf3a429577fc81a8ec604Yi Jin
38f8601845997d994252daf3a429577fc81a8ec604Yi Jin    // incidentd calls dumpsys for annotated field
39f8601845997d994252daf3a429577fc81a8ec604Yi Jin    SECTION_DUMPSYS = 3;
403c034c987e1eeb49660fb62d3426c292a01412c9Yi Jin
413c034c987e1eeb49660fb62d3426c292a01412c9Yi Jin    // incidentd calls logs for annotated field
423c034c987e1eeb49660fb62d3426c292a01412c9Yi Jin    SECTION_LOG = 4;
431a11fa10977ee1e2645d400844ff4d472b8f5f02Yi Jin
441a11fa10977ee1e2645d400844ff4d472b8f5f02Yi Jin    // incidentd read file and gzip the data in bytes field
451a11fa10977ee1e2645d400844ff4d472b8f5f02Yi Jin    SECTION_GZIP = 5;
46eadd123d68850cb27aa6d030ade6190e30991b19Kweku Adams
47eadd123d68850cb27aa6d030ade6190e30991b19Kweku Adams    // incidentd calls tombstoned for annotated field
48eadd123d68850cb27aa6d030ade6190e30991b19Kweku Adams    SECTION_TOMBSTONE = 6;
49f8601845997d994252daf3a429577fc81a8ec604Yi Jin}
50f8601845997d994252daf3a429577fc81a8ec604Yi Jin
51f8601845997d994252daf3a429577fc81a8ec604Yi Jinmessage SectionFlags {
52f8601845997d994252daf3a429577fc81a8ec604Yi Jin  optional SectionType type = 1 [default = SECTION_NONE];
53f8601845997d994252daf3a429577fc81a8ec604Yi Jin  optional string args = 2;
547fe3dee3ae1cc47b50c4001cbac56c4fefbcc57bYi Jin  optional bool device_specific = 3 [default = false];
5571a9531806d9d37f5482c4d242f95416c04715bfKweku Adams  // If true, then the section will only be generated for userdebug and eng
5671a9531806d9d37f5482c4d242f95416c04715bfKweku Adams  // builds.
5771a9531806d9d37f5482c4d242f95416c04715bfKweku Adams  optional bool userdebug_and_eng_only = 4 [default = false];
58f8601845997d994252daf3a429577fc81a8ec604Yi Jin}
59f8601845997d994252daf3a429577fc81a8ec604Yi Jin
60f8601845997d994252daf3a429577fc81a8ec604Yi Jinextend google.protobuf.FieldOptions {
61f8601845997d994252daf3a429577fc81a8ec604Yi Jin    // Flags for automatically section list generation
62f8601845997d994252daf3a429577fc81a8ec604Yi Jin    optional SectionFlags section = 155792027;
63f8601845997d994252daf3a429577fc81a8ec604Yi Jin}
64