James Molloy's Tutorial Known Bugs: Difference between revisions

The Intel manual lists ISR 17 and 21 as pushing error codes. ISR 30 is, as time of writing, still reserved.
[unchecked revision][unchecked revision]
(Mention that the check for page alignment in kmalloc is wrong.)
(The Intel manual lists ISR 17 and 21 as pushing error codes. ISR 30 is, as time of writing, still reserved.)
Line 53:
There are two ways around this. The most practical method is to pass the structure as a pointer instead, which allows you to explicitly edit the register state when needed - very useful for system calls, without having the compiler randomly doing it for you. The compiler can still edit the pointer on the stack when it's not specifically needed. The second option is to make another copy the structure and pass that.
 
== Problem: ISR 17 and 3021 have error codes ==
 
The interrupt handling code in the downloadable code have a bug where it handles ISR 17 and 3021 by pushing a fake error code, but the CPU does push error codes here.
 
== Problem: struct registers::esp is useless ==
Anonymous user