grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Move assembly code out of the kernel


From: Vesa Jääskeläinen
Subject: Re: [PATCH] Move assembly code out of the kernel
Date: Sun, 24 Aug 2008 12:37:36 +0300
User-agent: Thunderbird 2.0.0.16 (Windows/20080708)

Bean wrote:
> On Sun, Aug 17, 2008 at 7:31 PM, Vesa Jääskeläinen <address@hidden> wrote:
>> address@hidden wrote:
>>> I have made generic function that does basically the same thing for bios
>>> service 0x10 (video). In that modification you prepare registers
>>> structure that will be configured during real mode switching. I am yet
>>> to commit it for review, but I think it would be more generic way to do
>>> this. When I come back from my holiday I will commit the code for review.
>>>
>>> So please wait a bit before committing this :)
> 
> Hi,
> 
> I'm thinking perhaps we can make it more generic and support multiple
> INT in one function. One way to do this is not use INT, but retrieve
> the address from IVT and do a far call. On return, pop the flag on
> stack. This would also make it easily to support far call, In that
> case, we just don't pop the flag.

Hmm. I have faint memory that this has been done previously somewhere
:)... need to think this a bit more.

> I also notice that you do the protected/real mode switch in
> grub_bioscall_int10h, why not use the prot_to_real and real_to_prot ?
> If you need to keep the value of %eax, you can store it in a structure
> and pass it using other register like %ecx.

I wanted it to be easily manageable so I can alter everything in order
to get it working at the first :)

But basically the points were:
- I needed to put registers to the stack and thus need to differentiate
esp and ebp.
- When returning I need to store those registers to structure provided
by caller.
- There was no need to "corrupt" stack area with return address, and I
needed stack for different purpose

Thanks,
Vesa Jääskeläinen




reply via email to

[Prev in Thread] Current Thread [Next in Thread]