1
Lowlevel-Coding / Re: Multitasking, die 1000ste ..
« am: 06. October 2011, 17:07 »
Ick könnt dir knutschen, et funktioniert 
Ich danke dir und Jidder schonmal recht herzlich
Für alle die es Interessiert oder die selben Probleme haben sollten, hier mein letzter Stand:
Der ASM IRQ-Stub:
Das dazugehörige Struct im init_task() :
Danke, nochmals

Ich danke dir und Jidder schonmal recht herzlich

Für alle die es Interessiert oder die selben Probleme haben sollten, hier mein letzter Stand:
Der ASM IRQ-Stub:
Code: [Auswählen]
irq_common_stub:
pusha
push ds
push es
push fs
push gs
mov ax, 0x10
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
push esp
call _irq_handler
mov esp, eax
pop gs
pop fs
pop es
pop ds
popa
add esp, 8
iret
Das dazugehörige Struct im init_task() :
Code: [Auswählen]
struct regs new_state = {
.eax = 0,
.ebx = 0,
.ecx = 0,
.edx = 0,
.esi = 0,
.edi = 0,
.ebp = 0,
//.esp = unbenutzt (kein Ring-Wechsel)
.eip = (uint32_t) entry,
/* Ring-0-Segmentregister */
.cs = 0x08,
//.ss = unbenutzt (kein Ring-Wechsel)
/* IRQs einschalten (IF = 1) */
.eflags = 0x202,
.gs=16,
.fs=16,
.es=16,
.ds=16,
.esp=0,
.useresp=0,
.ss=0,
.int_no=0,
.err_code=0,
};
Danke, nochmals
