class cl_brk: public cl_base
{
+protected:
+ class cl_mem *mem;
public:
int nr;
t_addr addr;
int hit;
int cnt;
- cl_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
- ~cl_brk(void);
+ cl_brk(class cl_mem *imem, int inr, t_addr iaddr,
+ enum brk_perm iperm, int ihit);
+ virtual ~cl_brk(void);
+ virtual void activate(void);
+ virtual void inactivate(void);
virtual enum brk_type type(void)= 0;
+ virtual enum brk_event get_event(void)= 0;
virtual bool do_hit(void);
};
public:
uchar code;
- cl_fetch_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_fetch_brk(class cl_mem *imem, int inr, t_addr iaddr,
+ enum brk_perm iperm, int ihit);
virtual enum brk_type type(void);
+ virtual enum brk_event get_event(void) { return(brkNONE); }
};
class cl_ev_brk: public cl_brk
{
public:
- cl_ev_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit,
- enum brk_event ievent, const char *iid);
-
+ cl_ev_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit, enum brk_event ievent, const char *iid);
+ cl_ev_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit, char op);
enum brk_event event;
const char *id;
virtual enum brk_type type(void);
+ virtual enum brk_event get_event(void) { return(event); }
virtual bool match(struct event_rec *ev);
};
* WRITE IRAM
*/
-class cl_wi_brk: public cl_ev_brk
+/*class cl_wi_brk: public cl_ev_brk
{
public:
- cl_wi_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_wi_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* READ IRAM
*/
-class cl_ri_brk: public cl_ev_brk
+/*class cl_ri_brk: public cl_ev_brk
{
public:
- cl_ri_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_ri_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* WRITE XRAM
*/
-class cl_wx_brk: public cl_ev_brk
+/*class cl_wx_brk: public cl_ev_brk
{
public:
- cl_wx_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_wx_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* READ XRAM
*/
-class cl_rx_brk: public cl_ev_brk
+/*class cl_rx_brk: public cl_ev_brk
{
public:
- cl_rx_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_rx_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* WRITE SFR
*/
-class cl_ws_brk: public cl_ev_brk
+/*class cl_ws_brk: public cl_ev_brk
{
public:
- cl_ws_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_ws_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* READ SFR
*/
-class cl_rs_brk: public cl_ev_brk
+/*class cl_rs_brk: public cl_ev_brk
{
public:
- cl_rs_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_rs_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
* READ CODE
*/
-class cl_rc_brk: public cl_ev_brk
+/*class cl_rc_brk: public cl_ev_brk
{
public:
- cl_rc_brk(int inr, t_addr iaddr, enum brk_perm iperm, int ihit);
+ cl_rc_brk(class cl_mem *imem, int inr, t_addr iaddr, enum brk_perm iperm,
+ int ihit);
virtual bool match(struct event_rec *ev);
-};
+};*/
/*
class brk_coll: public cl_sorted_list
{
public:
- class cl_rom *rom;
+ class cl_mem/*rom*/ *rom;
public:
- brk_coll(t_index alimit, t_index adelta, class cl_rom *arom);
+ brk_coll(t_index alimit, t_index adelta, class cl_mem/*rom*/ *arom);
virtual void *key_of(void *item);
virtual int compare(void *key1, void *key2);
virtual void add_bp(class cl_brk *bp);
virtual void del_bp(t_addr addr);
+ virtual void del_bp(t_index idx, int /*dummy*/);
virtual class cl_brk *get_bp(t_addr addr, int *idx);
virtual class cl_brk *get_bp(int nr);
virtual bool bp_at(t_addr addr);