freebsd-dev/sys/mips/include
John Baldwin f07562ebb4 Fix PT_STEP single-stepping for mips.
Note that GDB at least implements single stepping for MIPS using software
breakpoints explicitly rather than using PT_STEP, so this has only been
tested via tests in ptrace_test which now pass rather than fail.

- Fix several places to use uintptr_t instead of int for virtual addresses.
- Check for errors from ptrace_read_int() when setting a breakpoint for a
  step.
- Properly check for errors from ptrace_write_int() as it returns non-zero,
  not negative values on failure.
- Change the error returns for ptrace_read_int() and ptrace_write_int() from
  ENOMEM to EFAULT.
- Clear a single step breakpoint when it traps rather than waiting for it
  to be cleared from ptrace().  This matches the behavior of the arm port
  and in general seems a bit more reliable than waiting for ptrace() to
  clear it via FIX_SSTEP.
- Drop the PROC_LOCK around ptrace_write_int() in ptrace_clear_single_step()
  since it can sleep.
- Reorder the breakpoint handler in trap() to only read the instruction if
  the address matches the current thread's breakpoint address.
- Replace various #if 0'd debugging printfs with KTR_PTRACE traces.

Tested on:	mips64
2018-04-24 17:53:16 +00:00
..
_align.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_bus.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_inttypes.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
_types.h Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
abi.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
asm.h Consistently use 16-byte alignment for MIPS N32 and N64. 2018-01-31 17:36:39 +00:00
atomic.h Remove mips MD atomic_load_64 and atomic_store_64. 2017-12-22 23:27:03 +00:00
bootinfo.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
bus_dma.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
bus.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache_mipsNN.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache_r4k.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cache.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cdefs.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
clock.h Garbage collect unused prototype for clockintr(). 2016-05-20 15:34:03 +00:00
counter.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
cpu.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
cpufunc.h Expose breakpoint() to userland from <machine/cpufunc.h> on MIPS. 2018-04-24 05:26:28 +00:00
cpuinfo.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
cpuregs.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
db_machdep.h No need to force md code to define a macro that's the same as 2018-04-16 13:52:23 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
efi.h Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
elf.h Move remaining EF_MIPS_* flags to <sys/elf_common.h>. 2018-03-23 19:31:52 +00:00
endian.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
fls64.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fpu.h
frame.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
gdb_machdep.h amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
hwfunc.h Add SMP support for BERI CPU. 2018-04-12 17:43:19 +00:00
ieee.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ieeefp.h
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
intr.h bhnd(4): implement MIPS and PCI(e) interrupt support 2017-11-21 23:15:20 +00:00
kdb.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
locore.h Identify Ingenic CPUs. 2016-11-19 15:10:10 +00:00
md_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
memdev.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
metadata.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
minidump.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
mips_opcode.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
octeon_cop2.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ofw_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
param.h MIPS: Implement fue*word* and casueword* in assembly. 2018-03-12 22:10:06 +00:00
pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pcpu.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
pmap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pmc_mdep.h
proc.h Fix PT_STEP single-stepping for mips. 2018-04-24 17:53:16 +00:00
profile.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pte.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
ptrace.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
reg.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
regdef.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
regnum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
reloc.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
resource.h Define PCI_RES_BUS for MIPS. 2016-04-12 07:18:48 +00:00
runq.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sc_machdep.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
setjmp.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
sf_buf.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
sigframe.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
smp.h Rename ARM_INTRNG and MIPS_INTRNG to INTRNG. This will help with machine 2016-04-15 16:05:41 +00:00
stdarg.h Use standard pattern for stdargs.h 2018-02-12 14:48:05 +00:00
sysarch.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tlb.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
tls.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
trap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ucontext.h Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
vdso.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
vm.h sys/mips: further adoption of SPDX licensing ID tags. 2017-11-27 15:07:26 +00:00
vmparam.h Remove SFBUF_OPTIONAL_DIRECT_MAP and such hacks, replacing them across the 2018-01-19 17:46:31 +00:00