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 orDunno, 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