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