Re: DeviceIoControl

2002-04-03 Thread Laurent Pinchart

>
>
>in fact DeviceIOControl is used in two completly separate ways:
>1/ control VxD
>2/ control "device" handles on specific types
>
>the control on VxD is needed for Win 9x support. In that case the HIWORD
>of the iocontrol code is always 0. So, in that case, a lookup is made in
>the list of known VxD:s if wae can handle the request.
>
Ok. I read the "Calling DeviceIoControl on Windows 95/98/Me" MSDN page, 
and I now understand what it's about.

>the control on "device" handles is done when the high word of the
>control code is non 0. 
>
>as of today (but it's a bit hacky) handles to "device" and VxD:s are
>viewed (in the server) as very simple objects. They only provide a 
>
>clientID (a DWORD). all the calls to DeviceIOControl start by getting
>
>this client ID. 
>
>If the value has the bit 0x1 set, it means it's a VxD. The low word
>of the client id then identifies the standard ID of the VxD.
>
You're refering to both VxDs and WDM (.sys) drivers, right ?

How does the server find the correct low word of the client ID ? The 
driver I want to implement has a device type of 0xef00 (value passed to 
IoCreateDevice). I added a field to the VxD table with id set to 0xef00. 
Does wine, when I call CreateFile( ".\\MyDevice", ... ), check that 
table and set the client ID low word to the proper value ?

>If the 0x2 bit is set, it's in fact a handle a device. Driver A:
>through Z: are mapped to 0 to 25 values (in the low word)
>
>Otherwise, it's a handle to the old DOS named devices (with their old
>IDs too)
>
I think we should handler those cases in a new device handler (which 
would just test if the device is a CDROM for now).

>So, back to DeviceIoControl when the high word of the io control code is
>0. We expect device handle in that case (but don't test the 0x2 bit for
>error reporting), and then try to check if the device (from it's driver
>letter) is a CDROM, and if so apply the io control on it. Support of io
>
>control on other types of device (hard disks, storage...) isn't done at the moment.
>
You mean when the high word is not 0, right ?

I'll add a check for the 0x1 and 0x2 bits, and will dispatch the 
call to either a VxD or a device handler. Is that ok ?Can I use the same 
VxD list as for (HIWORD(dwIoControlCode) == 0 ) ?

Laurent Pinchart






freetype : wine doesn't compile(Implement GetTextExtentPointI)

2002-04-03 Thread Sylvain Petreolle

The following patch breaks compilation because there
is a previous definition :

Log message:
Huw D M Davies <[EMAIL PROTECTED]>
Implement GetTextExtentPointI and add support for
ETO_GLYPH_INDEX.

Patch:
http://cvs.winehq.com/patch.py?id=1017871707710937189943255

Compile errors : 

gcc -c -I. -I. -I../../include -I../../include  -g -O2
-Wall -mpreferred-stack-boundary=2 -fPIC -D__WINE__
-D_GDI32_ -D_REENTRANT -I/usr/X11R6/include -o
freetype.o freetype.c
freetype.c:1852: conflicting types for
`WineEngGetTextExtentPointI'
../../include/font.h:102: previous declaration of
`WineEngGetTextExtentPointI'


___
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com




Re: DeviceIoControl

2002-04-03 Thread Eric Pouech

Laurent Pinchart a écrit :
> 
> Hi everybody,
> 
> I need to add support for a currently unsupported VxD, and I'm quite puzzled
> by the way that DeviceIoControl currently processes the device control
> requests.
> 
> DeviceIoControl starts by checking the high word of dwIoControlCode, which is
> the device type. If the device type is 0, it gets a client ID by sending a
> get_file_info request to the server, and uses the client ID as the device
> type. It then looks in the VxD table for a handler for the device type, and
> calls it if it exists. No problem with that.
> 
> If the high word of dwIoControlCode is not 0, it checks if the device is a
> CDROM (by calling GetDriveTypeA). If so, it calls CDROM_DeviceIoControl, and
> if not is just fails.

in fact DeviceIOControl is used in two completly separate ways:
1/ control VxD
2/ control "device" handles on specific types

the control on VxD is needed for Win 9x support. In that case the HIWORD
of
the iocontrol code is always 0. So, in that case, a lookup is made in
the
list of known VxD:s if wae can handle the request.

the control on "device" handles is done when the high word of the
control code
is non 0. 

as of today (but it's a bit hacky) handles to "device" and VxD:s are
viewed (in
the server) as very simple objects. They only provide a clientID (a
DWORD).
all the calls to DeviceIOControl start by getting this client ID. 

If the value has the bit 0x1 set, it means it's a VxD. The low word
of the 
client id then identifies the standard ID of the VxD.

If the 0x2 bit is set, it's in fact a handle a device. Driver A:
through
Z: are mapped to 0 to 25 values (in the low word)

Otherwise, it's a handle to the old DOS named devices (with their old
IDs too)

