Am 10.12.2012 03:22, schrieb liguang: > Signed-off-by: liguang <lig.f...@cn.fujitsu.com> > --- > target-i386/cpu.h | 15 +++++++++++++-- > 1 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/target-i386/cpu.h b/target-i386/cpu.h > index 29245d1..c69f81f 100644 > --- a/target-i386/cpu.h > +++ b/target-i386/cpu.h > @@ -996,9 +996,20 @@ int cpu_x86_handle_mmu_fault(CPUX86State *env, > target_ulong addr, > #define cpu_handle_mmu_fault cpu_x86_handle_mmu_fault > void cpu_x86_set_a20(CPUX86State *env, int a20_state); > > -static inline int hw_breakpoint_enabled(unsigned long dr7, int index) > +static inline bool hw_local_breakpoint_enabled(unsigned long dr7, int index) > { > - return (dr7 >> (index * 2)) & 3; > + return ((dr7 >> (index * 2)) & 1);
There's no need to add parenthesis around this expression. Shouldn't this ... > +} > + > +static inline bool hw_global_breakpoint_enabled(unsigned long dr7, int index) > +{ > + return ((dr7 >> (index * 2)) & 2); ... and this use defines from 1/3 now rather than magic numbers? Otherwise the logic seems to match what was discussed. Andreas > +} > + > +static inline bool hw_breakpoint_enabled(unsigned long dr7, int index) > +{ > + return (hw_global_breakpoint_enabled(dr7, index) || > + hw_local_breakpoint_enabled(dr7, index)); > } > > static inline int hw_breakpoint_type(unsigned long dr7, int index) -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg