blob: f1590aee2fedd6cacbfac2f175ed79e5aa1898bd [file] [log] [blame]
/*
* 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 SIMPLE_PERF_INPLACE_SAMPLER_LIB_H_
#define SIMPLE_PERF_INPLACE_SAMPLER_LIB_H_
enum InplaceSamplerMessageType {
START_PROFILING,
START_PROFILING_REPLY,
THREAD_INFO,
MAP_INFO,
SAMPLE_INFO,
END_PROFILING,
END_PROFILING_REPLY,
};
// Type: START_PROFILING
// Direction: simpleperf to inplace_sampler
// Data:
// char options[]; // ended by '\0'
//
// options[] contains space separated options like below:
// freq=4000 # sample at 4000/s.
// signal=14 # use signal 14 to raise sample recording.
// tids=1432,1433 # take samples of thread 1432,1433.
// Type: START_PROFILING_REPLY
// Direction: inplace_sampler to simpleperf
// Data:
// char reply[]; // ended by '\0'
// reply[] contains a string, which is either 'ok' or 'error'
// Type: THREAD_INFO
// Direction: inplace_sampler to simpleperf
// Data:
// uint64_t time;
// uint32_t tid;
// char thread_name[]; // ended by '\0'
// Type: MAP_INFO
// Direction: inplace_sampler to simpleperf
// Data:
// uint64_t time;
// uint64_t start;
// uint64_t len;
// uint64_t pgoff;
// char[] dso; // ended by '\0'
// Type: SAMPLE_INFO
// Direction: inplace_sampler to simpleperf
// Data:
// uint64_t time;
// uint32_t tid;
// uint32_t period;
// uint32_t ip_nr;
// uint64_t ip[ip_nr];
// Type: END_PROFILING
// Direction: simpleperf to inplace_sampler
// Data:
// None.
// Type: END_PROFILING_REPLY
// Direction: inplace_sampler to simpleperf
// Data:
// uint64_t used_cpu_time;
// uint64_t lost_samples;
#endif // SIMPLE_PERF_INPLACE_SAMPLER_LIB_H_