So, back to DeviceIoControl when the high word of the io control code is
0.
We expect device handle in that case (but don't test the 0x2 bit for
error 
reporting), and then try to check if the device (from it's driver
letter) is
a CDROM, and if so apply the io control on it. Support of io control on
other
types of device (hard disks, storage...) isn't done at the moment.

A+




Re: VirtualAlloc bug ?

2002-04-03 Thread Eric Pouech

> I tried to use VirtualAlloc with MEM_COMMIT to map a page at address
> 0x7ffe. The call to VirtualAlloc failed with ERROR_INVALID_ADDRESS. I
> then tried to reserve the pages first, using VirtualAlloc with MEM_RESERVE,
> and the call to VirtualAlloc/MEM_COMMIT worked fined after that.
> 
> The MSDN state that "(MEM_COMMIT) If a memory page is not yet reserved,
> setting this value causes the function to both reserve and commit the memory
> page.".
this has changed recently. my local information (2K, 95 and NT 3/4 help,
and 
not XP as on line) doesn't state this

most (old) MSDN code about VirtualAlloc use the form
ptr = VirtualAlloc(, , MEM_RESERVE|MEM_COMMIT,
PAGE_READWRITE);

and not the only MEM_COMMIT

we should investigate a bit more this point for the VirtualAlloc
implementation
as of today, use the MEM_RESERVE|MEM_COMMIT form, it'll be just fine

A+




Re: FreeBSD/Solaris and -lc

2002-04-03 Thread Francois Gouget

Marcus Meissner wrote:
[...]
> It should not be linked on Linux.

   I found an application that will crash if I link it in on FreeBSD. So
it does seem that it should not be linked in even on FreeBSD (or maybe
the crash has to do with the order in which it is linked in).
   Confirmed... it is a link order problem for that one.


> Hmm, what about something like:
> 
> AC_CHECK_FUNC(getpid,,AC_CHECK_LIB(c,getpid))
> 
> or similar?

   Unfortunately this does not work. I get:
checking for getpid... yes
checking for sqrt in -lm... yes

   The problem is that it appears you don't need to specify it if you
don't use -Bsymbolic but you need to link it in if you use it:

This works:

$ gcc -shared advapi32.spec.o advapi.o crypt.o eventlog.o registry.o
security.o service.o -o advapi32.dll.so -L../../dlls -L../../library
-lwine -lm
$ echo $?
0

but this doesn't:

$ gcc -shared -Wl,-Bsymbolic advapi32.spec.o advapi.o crypt.o eventlog.o
registry.o security.o service.o -o advapi32.dll.so -L../../dlls
-L../../library -lwine -lm 
advapi.o: In function `GetUserNameA':
/mnt/home/fgouget/wine/wine.ref/freebsd/dlls/advapi32/../../../src/dlls/advapi32/advapi.c(.text+0x16):
undefined reference to `getuid'
/mnt/home/fgouget/wine/wine.ref/freebsd/dlls/advapi32/../../../src/dlls/advapi32/advapi.c(.text+0x1c):
undefined reference to `getpwuid'
/mnt/home/fgouget/wine/wine.ref/freebsd/dlls/advapi32/../../../src/dlls/advapi32/advapi.c(.text+0x3a):
undefined reference to `strerror'
...
$ echo $?
0

Hmm, $?==0 but it still really bothers me to have all these undefined
reference messages. And if I add -lc everything is fine again:

$ gcc -shared -Wl,-Bsymbolic advapi32.spec.o advapi.o crypt.o eventlog.o
registry.o security.o service.o -o advapi32.dll.so -L../../dlls
-L../../library -lwine -lm -lc
$ echo $?
0

Also, I could not get ldd to work on advapi32.dll.so for any of the
above files.
$ ldd advapi32.dll.so 
advapi32.dll.so:
ldd: advapi32.dll.so: Exec format error
advapi32.dll.so: exit status 1

   What's wrong???

-- 
François Gouget
[EMAIL PROTECTED]




Re: DirectX API information - where?

2002-04-03 Thread Vincent Béron

