lkml.org 
[lkml]   [2008]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC Patch 1/9] Introducing generic hardware breakpoint handler interfaces
    On Tue, 7 Oct 2008, K.Prasad wrote:

    > This patch introduces two new files hw_breakpoint.[ch] which defines the
    > generic interfaces to use hardware breakpoint infrastructure of the system.

    ...
    > --- /dev/null
    > +++ linux-bkpt-lkml-27-rc9/include/asm-generic/hw_breakpoint.h
    > @@ -0,0 +1,236 @@
    > +#ifndef _ASM_GENERIC_HW_BREAKPOINT_H
    > +#define _ASM_GENERIC_HW_BREAKPOINT_H
    > +
    > +#ifndef __ARCH_HW_BREAKPOINT_H
    > +#error "Please don't include this file directly"
    > +#endif
    > +
    > +#ifdef __KERNEL__
    > +#include <linux/list.h>
    > +#include <linux/types.h>
    > +
    > +/**
    > + * struct hw_breakpoint - unified kernel/user-space hardware breakpoint
    > + * @node: internal linked-list management
    > + * @triggered: callback invoked when the breakpoint is hit

    The kerneldoc needs to be updated to match the structure. @triggered
    doesn't exist any more; instead there are @pre_handler and
    @post_handler.

    ...
    > + * When a breakpoint gets hit, the @triggered callback is invoked
    > + * in_interrupt with a pointer to the %hw_breakpoint structure and the
    > + * processor registers. Execute-breakpoint traps occur before the
    > + * breakpointed instruction runs; when the callback returns the
    > + * instruction is restarted (this time without a debug exception). All
    > + * other types of trap occur after the memory access has taken place.
    > + * Breakpoints are disabled while @triggered runs, to avoid recursive
    > + * traps and allow unhindered access to breakpointed memory.

    This paragraph needs to be fixed as well.

    ...
    > +/*
    > + * The following routines help the user determine if the architecture supports
    > + * a trigger-before access/execution mechanism or a trigger-after
    > + * access/execution. This is dependent on the type of breakpoint and the
    > + * architecture
    > + */
    > +int trigger_before_arch(unsigned type);
    > +int trigger_after_arch(unsigned type);

    These routines should have hwbp_ in their name (or something similar).
    And they don't need to have _arch.

    Alan Stern



    \
     
     \ /
      Last update: 2008-10-07 17:25    [W:3.335 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site