[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: headless question, and IPC question
From:       Kuba Ober <kuba () mareimbrium ! org>
Date:       2005-09-30 19:56:23
Message-ID: 200509301556.23424.kuba () mareimbrium ! org
[Download RAW message or body]

> >>2. The sockets trick was the simplest way I could figure out how to do
> >>IPC between a linux process and a wine process.
> >>However, is there are
> >>any better or faster way to do this?  As far as I know I can't use
> >
> > Your .exe can make regular linux syscalls as it's really running on
> > linux. So you can essentially do whatever a regular linux application
> > would, given constraints enforced by wine's signal handling and such. But
> > all simple things like opening a pipe, using ipc() call etc will work.
> > The only thing is that you need to code syscall() and a couple of
> > wrappers for specific syscalls you want to use, but that's a simple
> > matter and glibc sources are a reasonable reference for that.

> This assumes that I'm using winelib, correct?

Why so? I explicitly mention the .exe. So, no winelib. To the contrary, this 
assumes that you run your regular .exe under wine.

There's nothing linux-only about generating syscall code, you can compile 
your .exe program say using mingw or Visual C++ as long as you've properly 
implemented syscall() in [inline] assembly. Presumably, the calling 
conventions for such a syscall() can be set such that the stack layout will 
match. Just have a look at the glibc sources.

Of course the program will crash on windows, but on linux it should just work 
and provide a gateway to calling the functions from the .dll that you need. 
That's what you're after, right?

Cheers, Kuba


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic