SVC: Difference between revisions
Move some DMA stuff to its own page |
No edit summary |
||
Line 1,322: | Line 1,322: | ||
| MemoryState | | MemoryState | ||
|} | |} | ||
=svcSetHardwareBreakPoint= | |||
This is essentially an interface for writing values to the debug-unit (B/W)RP registers. registerId range 0..5 = breakpoints(BRP0-5), 0x100..0x101 = watchpoints(WRP0-1), anything outside of these ranges will result in an error. This is used for both adding and removing/disabling breakpoints/watchpoints, hence the raw control value parameter. | |||
Here the kernel sets bit15 in the DSCR, to enable monitor-mode debugging. | |||
Regardless of whether this is for a BRP, when bit21 is set in the control input parameter(BRP type = contextID), the kernel will load the target process [[KProcess|contextID]] and use that internally for the value field. The target process is specified via a [[KDebug]] handle passed as the "value" parameter. | |||
Lastly, the kernel disables the specified (B/W)RP, then writes the value parameter / loaded contextID to the (B/W)VR, then writes the input control value to the (B/W)CR. | |||
= Processes = | = Processes = |