Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Sep 2007 19:39:54 +0200
From:      Roman Divacky <rdivacky@freebsd.org>
To:        arch@freebsd.org
Cc:        i386@freebsd.org
Subject:   PSL_RF inclusion in PSL_USERCHANGE for i386
Message-ID:  <20070902173953.GA52566@freebsd.org>

next in thread | raw e-mail | index | archive | help
hi

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
like this:

#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

Roman Divacky



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070902173953.GA52566>