/* * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * 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 __DNETMEMORYENUMLIB_H__ #define __DNETMEMORYENUMLIB_H__ #include #include struct SimpleMemoryRegion { uintptr_t m_startAddress; size_t m_size; }; enum DUMP_TYPE { DT_NORMAL = 0, DT_WITH_PRIV_AND_SHARED_MEM, DT_FULL }; enum REG_ERR { REGERR_OK = 0, REGERR_WRONG_PID = -1, REGERR_INITIALIZATION_ERROR = -2, REGERR_ENUMERATION_ERROR = -3 }; extern "C" int DotNetMemoryEnumRegions(pid_t pid, elf_prstatus **statuses, int statuses_count, DUMP_TYPE minidump_type, SimpleMemoryRegion **regions); extern "C" int DotNetMemoryEnumInit(); extern "C" void DotNetMemoryEnumFinish(); #endif