seL4/include/object
Kofi Doku Atuah bebfcf6d27 SELFOUR-499: X86, ARM: Add userspace invocations for hardware debugging
This commit implements the body of SELFOUR-499. The API exposes the x86 DR0-7
and ARM coprocessor 14 features to userspace by virtualizing them as context-
switched registers in the TCB. Implemented as TCB invocations. This feature is
only built when CONFIG_HARDWARE_DEBUG_API is selected.

* Add low-level support routines for setting, unsetting, getting, enabling
  and disabling breakpoints.
* Add support for single-stepping as well.
  ^ Single-stepping is not supported on ARMv6 since the hardware
    doesn't have support.
  ^ ARM implements single-stepping as instruction breakpoints
    configured to fault on every instruction -- this is achieved through
    the "mismatch" mode, which is only supported from ARMv7 onwards.
* Also support explicit software break requests, a la "BKPT" and "INT $3".

* New invocations:
  * seL4_TCB_SetBreakpoint().
  * seL4_TCB_GetBreakpoint().
  * seL4_TCB_UnsetBreakpoint().
  * seL4_TCB_ConfigureSingleStepping().
* New constants:
  ^ Event types:
    ^ seL4_InstructionBreakpoint.
    ^ seL4_DataBreakpoint.
    ^ seL4_SoftwareBreakRequest.
  ^ Access types:
    ^ seL4_BreakOnRead.
    ^ seL4_BreakOnWrite.
    ^ seL4_BreakOnReadWrite.
  ^ Exports:
    ^ seL4_NumHWBreakpoints.
    ^ seL4_NumExclusiveBreakpoints.
    ^ seL4_NumExclusiveWatchpoints.
    ^ seL4_NumDualFunctionMonitors.
    ^ seL4_FirstBreakpoint.
    ^ seL4_FirstWatchpoint.
    ^ seL4_FirstDualFunctionMonitor.

See documentation in the seL4 API manual.
2016-10-10 13:53:21 +11:00
..
cnode.h SELFOUR-114: remove duplication of seL4_MessageInfo_t, adjust naming to avoid cparser mangling 2016-01-11 11:16:08 +11:00
endpoint.h SELFOUR-317: rename async endpoint to notification object, and other 2015-11-09 17:18:43 +11:00
interrupt.h x86: IOAPIC/MSI syscalls 2016-02-02 15:58:18 +11:00
notification.h SELFOUR-317: rename async endpoint to notification object, and other 2015-11-09 17:18:43 +11:00
objecttype.h SELFOUR-421 Introduce explicit device frames and untypeds 2016-09-23 14:15:08 +10:00
structures.h SELFOUR-276: Add MCP field to threads. 2016-10-05 11:11:19 +11:00
structures_32.bf SELFOUR-499: X86, ARM: Add userspace invocations for hardware debugging 2016-10-10 13:53:21 +11:00
tcb.h SELFOUR-276: Add MCP field to threads. 2016-10-05 11:11:19 +11:00
untyped.h SELFOUR-421 Introduce explicit device frames and untypeds 2016-09-23 14:15:08 +10:00