#define GDB_MULTI_ARCH GDB_MULTI_ARCH_PARTIAL
#define TARGET_HW_BREAK_LIMIT 4
#define TARGET_HW_WATCH_LIMIT 4
#define TARGET_HAS_HARDWARE_WATCHPOINTS
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) \
frv_check_watch_resources (type, cnt, ot)
extern int frv_check_watch_resources (int type, int cnt, int ot);
#define STOPPED_BY_WATCHPOINT(W) \
((W).kind == TARGET_WAITKIND_STOPPED \
&& (W).value.sig == TARGET_SIGNAL_TRAP \
&& (frv_stopped_data_address() != ((CORE_ADDR)0)))
extern CORE_ADDR frv_stopped_data_address(void);
#define target_insert_watchpoint(addr, len, type) \
remote_insert_watchpoint (addr, len, type)
#define target_remove_watchpoint(addr, len, type) \
remote_remove_watchpoint (addr, len, type)
#define target_insert_hw_breakpoint(addr, shadow) \
remote_insert_hw_breakpoint (addr, 1)
#define target_remove_hw_breakpoint(addr, shadow) \
remote_remove_hw_breakpoint (addr, 1)
#define target_stopped_data_address() frv_stopped_data_address()
extern int remote_insert_watchpoint (CORE_ADDR addr, int len, int type);
extern int remote_remove_watchpoint (CORE_ADDR addr, int len, int type);
extern int remote_insert_hw_breakpoint (CORE_ADDR addr, int len);
extern int remote_remove_hw_breakpoint (CORE_ADDR addr, int len);