Age | Commit message (Collapse) | Author |
|
Sadly, sysenter on i386 limits me to only 4 arguments (so, 1 for the
syscall id + 3 real args). If that turns out to be an issue I'll either
just switch to interrupts, or switch to x64.
|
|
|
|
It was taken from the wrong place - also I don't think that functions
should change their EIP in the first place?
|
|
|
|
quick explaination of how this even works:
The `call` in each stub pushes its own address onto the stack before
calling stage2. We can substract the address of the 0th ISR to get the
offset, which we then divide by the size of each stub to get the index.
|
|
|
|
imo "use" was slightly misleading
|
|
The kernel can't use the limited paging tables of user processes.
Alternatively, sysenter could accept a parameter with a new cr3. That
would allow/require using paging in the kernel - so I'll switch to it
later, but I want to get other stuff done first.
|
|
it's pretty useful, so it makes sense to define it alongside PAGE_SIZE
|
|
|
|
|
|
|
|
|
|
stack_top got changed into a char, because `extern void` isn't even
valid. others are self-explanatory
|
|
|