I have been working on something that might be useful for kernel integration. It is a way for wine to create its own interrupt, so that a wine server/kernel/handle/whatever function could be called from userspace with a simple INT 0xwhatever. Just as linux uses int 0x80.
The only problem I could see with this technique is that it directly modifies the IDT, which only exists on i386/amd64 architectures, so that means we would have to find something else.
I am not sure if this is the direction that some people want to take, because I am sure this modification of the IDT would be considered improper by kernel types but come on, I mean i386 has something like 200 software interrupts and linux uses only one.
As it stands now, I have code that works perfectly with amd64 processors and just need to implement the actual wine system calls for handles or whatever it is. i386 support is a stones throw away, I just need to setup a virtual machine.
I know there is some discussion of what should be put in the kernel module, so I am asking for advice on what to implement... ie. just handles, everything wineserver does, etc.
On Wed, Aug 08, 2007 at 02:09:46AM -0400, James Keane wrote:
I have been working on something that might be useful for kernel integration. It is a way for wine to create its own interrupt, so that a wine server/kernel/handle/whatever function could be called from userspace with a simple INT 0xwhatever. Just as linux uses int 0x80.
The only problem I could see with this technique is that it directly modifies the IDT, which only exists on i386/amd64 architectures, so that means we would have to find something else.
I am not sure if this is the direction that some people want to take, because I am sure this modification of the IDT would be considered improper by kernel types but come on, I mean i386 has something like 200 software interrupts and linux uses only one.
As it stands now, I have code that works perfectly with amd64 processors and just need to implement the actual wine system calls for handles or whatever it is. i386 support is a stones throw away, I just need to setup a virtual machine.
I know there is some discussion of what should be put in the kernel module, so I am asking for advice on what to implement... ie. just handles, everything wineserver does, etc.
The first question is: Why do you want to do that and what specifically do you want to achieve?
Ciao, Marcus
I know there is some discussion of what should be put in the kernel module, so I am asking for advice on what to implement... ie. just handles, everything wineserver does, etc.
The first question is: Why do you want to do that and what specifically do you want to achieve?
A small step towards less overhead in client <-> server calls?
Cheers, Kuba
On Wed, Aug 08, 2007 at 01:10:08PM -0400, Kuba Ober wrote:
I know there is some discussion of what should be put in the kernel module, so I am asking for advice on what to implement... ie. just handles, everything wineserver does, etc.
The first question is: Why do you want to do that and what specifically do you want to achieve?
A small step towards less overhead in client <-> server calls?
We did other optimizations towards that goal already.
Any testcases that show slow down?
Ciao, Marcus