headless question, and IPC question

Kuba Ober kuba at mareimbrium.org
Fri Sep 30 14:56:23 CDT 2005


> >>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



More information about the wine-devel mailing list