A question to those who know..

why is userret() called both at the end of trap() or syscall()
and also almost immediatly again (often) at the end of ast().

It seems that really there is no one place that one can put code that will
be called ONCE and ONLY ONCE as a thread progresses to userland.

There is no one place where you can say "after this point we are in
userland" right up until that iret instruction. There is always the danger
that FTER ny insruction that decides that we are now definitly going to
user space, there could occur an interrupt that causes a reschedule so
that some OTHER thread goes to user land.

Is it possible to clear interrupts and have the iret instruction
itself re-enable them?
(that would give a few instructions 'atomically' with the iret
which may be all I need).

is this possible in other architectures?

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to