hw_breakpoint: Allow watchpoint of length 3,5,6 and 7
authorPratyush Anand <panand@redhat.com>
Mon, 14 Nov 2016 14:02:42 +0000 (19:32 +0530)
committerWill Deacon <will.deacon@arm.com>
Fri, 18 Nov 2016 17:23:17 +0000 (17:23 +0000)
We only support breakpoint/watchpoint of length 1, 2, 4 and 8. If we can
support other length as well, then user may watch more data with less
number of watchpoints (provided hardware supports it). For example: if we
have to watch only 4th, 5th and 6th byte from a 64 bit aligned address, we
will have to use two slots to implement it currently. One slot will watch a
half word at offset 4 and other a byte at offset 6. If we can have a
watchpoint of length 3 then we can watch it with single slot as well.

ARM64 hardware does support such functionality, therefore adding these new
definitions in generic layer.

Signed-off-by: Pratyush Anand <panand@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
include/uapi/linux/hw_breakpoint.h
tools/include/uapi/linux/hw_breakpoint.h

index b04000a..2b65efd 100644 (file)
@@ -4,7 +4,11 @@
 enum {
        HW_BREAKPOINT_LEN_1 = 1,
        HW_BREAKPOINT_LEN_2 = 2,
+       HW_BREAKPOINT_LEN_3 = 3,
        HW_BREAKPOINT_LEN_4 = 4,
+       HW_BREAKPOINT_LEN_5 = 5,
+       HW_BREAKPOINT_LEN_6 = 6,
+       HW_BREAKPOINT_LEN_7 = 7,
        HW_BREAKPOINT_LEN_8 = 8,
 };
 
index b04000a..2b65efd 100644 (file)
@@ -4,7 +4,11 @@
 enum {
        HW_BREAKPOINT_LEN_1 = 1,
        HW_BREAKPOINT_LEN_2 = 2,
+       HW_BREAKPOINT_LEN_3 = 3,
        HW_BREAKPOINT_LEN_4 = 4,
+       HW_BREAKPOINT_LEN_5 = 5,
+       HW_BREAKPOINT_LEN_6 = 6,
+       HW_BREAKPOINT_LEN_7 = 7,
        HW_BREAKPOINT_LEN_8 = 8,
 };