hbirr(a)svn.reactos.org wrote:
> if (!Resource->ActiveCount)
> {
>
>
>- /* Nobody owns it, so let's take control */
>
>
>+ if (Resource->NumberOfSharedWaiters == 0)
>+ {
>+ Owner = &Resource->OwnerThreads[1];
>+ }
>+ else
>+ {
>+ /* Find a free entry */
>+ Owner = ExpFindFreeEntry(Resource, &OldIrql);
>+ if (!Owner) goto TryAcquire;
>+ }
>+
>+ Owner->OwnerThread = Thread;
>+ Owner->OwnerCount = 1;
>
>
> Resource->ActiveCount = 1;
>
>
>- Resource->OwnerThreads[1].OwnerThread = Thread;
>- Resource->OwnerThreads[1].OwnerCount = 1;
>
>
>
> /* Release the lock and return */
> ExReleaseResourceLock(&Resource->SpinLock, OldIrql);
>
>
This change makes no sense. Note that we check for
!Resource->ActiveCount. This, by definition implies that there CANNOT be
any exclusive owner or shared owner. Access to the resource should be
granted instanteously.
Best regards,
Alex Ionescu
Ge van Geldorp wrote:
> AFAIK, it is about storing both a long and a short filename
> for the same
> file in the same directory.
>
> GvG
Do we really need the ability to store short file names?
Can we not just remove that feature entirely?
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
Does it really matter if people enable it or not if we still provide the functionality?
/Johannes Olofsson
> Till: ReactOS Development List <ros-dev(a)reactos.org>
> Rubrik: Re: [ros-dev] Patent on FAT
> Datum: Wed, 11 Jan 2006 14:57:50 -0500
> Hi,
>
> I think we should turn off the 8.3 short filename support by default
> and see what breaks. Providing a option right at the start of 2nd
> stage step "Patented features" using a checkbox to enable it should
> get us around the issue. Its not our problem if someone else enables
> it.
>
> --
> Steven Edwards - ReactOS and Wine developer
>
> "There is one thing stronger than all the armies in the world, and
> that is an idea whose time has come." - Victor Hugo
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> <a
> href=http://www.reactos.org/mailman/listinfo/ros-dev>http://www.reactos.org/
> mailman/listinfo/ros-dev</a>
nitro2k01 wrote:
> I haven't seen the patant documents, but doesn't this mean that any
> file system which stores both long and short file names on the same
> volume would be theoreticlly affected?
>
No. Long files names were incorporated into unix systems long before the
days FAT, or even DOS.
This patent (if correct) is linked to FAT only.
If is true, it would effect many things, but I can't see Microsoft enforcing
it, it would alienate themselves.
Just the fact that it is there is a problem for ReactOS though, even if they
don't do anything about it.
I haven't been able to find a copy of the patent yet. AFAIK, it was only
released today.
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
I've seen this bugcheck several times debugging various things. At
the moment, it reproducible following the steps in the bug. This has
been around for a while and it aid me greatly to have it fixed.
http://www.reactos.org/bugzilla/show_bug.cgi?id=1263
WD
--
<Alex_Ionescu> it's like saying let's rename Ke to Kernel because
people think it's Ketchup
Murphy, Ged (Bolton) wrote:
>
> I'm reading reports of a US patent on FAT.
>
Link:
http://news.com.com/Microsofts+file+system+patent+upheld/2100-1012_3-6025447
.html?part=rss&tag=6025447&subj=news
************************************************************************
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
gedmurphy(a)svn.reactos.org wrote:
> + case NM_RCLICK:
you should use WM_CONTEXTMENU instead so the menus are also accessible
by using the keyboard.
- Thomas
I'd quite like to see the blog page integrated into the site and made to
look pretty.
I also think it might entice devs to start using the thing. At the moment
there is only about 4 people listed, and of those only Alex every actually
uses it.
Would developers make an effort to start blogging if it was 'spruced up'
and integrated?
If not, I think it should be removed as it looks a bit pitiful as it is and
gives the impression not much is going on (which is obviously not the case)
It doesn't always have to be development related stuff in there. Anything
interesting draws a crowd.
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
I would have to agree with this.
ReactOS.Bugzilla(a)reactos.org wrote:
>http://www.reactos.org/bugzilla/show_bug.cgi?id=1264
>
>
>
>
>
>------- Additional Comments From gvg(a)reactos.org 2006-01-10 19:07 CET -------
>I'd prefer something along the lines of:
>
>FooBarFast:
> non-486 implementation
>
>FooBar486:
> 486 implementation
>
>FooBarInit:
> Store either FooBarFast or FooBar486 in FooBarPtr
>
>FooBarPtr:
> .long FooBarInit
>
> .global ExfFooBar
>ExfFooBar:
> jmp [FooBarPtr]
>
>No self modifying code, at the expense of an indirect jump
>
>
>
I was just taking a look at some ReactOS code this evening and it got
me thinking about what our general strategy for handling invalid
parameters is.
For example, in kernel32.dll there is a function DebugBreakProcess.
This function takes one parameter, a process handle.
This parameter is passed through the following list of functions
unchecked by any of them, until the final one will return a failure...
DebugBreakProcess
DbgUiIssueRemoteBreakIn
RtlCreateUserThread
RtlpCreateUserStack
ZwAllocateVirtualMemory
ObReferenceObjectByHandle
Now I know this isn't a security vulnerability, which is what I was
originally looking for, but it did make me think of the question of
where should bounds checking be added?
In this example, the process handle must be a value greater than zero.
Should this simple check be added to DebugBreakProcess, or all of the
above? Is there some sort of standard that everyone should work to?
e.g. should all functions check their own parameters. Sure it might
make it a little slower due to multiple checks but it would make
ReactOS very robust.
Any thoughts on this?
Martin
PS: Lack of activity recently had been due to uni. exams.
hbirr(a)svn.reactos.org wrote:
>
>- Defined KeIpiGenericCall. It is necessary for the smp build.
>
Hi,
It should be in the w32api DDK, not in the interal headers. Sorry for
removing it if this broke the build, I didn't notice on UP.
Best regards,
Alex Ionescu
It seems the old binutils versions don't have a problem with "cmpxchg8b" but
with "qword ptr". The patch below makes the code compile on older versions
again. Any objections to committing it?
I've created a bug 1264 for keeping track of the "no longer works on i486"
issue.
GvG
Index: ntoskrnl/ex/i386/fastinterlck_asm.S
===================================================================
--- ntoskrnl/ex/i386/fastinterlck_asm.S (revision 20747)
+++ ntoskrnl/ex/i386/fastinterlck_asm.S (working copy)
@@ -405,7 +405,7 @@
/* Get next pointer and do the exchange */
mov ebx, [eax]
- LOCK cmpxchg8b qword ptr [ebp]
+ LOCK cmpxchg8b [ebp]
jnz 1b
/* Restore registers and return */
@@ -449,7 +449,7 @@
lea ecx, [edx+0x10001]
/* Do the exchange */
- LOCK cmpxchg8b qword ptr [ebp]
+ LOCK cmpxchg8b [ebp]
jnz 1b
/* Restore registers and return */
@@ -489,7 +489,7 @@
mov cx, bx
/* Do the exchange */
- LOCK cmpxchg8b qword ptr [ebp]
+ LOCK cmpxchg8b [ebp]
jnz 1b
/* Restore registers and return */
@@ -623,7 +623,7 @@
mov edx, [edx+4]
/* Do the op */
- LOCK cmpxchg8b qword ptr [ebp]
+ LOCK cmpxchg8b [ebp]
/* Restore volatiles */
pop ebp
@@ -655,7 +655,7 @@
mov edx, [edx+4]
/* Do the op */
- LOCK cmpxchg8b qword ptr [ebp]
+ LOCK cmpxchg8b [ebp]
/* Restore volatiles */
pop ebp
ion(a)svn.reactos.org wrote:
> - Fix shamefully dangerously broken Work Thread/Queue/Item implementation:
> * Do not pollute the kernel with 10 real-time threads and 5 high-priority threads in order to manage work items. Work threads are very-low priority (< 7) and should never pre-empt userthreads like they do now. 1 priority 7, 5 priority 5 and 3 priority 4 threads are now properly created.
> * Implement a worker thread balance set manager. On SMP systems, it is able to determine when a new thread should be allocate to execute on a free CPU. On both UP and MP, it is also able to detect if a work queue has deadlocked, and will allocate new dynamic threads to unfreeze the queue.
> * Add check for threads returning with APC disabled, and re-enable APCs if this happend. This hack is used in NT for broken drivers.
> * Lots of code changes to support dynamic threads, which:
> - Can terminate.
> - Use a 10 minute timeout on the kernel queue.
> * Add skeleton code for swapping worker thread stacks as well as worker thread shutdown (not yet implemented).
> * Add WORKER_INVALID bugcheck definition.
> * These changes seem to make ROS a lot more responsive.
>
> - NDK:
> * Make more compatible with MS IFS
> * Fix EX_WORK_QUEUE definition.
> * Fix ETHREAD offsets.
> * Fix RtlIsNameLegalDOS8Dot3 definition.
> * Move splay tree defines to IFS.
>
>
> Updated files:
> trunk/reactos/include/ndk/exfuncs.h
> trunk/reactos/include/ndk/extypes.h
> trunk/reactos/include/ndk/ifssupp.h
> trunk/reactos/include/ndk/iofuncs.h
> trunk/reactos/include/ndk/obfuncs.h
> trunk/reactos/include/ndk/pstypes.h
> trunk/reactos/include/ndk/rtlfuncs.h
> trunk/reactos/include/ndk/rtltypes.h
> trunk/reactos/lib/rtl/dos8dot3.c
> trunk/reactos/ntoskrnl/ex/work.c
> trunk/reactos/ntoskrnl/ntoskrnl.mc
> trunk/reactos/w32api/include/ddk/ntifs.h
>
> _______________________________________________
> Ros-svn mailing list
> Ros-svn(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-svn
>
>
After applying this commit, I get a crash during compiling ros on ros
with 'make clean' on a clean tree on my smp machine:
Assertion (Thread->State == Waiting) == (Thread->WaitBlockList != NULL)
failed at ./ntoskrnl/ke/wait.c:722
I don't get a back trace. It may be a problem of the broken ASSERT
statement (DBG=1 and KDBG=0).
- Hartmut
Why is the ReactOS version of wininet out of sync with Wine?
There have been a ton of fixes going into Wine in recent months that
unfortunately ReactOS is missing out on.
--
Rob Shearman
On 08.01.2006 11:23:52 ion(a)svn.reactos.org wrote:
> - userinit, usetup, vmwinst, welcome, winefile, winlogon, winver.
> Updated files:
...
> trunk/reactos/subsys/system/winefile/winefile.c
May I ask what this changes should be for?
Adding "__cdecl" attributes doesn't make much sense for me.
And winefile compiles without problems on MSVC since ages.
Regards,
Martin
cwittich(a)svn.reactos.org wrote:
> - GetFileTitle(szFileName, Globals.szFileTitle, sizeof(Globals.szFileTitle));
>
> + GetFileTitle(szFileName, Globals.szFileTitle, wcslen(Globals.szFileTitle));
This change is wrong, sizeof(Globals.szFileTitle) is correct. The last
parameter is the size of the buffer the second parameter represents.
- Thomas
cwittich(a)svn.reactos.org wrote:
> + Data = (TCHAR*) HeapAlloc(GetProcessHeap(), 0, MAX_VALUE_NAME);
It should be MAX_VALUE_NAME * sizeof(TCHAR)
- Thomas
Royce Mitchell III wrote
> How are you source-level debugging ros?
Probably using Insight, that's what I use when building with mingw.
I don't know assembly well enough to even consider it.
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
I just got this error when trying to compile reactos:
> reub2000@reub2000 ~/reactos $ svn up && make clean && make
> At revision 20661.
> [CC] tools/rbuild/backend/msvc/vcprojmaker.cpp
> [CC] tools/rbuild/module.cpp
> [LD] output-i386/tools/rbuild/rbuild
> [NCI] ntoskrnl/include/internal/napi.h
> make: *** No rule to make target `drivers/net/npf/npf.xml', needed by
> `makefile.auto'. Stop.
>+ case CB_LIMITTEXT:
>+ if( lphc->wState & CBF_EDIT )
>+ return SendMessageW(lphc->hWndEdit, EM_LIMITTEXT, wParam, lParam);
>
>
<- "break;" statement is missing here and the indentation is fscked up.
- Filip
Hi Alex,
ion(a)svn.reactos.org wrote:
> - Get portcls to compile.
> trunk/reactos/drivers/multimedia/portcls/portcls.c
> trunk/reactos/drivers/multimedia/portcls/portcls.h
Was OSR wrong? Wow! 8^o
Thanks,
James
Hi all,
Most common, when exiting a app by clicking the "X" in the upper right corner,
(./subsys/win32k/objects/gdiobj.c:591) Attempted to free global gdi handle 0xe04
04b4, caller needs to get ownership first!!!
(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/comctl32/toolbar.c:417) bitmap for ID 0, index 0 is not valid, number of bi
tmaps in imagelist: -2
(./ntoskrnl/ke/queue.c:420) Unwaiting Thread: 5
(lib/rtl/exception.c:75) RtlRaiseStatus(Status 0xc0000005)
(./subsys/win32k/ntuser/message.c:1121) Failed to copy message to kernel: invali
d usermode buffer
C0000005 is an Access error, due to MmCopyToCaller being called inside kernel space
when copying one object to another with in kernel space, sometimes but it is common.
In win32k/ntuser/message.c there is and it's my best guess,
Status = MmCopyFromCaller(KernelMem, (PVOID) UserModeMsg->lParam, Size);
at line ~1118, in function CopyMsgToKernelMem. If that function is used to copy data
inside kernel space it will through and exception.
This one is from OpenOffice, Some where in kernel32.dll.
(lib/rtl/exception.c:29) RtlRaiseException(Status 0054f404)
(lib/rtl/exception.c:36) ExceptionAddress 7c801217
(./ntoskrnl/ke/exception.c:94) KiRaiseException
(lib/rtl/exception.c:29) RtlRaiseException(Status 0054f41c)
(lib/rtl/exception.c:36) ExceptionAddress 7c801217
(./ntoskrnl/ke/exception.c:94) KiRaiseException
0 bytes requested - initiating pool verification
0 bytes requested - initiating pool verification
Sorry I haven't looked at this one yet, I just started!
8^>
James