19fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui/* 29fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * Copyright (C) 2015 The Android Open Source Project 39fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * 49fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * Licensed under the Apache License, Version 2.0 (the "License"); 59fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * you may not use this file except in compliance with the License. 69fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * You may obtain a copy of the License at 79fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * 89fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * http://www.apache.org/licenses/LICENSE-2.0 99fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * 109fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * Unless required by applicable law or agreed to in writing, software 119fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * distributed under the License is distributed on an "AS IS" BASIS, 129fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * See the License for the specific language governing permissions and 149fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui * limitations under the License. 159fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui */ 169fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui 173c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui#ifndef SIMPLE_PERF_DWARF_UNWIND_H_ 183c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui#define SIMPLE_PERF_DWARF_UNWIND_H_ 199fd3cc1048a3d0338df4a48760dfd655560992a1Yabin Cui 203c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui#include <vector> 213c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui 223c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui#include "perf_regs.h" 233c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui 24040f7b4c62ce49f0af0746640e94d415764262cdYabin Cuinamespace simpleperf { 253c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cuistruct ThreadEntry; 26040f7b4c62ce49f0af0746640e94d415764262cdYabin Cui} 27040f7b4c62ce49f0af0746640e94d415764262cdYabin Cui 28040f7b4c62ce49f0af0746640e94d415764262cdYabin Cuiusing ThreadEntry = simpleperf::ThreadEntry; 293c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui 30417df291499b37f63fa9b930e081d80a25bf38ecYabin Cuistd::vector<uint64_t> UnwindCallChain(int abi, const ThreadEntry& thread, const RegSet& regs, 31cf31e9d83d3fff0c0970aa344366136e4d5126a7Yabin Cui const char* stack, size_t stack_size, bool strict_arch_check); 323c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui 333c8c21345478816dd0c70c096090b564c91bd9d2Yabin Cui#endif // SIMPLE_PERF_DWARF_UNWIND_H_ 34