PSL_RF inclusion in PSL_USERCHANGE for i386
rdivacky at freebsd.org
Sun Sep 2 10:56:31 PDT 2007
in i386/i386/machdep.c the set_regs() function sets i386 registers (called
by ptrace for example). it checks what eflags are being changed and compares
that with a mask of allowed flags to be changed. the mask is defined in psl.h
#define PSL_USERCHANGE (PSL_C | PSL_PF | PSL_AF | PSL_Z | PSL_N | PSL_T \
| PSL_D | PSL_V | PSL_NT | PSL_AC | PSL_ID)
PSL_RF (Flag to ensure single-step only happens once per instruction.). Can someone
tell me why this is omitted? I think its because of having in-kernel debugger.
User-mode Linux requires this to be allowed. So I wonder why this is disabled in FreeBSD.
(Linux itself does not check the eflags in any way).
thanks for answer, and/or pointer to answer
More information about the freebsd-arch