[haiku-development] Re: ucontext_t?

  • From: Andreas Färber <andreas.faerber@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 3 Aug 2008 16:17:04 +0200


Am 02.08.2008 um 16:18 schrieb François Revol:

Is there any alternative mechanism for user-level context
switching,
or could I contribute to having it implemented for x86?

Just like BeOS, we already provide extra args, including a vregs
array,
see
headers/posix/signal.h

But as this is totally non-standard we should probably also
implement
ucontext, and use it instead when it's enabled.

Thanks to both of you for the quick answers.

I am investigating struct vregs, and it's been a long time that I've
been in contact with x86 assembler, so... I'm wondering why there are
no members ebx, esi, edi? Are there different names for them or

Dunno, I never noticed those were lacking.
Probably because they are not meant to be touched by signal code ?

I've dug some deeper and found arch_setup_signal_frame in kernel/arch/ x86/arch_thread.cpp: Haiku does in fact save EDI as ._reserved_2[0] and ESI as ._reserved_2[1].

EBP however it not stored as .ebp but as ._reserved_2[2].

So from my view only EBX is missing.

Andreas


Other related posts: