--- zzzz-none-000/linux-2.6.32.61/arch/mips/include/asm/watch.h 2013-06-10 09:43:48.000000000 +0000 +++ ar9-7330-650/linux-2.6.32.61/arch/mips/include/asm/watch.h 2012-06-12 11:57:52.000000000 +0000 @@ -29,4 +29,34 @@ #define __restore_watch() do {} while (0) #endif + +#if defined(CONFIG_AVM_WP) + +#define SET_WATCHPOINT_FAIL_WRONG_TYPE -1 +#define SET_WATCHPOINT_FAIL_NO_REG -2 +#define SET_WATCHPOINT_SUCCESS 0 +#define NR_WATCHPOINTS 4 + +#define WP_TYPE_W (1 << 0) +#define WP_TYPE_R (1 << 1) +#define WP_TYPE_I (1 << 2) + + +struct avm_wp { + int addr; + int mask; + int type; + void (*handler)( int, int , int ); +}; + +void default_wp_handler( int status, int deferred, int epc ); +int avm_wp_dispatcher( void ); + +int watchpoint_busy( int watch_nr ); +void del_watchpoint( int watch_nr ); + +int set_watchpoint(int watch_nr, int addr, int mask, int type); +int set_watchpoint_handler(int watch_nr, int addr, int mask, int type, void (*wp_handler)(int,int,int)); +#endif + #endif /* _ASM_WATCH_H */