#define OFFSET_TASK_KSTACK 8
#define OFFSET_TASK_PRIVL 12
#define OFFSET_TASK_STATE 16
+#define OFFSET_TASK_EBP0 20
#define CPU_SIZE (TSS_OFFSET + TSS_SIZE + 4)
#define OFFSET_CPU_CTASK (TSS_OFFSET + TSS_SIZE)
/* put EAX into the task structure - task pointer is still in EDI */
movl %eax, OFFSET_TASK_ESP0(%edi)
+ movl %eax, OFFSET_TASK_EBP0(%edi)
/* that should be it */
ret
test %esi, %esi
jz 2f
movl %esp, OFFSET_TASK_ESP0(%esi)
+ movl %ebp, OFFSET_TASK_EBP0(%esi)
/*
* Clear interrupts, since we won't have a valid stack until the
* linear address while we're in the context of the kernel
*/
movl OFFSET_TASK_ESP0(%edi), %esp
+ movl OFFSET_TASK_EBP0(%edi), %ebp
/*
* If this is a new task, we have to use _int_restore to return,