I think our problem is because we are using GAS and NASM to assemble
the various assembly files. Oughtn't we standardise on NASM? Why not?
--
http://www.munted.org.uk
Anyone that thinks an imaginary deity is going to protect them against
earthquakes and hurricanes needs psychiatric help.
This should really be
while( GetMessage( &msg, NULL, 0, 0 ) > 0 )
as GetMessage returns <0 on failure.
It will then break on failure or WM_QUIT
Just being anal though as GetMessage should never really fail ;)
-----Original Message-----
From: mbosma(a)svn.reactos.org [mailto:mbosma@svn.reactos.org]
Sent: 03 January 2006 11:50
To: ros-diffs(a)reactos.org
Subject: [ros-diffs] [mbosma] 20543: fix typos.
+ while(GetMessage(&msg,NULL,0,0))
************************************************************************
The information contained in this message or any of its
attachments is confidential and is intended for the exclusive
use of the addressee. The information may also be legally
privileged. The views expressed may not be company policy,
but the personal views of the originator. If you are not the
addressee, any disclosure, reproduction, distribution or other
dissemination or use of this communication is strictly prohibited.
If you have received this message in error, please contact
postmaster(a)exideuk.co.uk
<mailto:postmaster@exideuk.co.uk> and then delete this message.
Exide Technologies is an industrial and transportation battery
producer and recycler with operations in 89 countries.
Further information can be found at www.exide.com
Thomas Weidenmueller wrote
> Murphy, Ged (Bolton) wrote:
> > This should really be
> >
> > while( GetMessage( &msg, NULL, 0, 0 ) > 0 )
> >
> > as GetMessage returns <0 on failure.
> > It will then break on failure or WM_QUIT
> >
> > Just being anal though as GetMessage should never really fail ;)
>
> See
> http://msdn.microsoft.com/library/default.asp?url=/library/en-
> us/winui/WinUI/WindowsUserInterface/Windowing/MessagesandMessa
> geQueues/MessagesandMessageQueuesReference/MessagesandMessageQ
> ueuesFunctions/GetMessage.asp
>
> The loop shouldn't be broken if GetMessage returns -1.
>
> - Thomas
True, I suppose it depends on the reasoning behind the GetMessage error.
MSDN does have this to say:
"Warning
Because the return value can be nonzero, zero, or -1, avoid code like this:
while (GetMessage( lpMsg, hWnd, 0, 0)) ..."
For a bit of light hearted fun, here is the MSDN suggestion:
while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
which, IIRC (I don't have a compiler to hand) would throw up 'assignment in
expression' errors with our MSVC /w4 setting. We would therefore need
something like :
bRet = GetMessage( &msg, NULL, 0, 0 );
while( bRet != 0 )
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
bRet = GetMessage( &msg, NULL, 0, 0 );
}
Which has suddenly become rather long for a normally simple message loop
routine ..... LOL
A nice case for a #pragma warning() ..... or reduce the warning level for
non core components (ping)
Ged
************************************************************************
The information contained in this message or any of its
attachments is confidential and is intended for the exclusive
use of the addressee. The information may also be legally
privileged. The views expressed may not be company policy,
but the personal views of the originator. If you are not the
addressee, any disclosure, reproduction, distribution or other
dissemination or use of this communication is strictly prohibited.
If you have received this message in error, please contact
postmaster(a)exideuk.co.uk
<mailto:postmaster@exideuk.co.uk> and then delete this message.
Exide Technologies is an industrial and transportation battery
producer and recycler with operations in 89 countries.
Further information can be found at www.exide.com
hbirr(a)svn.reactos.org wrote:
>Simplified the definition of the interrupt handlers for non smp machines.
>
>
>
>Updated files:
>trunk/reactos/ntoskrnl/ke/i386/irqhand.s
>
>
>
>
GMTA :)
Best regards,
Alex Ionescu
I thought that it was agreed that the minimum version of binutils would
be at least 2.15.90.0.2? The fix for this requires a newer version?
make[1]: Entering directory `/home/alex/src/OpSys/reactos'
[GAS] ntoskrnl/ex/i386/interlck_asm.S
ntoskrnl/ex/i386/interlck_asm.S: Assembler messages:
ntoskrnl/ex/i386/interlck_asm.S:440: Error: Unrecognized token `|0x4000'
ntoskrnl/ex/i386/interlck_asm.S:459: Error: Unrecognized token `|
0x4000)' ntoskrnl/ex/i386/interlck_asm.S:459: Error: Unexpected token `'
ntoskrnl/ex/i386/interlck_asm.S:508: Error: Unrecognized token `|
0x4000)'
ntoskrnl/ex/i386/interlck_asm.S:508: Error: Unexpected token `'
ntoskrnl/ex/i386/interlck_asm.S:527: Error: Unrecognized token `|
0x4000)'
ntoskrnl/ex/i386/interlck_asm.S:527: Error: Unexpected token `'
make[1]: *** [obj-i386/ntoskrnl/ex/i386/interlck_asm.o] Error 1
--
http://www.munted.org.uk
Anyone that thinks an imaginary deity is going to protect them against
earthquakes and hurricanes needs psychiatric help.
[GAS] ntoskrnl/ex/i386/fastinterlck_asm.S
ntoskrnl/ex/i386/fastinterlck_asm.S: Assembler messages:
ntoskrnl/ex/i386/fastinterlck_asm.S:408: Error: suffix or operands
invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:452: Error:
suffix or operands invalid for `cmpxchg8b'
ntoskrnl/ex/i386/fastinterlck_asm.S:492: Error: suffix or operands
invalid for `cmpxchg8b' ntoskrnl/ex/i386/fastinterlck_asm.S:626: Error:
suffix or operands invalid for `cmpxchg8b'
ntoskrnl/ex/i386/fastinterlck_asm.S:658: Error: suffix or operands
invalid for `cmpxchg8b' make[1]: ***
[obj-i386/ntoskrnl/ex/i386/fastinterlck_asm.o] Error 1
--
http://www.munted.org.uk
Anyone that thinks an imaginary deity is going to protect them against
earthquakes and hurricanes needs psychiatric help.
Happy New Year to you all!
2005 was a great year for ReactOS. The core ReactOS code base is now
120MB large. The repository is currently 624MB large and contains
~20500 revisions. ~8000 of these revisions were created in 2005. This
mean 39% of the total number of revisions created during ReactOS'
entire 8 year history was created in 2005!
I'm positive that we will see similar growth (if not more) in 2006.
Keep up the good work!
Best regards,
Casper
Hi,
Can anyone test revision 20525 and select more than one drive and select Tile.
After multiple time selecting cascade and tile it becomes lost!
Thanks,
James
Debug info,
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(./subsys/win32k/ntuser/timer.c:157) Unable to locate timer in message queue
(./subsys/win32k/ntuser/timer.c:92) Invalid window handle
MDITile
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(./subsys/win32k/ntuser/timer.c:157) Unable to locate timer in message queue
(./subsys/win32k/ntuser/timer.c:92) Invalid window handle
MDICascade
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(./subsys/win32k/ntuser/timer.c:157) Unable to locate timer in message queue
(./subsys/win32k/ntuser/timer.c:92) Invalid window handle
(./subsys/win32k/ntuser/timer.c:157) Unable to locate timer in message queue
(./subsys/win32k/ntuser/timer.c:92) Invalid window handle
(./subsys/win32k/ntuser/timer.c:157) Unable to locate timer in message queue
(./subsys/win32k/ntuser/timer.c:92) Invalid window handle
MDITile
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
When I try to link advapi32 with two widl-generated files (scm_client
and eventlog_client) I get conflict:
[LD] output-i386\lib\advapi32\advapi32.dll
obj-i386\include\idl\svcctl_c.o: In function `ScmrCloseServiceHandle':
D:/trunk/reactos/obj-i386/include/idl/svcctl_c.c:87: multiple definition
of `__MIDL_ProcFormatString'
obj-i386\include\idl\eventlogrpc_c.o:D:/trunk/reactos/obj-i386/include/idl/eventlogrpc_c.c:87:
first defined here
obj-i386\include\idl\svcctl_c.o: In function `ScmrLockServiceDatabase':
D:/trunk/reactos/obj-i386/include/idl/svcctl_c.c:245: multiple
definition of `__MIDL_TypeFormatString'
obj-i386\include\idl\eventlogrpc_c.o:D:/trunk/reactos/obj-i386/include/idl/eventlogrpc_c.c:182:
first defined here
collect2: ld returned 1 exit status
make: *** [output-i386\lib\advapi32\advapi32.dll] Error 1
How to solve this?
> From: ekohl(a)svn.reactos.org
>
> - Service list entries use a pointer to a group list entry
> instead of the goup name.
> - New group list entries are created in the
> unknown-group-list for services of unknown groups.
I'm seeing some crashes now because the lpGroup->lpService pointer is NULL.
Patch below seems to fix it, but I have no idea if it's the correct fix.
GvG
Index: subsys/system/services/rpcserver.c
===================================================================
--- subsys/system/services/rpcserver.c (revision 20508)
+++ subsys/system/services/rpcserver.c (working copy)
@@ -927,7 +927,7 @@
if (lpdwTagId != NULL)
{
- dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
+ dwError = ScmAssignNewTag(lpLoadOrderGroup,
&lpService->dwTag);
if (dwError != ERROR_SUCCESS)
goto done;
@@ -1161,7 +1161,7 @@
if (lpdwTagId != NULL)
{
- dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
+ dwError = ScmAssignNewTag(lpLoadOrderGroup,
&lpService->dwTag);
if (dwError != ERROR_SUCCESS)
goto done;