Roland a écrit :
> 
> At 10:47 PM 4/3/02 +0200, Andreas Mohr wrote:
> >search.microsoft.com.
> >
> >That's where I get quite some information from.
> >
> >Apart from that, mostly web searches and my pretty good collection of
> >books (it's starting to extend to 1 meter of expert windows books now :-)
> 
> Ok, let me ask this question:
> 
> where do you get the information about the *nix API, the X-Windows API,
> OpenGL etc?
> 
> Roland

*nix: man 3 should have a lot of info.
X-Window (without the "s"): www.xfree86.org. If you want something more
portable, try starting at www.x.org.
OpenGL: www.opengl.org

There are also a ton of books on each of those subjects, although
picking the good ones is difficult.

Vincent




DeviceIoControl

2002-04-03 Thread Laurent Pinchart

Hi everybody,

I need to add support for a currently unsupported VxD, and I'm quite puzzled 
by the way that DeviceIoControl currently processes the device control 
requests.

DeviceIoControl starts by checking the high word of dwIoControlCode, which is 
the device type. If the device type is 0, it gets a client ID by sending a 
get_file_info request to the server, and uses the client ID as the device 
type. It then looks in the VxD table for a handler for the device type, and 
calls it if it exists. No problem with that.

If the high word of dwIoControlCode is not 0, it checks if the device is a 
CDROM (by calling GetDriveTypeA). If so, it calls CDROM_DeviceIoControl, and 
if not is just fails.

I was wondering why the same VxD table as for (HIWORD(dwIoControlCode) == 0) 
wasn't used when the device type in dwIoControlCode is not 0. It seems to be 
a mistake to me. I was thinking about implementing the following algorithm:

- check HIWORD(dwIoControlCode)
  - if 0, deviceType = GetCliendID( Device )
  - if ! 0, deviceType = HIWORD(dwIoControlCode)
- look for a VxD handler in the VxD table using the deviceType.
- call the handler if it exists, fails otherwise

This leaves out the special case for CDROM_DeviceIoControl. Could anyone 
explain to me why that special check is needed, if it is ?

Thanks in advance.

Laurent Pinchart




Re: DirectX API information - where?

2002-04-03 Thread Roland

At 10:47 PM 4/3/02 +0200, Andreas Mohr wrote:
>search.microsoft.com.
>
>That's where I get quite some information from.
>
>Apart from that, mostly web searches and my pretty good collection of
>books (it's starting to extend to 1 meter of expert windows books now :-)

Ok, let me ask this question:

where do you get the information about the *nix API, the X-Windows API, 
OpenGL etc?

Roland





Re: Startup fix for scanbin 6.0

2002-04-03 Thread Dimitrie O. Paun

On April 3, 2002 03:58 pm, Stefan Leichter wrote:
> +   if (!str) {
> +   ERR("called without text\n");
  ^^^
This is not an ERR (which signals an internal Wine error), maybe a WARN, but I 
would suggest instead just:

+if (!str) return 0;

-- 
Dimi.





VirtualAlloc bug ?

2002-04-03 Thread Laurent Pinchart

Hi,

I tried to use VirtualAlloc with MEM_COMMIT to map a page at address 
0x7ffe. The call to VirtualAlloc failed with ERROR_INVALID_ADDRESS. I 
then tried to reserve the pages first, using VirtualAlloc with MEM_RESERVE, 
and the call to VirtualAlloc/MEM_COMMIT worked fined after that.

The MSDN state that "(MEM_COMMIT) If a memory page is not yet reserved, 
setting this value causes the function to both reserve and commit the memory 
page.".

Is that a wine bug ? I can try to fix it, but I'm scared to break something 
in VirtualAlloc, as I'm new to wine internals.

Laurent Pinchart




Re: Read of memory location 0x7ffe0000 in windows NT

2002-04-03 Thread Laurent Pinchart

> > After some investigation, it seems that reading the memory location
> > 0x7ffe should return KeTickCount.LowPart to the user process. Has
> > anyone ever heard about that ? I was wondering if it was a native windows
> > NT behaviour, or if it was done by a special kernel-space exception
> > handler installed by the program.
>
> It's a native NT thing; a page of memory at that address is shared
> between user and kernel space. The definition in the w2k ddk.

I downloaded the w2k ddk, and SharedUserData seems to be located at 
0xffdf (line 5099 of ntddk.h). Did Microsoft move the page around between 
NT4 and NT5, or is there something I don't understand ?

Laurent Pinchart




Re: Removed sorting of registry key values

2002-04-03 Thread Paul Millar

On Wed, 3 Apr 2002, Andriy Palamarchuk wrote:
 [snip - Eric's info on why the registry has to be sorted]

> The tests show that values are exported in the same
> order in which they are created. This means the values
> are stored not in any particular order.

That doesn't necessarily follow ...

The export function(s) could map the sorted registry back into its
original order. At the cost of sizeof( void *) bytes per registry entry
(perhaps less, I haven't looked too closely at the registry code), you
could have the registry keys sorted (for fast access) and export back into
the original order in O(n)

Is it worth the memory for that level of compatibility? 


Paul Millar






Uninstaller issues on windows

2002-04-03 Thread Steven Edwards

Hola Andi,
I've built the uninstaller under mingw32 but have been having problems
getting it to work. It will crash shortly after startup. Is it being
developed on win32 or is it wine only? If you don't mind supporting it
on windows I will send you a full bug report.

Thanks
Steven


_
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com





Re: DirectX API information - where?

2002-04-03 Thread Andreas Mohr

On Wed, Apr 03, 2002 at 07:09:52PM +0200, Tels wrote:
> -BEGIN PGP SIGNED MESSAGE-
> 
> Moin,
> 
> I want to learn more about the directx and general windows APIs. Now
> I looked at some books, but was very unsure as to buy what and where, if
> ever.
> 
> First, it seems that good books about these topics come from Microsoft
> Press. Naturally I don't want to support them ;)
> Second, it seems that you need for the examples and SDK Visual C++ - again
> from MS. Eeek!
> And of course, you have to run and use it under Windows *sigh*
> I am also worried about the different EULAs, licence and all that other
> stuff "tainting" me - even though I do believe that all of this stuff isn't
> legal binding for me anyway. But you never know.
> 
> So, my question: Where can I obtain *free* information about the API's,
> their working etc. What do you use? Books you can advise?
search.microsoft.com.

That's where I get quite some information from.

Apart from that, mostly web searches and my pretty good collection of
books (it's starting to extend to 1 meter of expert windows books now :-)

-- 
Andreas MohrStauferstr. 6, D-71272 Renningen, Germany
Tel. +49 7159 800604http://home.arcor.de/andi.mohr/




Re: dynamic .fon conversion

2002-04-03 Thread Huw D M Davies

On Tue, Apr 02, 2002 at 11:38:53PM +0900, Dmitry Timoshkov wrote:
> "Huw D M Davies" <[EMAIL PROTECTED]> wrote:
> 
> > >Now, IIRC (Huw will correct me if I'm wrong), it was said that
> > > FreeType also supports Postscript fonts and .fon fonts. So the way to go
> > > would be to extend Wine's FreeType support to .fon fonts.
> > 
> > Yes, that's the idea.  At the moment we ignore any font that isn't
> > sfnt format (that's anything that isn't TT or OpenType).  The issues
> > are that we need to implement something sensible for GetGlyphOutline
> > and GetOutlineTextMetrics for bitmap or Type1 fonts.
> 
> I would expect that for at least very first time that functions will
> fail for bitmap fonts and return glyph data in GGO_BEZIER format for
> Type1 fonts. Later we can add cubic <-> quadratic spline conversion
> routines and some special handling for bitmap fonts. Most applications
> don't use or provide advanced vector graphics at all. As a side effect
> of adding support for bitmap fonts will be retired x11drv font support.
> and a possibility for real WYSIWYG in printing.

For bitmap fonts to be useful GetGlyphOutline will have to return the
bitmaps for GGO_BITMAP (this probably isn't what Windows does, but I
think we can live with the difference).  Of course once we do it for
.fon's then .pcf/.bdf come almost for free.  Actually I expect the
hard bit is getting the TEXTMETRICs right.

Huw.





Re: Regression: Wine won't compile with latest cvs shlwapi

2002-04-03 Thread Ulrich Weigand

Alexandre Julliard wrote:

> That's most likely the usual gcc bug with local WINAPI function
> pointers.

Doh, I'd completely forgotten that one :-/

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  [EMAIL PROTECTED]




apologies to all

2002-04-03 Thread Lonnie Cumberland

Hello All,

I am VERY VERY sorry for sending the entire list such a large
attachment. I hope that you all will forgive me and it will not
happen again.

I have no excuse except to say that I was getting too excited about
the implementation and did not look at the size of the files.

Sorry again,
Lonnie

-- 
 Lonnie Cumberland
 OutStep Technologies Incorporated
 EMAIL: [EMAIL PROTECTED]
  : [EMAIL PROTECTED]

 The Basis Express Virtual Office
   &
 Data Backup and Recovery Services

 URL: http://www.basis-express.com

"The Virtual Office without boundaries!!!"








Re: warn:wave:OSS_OpenDevice Another thread ...

2002-04-03 Thread Duane Clark

Eric wrote:
> This patch would be the correct way of fixing the issue. Would you mind
> trying it?

This patch causes hangs for me. The audio and app ran for awhile, but 
then everything, including the app, suddenly froze up.





Re: Removed sorting of registry key values

2002-04-03 Thread Tels

-BEGIN PGP SIGNED MESSAGE-

Moin,

On 03-Apr-02 Andriy Palamarchuk carved into stone:
> A program can expect to retrieve values in the order
> they were created. In particular, the problem can be
> if the app creates names like Item1, ..., Item10.
> After sorting Item10 will be after Item1, not after
> Item9.

But is this documented? Are there programs which will relly rely on this?
And is this guarantied no to change, for instance in other windows
versions?

I would say: Don't fix things that are not broken.;)

Cheers,

Tels

- --
 "Why do you go so slowly? Do you think this is some kind of game?"
 PGP key available on http://bloodgate.com/tels.asc or via email.
 perl -MDev::Bollocks -e'print Dev::Bollocks->rand(),"\n"'
 authoritatively disintermediate prospective materials


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.

iQEVAwUBPKtOtncLPEOTuEwVAQEfwAf+Nj8XZoVB84RoFcTbdvQ6qKBMh23cQ5EO
d7c17jkVbGENWvEHR5NjToYDd3evEfM8emOe86ywxw6MrHdJZ+3RlSukcfprV33k
EZoi2dgIzz7u+I3q//iaGkGrkGoW962XO2DiFXF3C33Es5DbORl8PMPq96+PJsz0
yCTgrzapD47+VvJLXBDgUHsPpyyFIjLP1+7/WhAB/qOEUae1a1lNSAAsbmY/zpT9
jL01/6bH28BDOGSmDI1j02hy8A9VZG/ErcLuhVOmBWEuYVq5+85t3PILCNJr5idP
597pu8baDfFYxjdaMO5E9zPiRib8jMGfWS+M5HRWSEiUEy66eEMKZQ==
=ueqX
-END PGP SIGNATURE-




Re: Removed sorting of registry key values

2002-04-03 Thread Alexandre Julliard

Andriy Palamarchuk <[EMAIL PROTECTED]> writes:

> I don't have any doubts that existing code is faster.
> The point of the patch is compatibility with Windows
> behaviour.

Unless we find a real-life application that depends on that, there
isn't much point in being compatible here.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: SharedUserData

2002-04-03 Thread Laurent Pinchart

>
>
>>I need to implement the SharedUserData, which is a page of memory 
>>located at (KERNEL_BASE - 0x1) shared between user space (read-only 
>>access) and kernel space.
>>
>I don't know how to get the 'page fault' trap for a 'valid' user
>page on all systems that wine might run on.  Certainly the assumption
>that (KERNEL_BASE - 0x1) is available is probably false...
>
>However you don't actually need a valid user address, a kernel
>address (ie one that is always invalid) will do.
>
I'm not sure to understand what you mean. The user program will try to 
access KERNEL_BASE - 0x1 (which is 0x7ffe on IA-32). I need that 
to trigger a segfault.

>Catching SIGSEGV might be enough - but I'm not totally
>certain how you can get the value back into the main
>process context (emulate the instruction and modify the
>saved program counter )
>
That's what I thought at first. I could also try to set a hardware 
breakpoint for read/write accesses at that address, but that's highly 
not portable, and won't work nicely with a debugger. If someone has a 
better idea I'll be glad to hear it.

Laurent Pinchart






Re: Removed sorting of registry key values

2002-04-03 Thread Andriy Palamarchuk


--- Eric Pouech <[EMAIL PROTECTED]> wrote:
> I fail to see the benefits of the patch:
> - key are sorted to allow O(log(n)) searching
> (registry
>   is loaded only once, and then searched lots of
> time)
>   so using enhanced searching techniques (<< O(n))
> is 
>   really needed
> - saying that NT doesn't export the keys in an
>   alphabetical order doesn't mean the keys are not 
>   sorted. So far, you can only tell that they are
> not
>   sorted, in the export mechanism, by an
> alphabetical
>   order. They could be sorted, for example, by a
> hash
>   code value (look at misc/registry.c for some more 
>   details on registry internals)

The tests show that values are exported in the same
order in which they are created. This means the values
are stored not in any particular order. Sure, Windows
internallty can use map of keys for faster search but
I doubt it.

A program can expect to retrieve values in the order
they were created. In particular, the problem can be
if the app creates names like Item1, ..., Item10.
After sorting Item10 will be after Item1, not after
Item9.

I don't have any doubts that existing code is faster.
The point of the patch is compatibility with Windows
behaviour.

Andriy Palamarchuk

__
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/




Re: Removed sorting of registry key values

2002-04-03 Thread Eric Pouech

Andriy Palamarchuk a écrit :
> 
> Working on regedit replacement I noticed that Windows
> regedit does not sort registry key values, while Wine
> does.
> I tested this on NT 4.0, SP2. You can check this by
> importing a registry file with not alphabetic values
> order and exporting it again.

I fail to see the benefits of the patch:
- key are sorted to allow O(log(n)) searching (registry
  is loaded only once, and then searched lots of time)
  so using enhanced searching techniques (<< O(n)) is 
  really needed
- saying that NT doesn't export the keys in an
  alphabetical order doesn't mean the keys are not 
  sorted. So far, you can only tell that they are not
  sorted, in the export mechanism, by an alphabetical
  order. They could be sorted, for example, by a hash
  code value (look at misc/registry.c for some more 
  details on registry internals)
  
A+




DirectX API information - where?

2002-04-03 Thread Tels

-BEGIN PGP SIGNED MESSAGE-

Moin,

I want to learn more about the directx and general windows APIs. Now
I looked at some books, but was very unsure as to buy what and where, if
ever.

First, it seems that good books about these topics come from Microsoft
Press. Naturally I don't want to support them ;)
Second, it seems that you need for the examples and SDK Visual C++ - again
from MS. Eeek!
And of course, you have to run and use it under Windows *sigh*
I am also worried about the different EULAs, licence and all that other
stuff "tainting" me - even though I do believe that all of this stuff isn't
legal binding for me anyway. But you never know.

So, my question: Where can I obtain *free* information about the API's,
their working etc. What do you use? Books you can advise?

Thank you in advance,

Tels

- --
 "Why do you go so slowly? Do you think this is some kind of game?"
 PGP key available on http://bloodgate.com/tels.asc or via email.
 perl -MDev::Bollocks -e'print Dev::Bollocks->rand(),"\n"'
 appropriately cultivate error-free convergence


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.

iQEVAwUBPKs2zXcLPEOTuEwVAQGhjQf+KlvVhQQwEOpoReUTiukkohRolyyR8Z+f
I/G4sx/ER8+RxtnwrWjBl/gadtnmUdjcf5x0Maca0cxRESjUwSvLgFXNA/VqGtiu
SDsDpGVgXUr3iGDu2vXPMFCP0EqrwIUsFSoCpk9me6lWoPlWIOG/EZknA+JY+2zp
axFcdrcu7QXq5KF2imPu+ACTA4dC9Af7HGhRflL0ERSe8a4+yhFqC8R2HV++TLPU
+H5BQzLPiOANdrfj63bdaCoMWB+qj9bRW+PhPGkzq/QL4p/wsnz70AuW60pSRW5R
dOokojLj9gjTY4QEQ/UEt8kyGIxFnSCF21oz9Ltjn1MXC6L8cwJ0Fg==
=c8ZH
-END PGP SIGNATURE-




Re: Regression: Wine won't compile with latest cvs shlwapi

2002-04-03 Thread Tony Lambregts

Alexandre Julliard wrote:

>Tony Lambregts <[EMAIL PROTECTED]> writes:
>
>>I can't get recent cvs versions to compile. After running cvs update -PAd and
>>./tools/installwine I get these messages gcc: Internal compiler error:
>>program cc1 got fatal signal 11
>>
>>make[2]: *** [ordinal.o] Error 1
>>make[2]: Leaving directory `/usr/local/src/wine/dlls/shlwapi'
>>make[1]: *** [shlwapi/shlwapi.dll.so] Error 2
>>make[1]: Leaving directory `/usr/local/src/wine/dlls'
>>make: *** [dlls] Error 2
>>
>
>That's most likely the usual gcc bug with local WINAPI function
>pointers. I've merged a patch to shlwapi that should work around
>this.
>
Your right my version of gcc is buggy . Thankyou for the patch wine 
compiles fine now.

Tony Lambregts







process detach in user

2002-04-03 Thread David Hammerton

Hi,

If you take a look at the bottom of dlls/user/user_main.c you will notice that
in UserClientDllInitialize we have a switch for 'reason':

switch(reason)
{
case DLL_PROCESS_ATTACH:
ret = process_attach();
break;
case DLL_THREAD_DETACH:
thread_detach();
break;
}

Should we not also be accounting for the DLL_PROCESS_DETACH case in this
switch? The reason I noticed this is because some windows (on the user side)
are not being cleaned up when a when a process detaches, although they are
being clean up on the x11drv side.
Is this just a silly bug or is there a reason DLL_PROCESS_DETACH is not worried
about?

Cheers
David

-- 
David Hammerton
programmer and support
TransGaming Technologies Inc.
http://www.transgaming.com
[EMAIL PROTECTED]





Re: SharedUserData

2002-04-03 Thread David Laight

On Wed, Apr 03, 2002 at 09:49:07AM +0200, Laurent Pinchart wrote:
> Hi everybody,
> 
> I need to implement the SharedUserData, which is a page of memory 
> located at (KERNEL_BASE - 0x1) shared between user space (read-only 
> access) and kernel space.

I don't know how to get the 'page fault' trap for a 'valid' user
page on all systems that wine might run on.  Certainly the assumption
that (KERNEL_BASE - 0x1) is available is probably false...

However you don't actually need a valid user address, a kernel
address (ie one that is always invalid) will do.
Catching SIGSEGV might be enough - but I'm not totally
certain how you can get the value back into the main
process context (emulate the instruction and modify the
saved program counter )

David

-- 
David Laight: [EMAIL PROTECTED]




Generalization of async IO structures - New attempt

2002-04-03 Thread Martin Wilck


PATCH: async-struct.diff

This patch introduces a new API for asynchronous requests, which

1) separates cleanly between async scheduling and file IO related issues,
2) thereby makes the API compatible with other types of async requests,
3) makes all async IO handling functions static for better DLL separation.

This a a reworked version of my patch as of 2002/01/15, with modifications
to achieve 3).

Patch against: Wine CVS 2002/04/03
Test status:   Compiles (no errors/warnings), tested regular file async IO (ok).

Added files:
include: async.h

Modified files:
server : protocol.def async.c
dlls/kernel: comm.c
files  : file.c
include: file.h
scheduler  : synchro.c

Log message:
Martin Wilck <[EMAIL PROTECTED]>
- new server call: cancel_async
- move async IO API from include/file.h, scheduler/synchro.c to new header 
file include/async.h
- differentiate generic async API from IO-type specific fields

diff -ruNX diffignore CVS/wine/dlls/kernel/comm.c MW/wine/dlls/kernel/comm.c
--- CVS/wine/dlls/kernel/comm.c Tue Apr  2 15:39:18 2002
+++ MW/wine/dlls/kernel/comm.c  Wed Apr  3 14:48:39 2002
@@ -91,6 +91,53 @@

 WINE_DEFAULT_DEBUG_CHANNEL(comm);

+/***
+ * Asynchronous I/O for asynchronous wait requests *
+ */
+#include "async.h"
+
+static DWORD commio_get_async_status (const async_private *ovp);
+static DWORD commio_get_async_count (const async_private *ovp);
+static void commio_set_async_status (async_private *ovp, const DWORD status);
+static void CALLBACK commio_call_completion_func (ULONG_PTR data);
+
+static async_ops commio_async_ops =
+{
+commio_get_async_status,   /* get_status */
+commio_set_async_status,   /* set_status */
+commio_get_async_count,/* get_count */
+commio_call_completion_func/* call_completion */
+};
+
+typedef struct async_commio
+{
+struct async_private async;
+LPOVERLAPPED lpOverlapped;
+char *buffer;
+} async_commio;
+
+static DWORD commio_get_async_status (const struct async_private *ovp)
+{
+return ((async_commio*) ovp)->lpOverlapped->Internal;
+}
+
+static void commio_set_async_status (async_private *ovp, const DWORD status)
+{
+((async_commio*) ovp)->lpOverlapped->Internal = status;
+}
+
+static DWORD commio_get_async_count (const struct async_private *ovp)
+{
+return 0;
+}
+
+static void CALLBACK commio_call_completion_func (ULONG_PTR data)
+{
+HeapFree(GetProcessHeap(), 0, (void*) data);
+}
+
+/***/
+
 #if !defined(TIOCINQ) && defined(FIONREAD)
 #defineTIOCINQ FIONREAD
 #endif
@@ -1558,12 +1605,13 @@
  */
 static void COMM_WaitCommEventService(async_private *ovp)
 {
-LPOVERLAPPED lpOverlapped = ovp->lpOverlapped;
+async_commio *commio = (async_commio*) ovp;
+LPOVERLAPPED lpOverlapped = commio->lpOverlapped;

 TRACE("overlapped %p\n",lpOverlapped);

 /* FIXME: detect other events */
-*ovp->buffer = EV_RXCHAR;
+*commio->buffer = EV_RXCHAR;

 lpOverlapped->Internal = STATUS_SUCCESS;
 }
@@ -1579,8 +1627,8 @@
 LPDWORD lpdwEvents,/* [out] event(s) that were detected */
 LPOVERLAPPED lpOverlapped) /* [in/out] for Asynchronous waiting */
 {
-int fd,ret;
-async_private *ovp;
+int fd;
+async_commio *ovp;

 if(!lpOverlapped)
 {
@@ -1591,53 +1639,32 @@
 if(NtResetEvent(lpOverlapped->hEvent,NULL))
 return FALSE;

-lpOverlapped->Internal = STATUS_PENDING;
-lpOverlapped->InternalHigh = 0;
-lpOverlapped->Offset = 0;
-lpOverlapped->OffsetHigh = 0;
-
 fd = FILE_GetUnixHandle( hFile, GENERIC_WRITE );
 if(fd<0)
return FALSE;

-ovp = (async_private *) HeapAlloc(GetProcessHeap(), 0, sizeof (async_private));
+ovp = (async_commio*) HeapAlloc(GetProcessHeap(), 0, sizeof (async_commio));
 if(!ovp)
 {
 close(fd);
 return FALSE;
 }
-ovp->event = lpOverlapped->hEvent;
+
+ovp->async.ops = &commio_async_ops;
+ovp->async.handle = hFile;
+ovp->async.fd = fd;
+ovp->async.type = ASYNC_TYPE_WAIT;
+ovp->async.func = COMM_WaitCommEventService;
+ovp->async.event = lpOverlapped->hEvent;
 ovp->lpOverlapped = lpOverlapped;
-ovp->func = COMM_WaitCommEventService;
 ovp->buffer = (char *)lpdwEvents;
-ovp->fd = fd;
-ovp->count = 0;
-ovp->completion_func = 0;
-ovp->type = ASYNC_TYPE_WAIT;
-ovp->handle = hFile;
-
-ovp->next = NtCurrentTeb()->pending_list;
-ovp->prev = NULL;
-if(ovp->next)
-ovp->next->prev=ovp;
-NtCurrentTeb()->pending_list = ovp;
-
-/* start an ASYNCHRONOUS WaitCommEvent */
-SERVER_START_REQ( register_async )
-{
-req->handle = hFile;
-r

Re: Unicode, i18n support

2002-04-03 Thread Waldek Hebisch

Francois Gouget wrote:
>So if I understand correctly, Linux does not provide a uniform
> interface to the filesystem. I.e. if I do 'touch ~/foo' where foo
> contains weird characters I must make sure these are the right
> characters for the codepage used by ~, and then if I do 'touch
> /mnt/win98/foo', then I must change 'foo' so that its characters now
> match the 1251 codepage, and I may have to rewrite foo yet again for
> 'touch /zipdrive/foo'.
> 
>Urgh. This is certainly ugly. I thought that Linux would be taking
> UTF-8 or something like it for all filesystems and then do the codepage
> conversions itself depending on the underlying filesystem. I thought
> that this was the point of having all the codepage information in the
> kernel for fat filesystems.

Native Unix point of view is that filename is string, and what it 
means depends on userspace programs (presentation). In Linux one 
can easily change encoding used for presentation, in Poland typical 
is ISO8859-2. If user types a name which contains national characters
such name is stored verbatim on disk. If retrived later using different
encoding it may appear garbled. Typical Linux installation will choose 
"preffered" encoding and set up things so that encoding works well. 
In particular codepages in kernel and mount options allows to translate
names on fat filesystem form (to) "preffered" encoding. 

When I wrote about weird setup I mean that technically it is possible 
to use different encodings in different filesystems, and I can imagine
various scenarios that do this (basicaly to work with software that 
insists on specific encoding). 

I belive that UTF-8 is the way to go, but it is still the future --
last year trying to make UTF-8 system I found that I need a bunch of 
programs which cannot work with UTF-8 (they work well with any 8-bit
encoding)


-- 
  Waldek Hebisch
[EMAIL PROTECTED]or [EMAIL PROTECTED] 




RE: IE6ALL.zip

2002-04-03 Thread Richard Vout

I could use this also. Is it likely I will be able to get it to work with
the windows integrated security? I use a proxy server here which is
integrated into a Windows NT Domain. I have managed to get smbclient to map
to drives but I can't join the two.

Personally I'd rather avoid the native DLL's if possible.

Thanks,

Richard.
-Original Message-
From: Sylvain Petreolle [mailto:[EMAIL PROTECTED]]
Sent: 02 April 2002 22:55
To: Lonnie Cumberland; [EMAIL PROTECTED]
Subject: Re: IE6ALL.zip


For me I installed IE6 with a few native DLLs.
But sometimes Web sites are opening into a loop.
They just appear as entirely loaded, but continue to
download things and end with unknown error as said by
IE. Even problems appear in 'About' box...

What do you need IE6 for ?

 --- Lonnie Cumberland <[EMAIL PROTECTED]> a écrit :
> Hello All,
> 
> I have been trying to get the ie6 setup to run but
> keep running into
> many functions that do not seem to be implemented
> yet.
> 
> Has anyone gotten IE6 installed under wine? If so
> then is there some
> where that I can just download the installed
> directories and unpack
> them in my wine-c structure?
> 
> Thanks,
> Lonnie
> 
> -- 
>  Lonnie Cumberland
>  OutStep Technologies Incorporated
>  EMAIL: [EMAIL PROTECTED]
>   : [EMAIL PROTECTED]
> 
>  The Basis Express Virtual Office
>&
>  Data Backup and Recovery Services
> 
>  URL: http://www.basis-express.com
> 
> "The Virtual Office without boundaries!!!"
> 
> 
> 
> 
>  

___
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com