* Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved.
*/
#ifdef MS_DEBUGGER
#ifndef ASCEND950DEVICECONTEXT_H
#define ASCEND950DEVICECONTEXT_H
#include "DeviceContext.h"
namespace lldb_private {
class Ascend950DeviceContext : public DeviceContext {
public:
Ascend950DeviceContext(const ::pid_t pid, const uint32_t device_id);
~Ascend950DeviceContext() = default;
SocType GetSocType() override { return m_soc_type; }
Status CheckRegisterAddr(CoreType core_type, uint64_t addr) const override;
MemType GetStackMemType() const override;
bool IsValidStack(lldb::addr_t addr, size_t size) override;
Status InvalidInstrCache(const lldb::addr_t &addr,
const InterruptPosInfo &pos_info, uint8_t redirect_ifu = 0) const override;
Status GetDeviceInfo(DeviceInfo &device_info) override;
Status Resume(const InterruptPosInfo &pos_info) const override;
Status SingleStep(const InterruptPosInfo &pos_info) const override;
Status RemoveHardwareBreakpoint(
lldb::addr_t addr, uint16_t stream_id, const InterruptPosInfo &pos_info) const override;
Status SetHardwareBreakpoint(lldb::addr_t addr, uint16_t stream_id, const InterruptPosInfo &pos_info) const override;
Status GetWarpsInfo(std::vector<WarpInfo> &warps_info, const InterruptPosInfo &m_pos_info) const override;
Status GetWarpInfo(WarpInfo &info, uint16_t warp_id, const InterruptPosInfo &m_pos_info) const override;
private:
SocType m_soc_type;
};
}
#endif
#endif