Hi,
Most of the developers I've talked to (including myself) want to get rid
of the /nt directory, since it is architecturally incorrect and should
instead be migrated into other parts of the kernel. Since the nt
functions that were in the directory were part of the Executive (note
the ExXXXObjectType), I've placed the functions in \ex, and renamed all
Ntp stuff by Exp, with the exception of some LPC stuff which I've
renamed from Ni to Lpcp. profiles were harder, since both the Executive
and Kernel parts were in the nt file (actually we're not implementing
the Executive part properly imo, we don't even have EPROFILE, but that's
another story). Anyways, attached is the patch so you can see what was
changed and where it was displaced. I don't think anyone wants to keep
the /nt directory, based on previous discussions, but I want to make
sure people will be aware of it.
Best regards,
Alex Ionescu
Hello,
I got this while compiling svn tree with DBG=1, gcc-3.4.1 :
mingw32-gcc -Wall -Werror -D__USE_W32API -I. -I../../../include
-I../../../w32api/include -pipe -march=i486 -D_M_IX86 -g -c tickcount.c
-o tickcount.o
tickcount.c: In function `parse_print':
tickcount.c:143: warning: implicit declaration of function `_ttoi64'
Thanks, David
I installed the SVN and could make it work, i
downloaded MinGW-3.1.0-1.exe ,gcc-core 3.3.3 , gcc-g++
3.3.3 and nasm-0.98-win32.zip Installed them and set
the path.
i tried to build ReactOs (at the reactos folder) with
make (I did previously a make clean)
And i get the following error:
-----------------------------------------------
...win32k: [DLLTOOL] libwin32k.a
win32csr: [DLLTOOL] libwin32csr.a
notifyhook: [DLLTOOL] libnotifyhook.a
regtests: [DLLTOOL] libregtests.a
=====================================================
Compiling deptool
=====================================================
Compiling bin2c
Tools are up to date.
Tools are up to date.
=====================================================
Assembling dosmbr
=====================================================
Assembling fat
=====================================================
Assembling fat32
=====================================================
Assembling isoboot
=====================================================
Assembling ext2
=====================================================
Assembling arch/i386/fathe
lp
=====================================================
Assembling arch/i386/arch
=====================================================
Assembling arch/i386/i386i
dt
=====================================================
Assembling arch/i386/i386t
rap
=====================================================
Assembling arch/i386/i386c
pu
=====================================================
Assembling arch/i386/i386p
np
=====================================================
Assembling arch/i386/boot
=====================================================
Assembling arch/i386/linux
=====================================================
Assembling arch/i386/mb
=====================================================
Compiling arch/i386/i386rt
l
cc1.exe: unrecognized option
`-fno-zero-initialized-in-bss'
make[2]: *** [arch/i386/i386rtl.o] Error 1
make[1]: *** [all] Error 2
make: *** [freeldr] Error 2
C:\Internet\ReactOS\Subersion\trunk\reactos>
------------------------------------------------
Nevertheless i try to make install and get the
following error:
---------------------------------------
expat: [OBJDUMP] expat.map
expat: [LD] expat.dll
expat.dll was successfully built.
expat: [INSTALL] expat.dll to system32/expat.dll
fmifs: [DEPENDS] .media.d
fmifs: [DEPENDS] .label.d
fmifs: [DEPENDS] .init.d
fmifs: [DEPENDS] .format.d
fmifs: [DEPENDS] .extend.d
fmifs: [DEPENDS] .diskcopy.d
fmifs: [DEPENDS] .compress.d
fmifs: [DEPENDS] .chkdsk.d
fmifs: [RC] fmifs.rc
fmifs: [CC] chkdsk.c
fmifs: [CC] compress.c
fmifs: [CC] diskcopy.c
fmifs: [CC] extend.c
fmifs: [CC] format.c
fmifs: [CC] init.c
fmifs: [CC] label.c
fmifs: [CC] media.c
fmifs: [AR] fmifs.a
make[1]: *** No rule to make target
`../../dk/w32/lib/libvfatlib.a', needed by `
fmifs.nostrip.dll'. Stop.
make: *** [fmifs_install] Error 2
C:\Internet\ReactOS\Subersion\trunk\reactos>
---------------------------------------------------
I dont know what i am making wrong, any idea?
Thanks in advance and my best wishes for 2005.
______________________________________________
Renovamos el Correo Yahoo!: ¡250 MB GRATIS!
Nuevos servicios, más seguridad
http://correo.yahoo.es
The attached patch fixes "warnings + -Werror = not compile" for
rosapps/tests/tokentest/tokentest.c
tokentest.c: In function `CreateInitialSystemToken':
tokentest.c:359: warning: braces around scalar initializer
tokentest.c:359: warning: (near initialization for `authId.LowPart')
tokentest.c:359: warning: excess elements in scalar initializer
tokentest.c:359: warning: (near initialization for `authId.LowPart')
I think SYSTEM_LUID and similar macros for initial values are intended
as initializers of LUID variables, not LARGE_INTEGER ones.
I've posted this (and not commited it myself) because I can be missing
something important. Is there other issue with LUID <-> LARGE_INTEGER ?
<#secure method=pgpmime mode=sign>
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>
Alex Ionescu wrote:
> >
> > Well, yes, win32. I've been setup before, but I haven't
> > kept up with the tool chain.
> >
> > Do we still need the djcc stuff for building freeloader?
> >
> > What would be really cool was an MSI that would get me
> > a complete 'ReactoOS' build environment in one simple
> > step. Maybe I'll look into it.
>
> I'm currently working on this exact project!
I'm a newbie. I'm looking for it. Can you tell me something about it?? Thanks.
yang
___________________
Come from China
ion(a)svn.reactos.com wrote:
> + DPRINT("Waiting on Critical Section: %x\n", CriticalSection);
> + if (CriticalSection->DebugInfo) CriticalSection->DebugInfo->EntryCount++;
I'm just reading the diffs here, so I could be way
off, but shouldn't this use an InterlockedIncrement...
otherwise you could get a context switch between
in the middle of your increment to another threading
attempting to lock the critical section. It is just
debug information, but still...
Also, looking at the rest of the code, I notice that
spin count doesn't appear to be implemented.
I don't have a build environment even setup, so
take the attached patch with a grain of salt.
The changes in RtlpCreateCriticalSEctionSem()
are because the InterlockCompareExchangePointer()
should already have written the new event into
the data structure.
Maybe on day I'll manage to get my build environment
setup again.
- Joseph
Index: C:/Users/galb/ReactOS/reactos/lib/ntdll/rtl/critical.c
===================================================================
--- C:/Users/galb/ReactOS/reactos/lib/ntdll/rtl/critical.c (revision 12774)
+++ C:/Users/galb/ReactOS/reactos/lib/ntdll/rtl/critical.c (working copy)
@@ -133,7 +133,17 @@
{
HANDLE Thread = (HANDLE)NtCurrentTeb()->Cid.UniqueThread;
- /* Try to Lock it */
+ /* Try for SpinCount times to Lock it */
+ for(LONG i = 0; i < CriticalSection->SpinCount; i++)
+ {
+ if ( RtlTryEnterCriticalSection(CriticalSection) )
+ return STATUS_SUCCESS;
+ }
+
+ /*
+ * Still didn't get it; we have to bump the LockCount, which
+ * might get it for us, and then wait
+ */
if (InterlockedIncrement(&CriticalSection->LockCount)) {
/*
@@ -398,12 +408,12 @@
/* Increase the Debug Entry count */
DPRINT("Waiting on Critical Section: %x\n", CriticalSection);
- if (CriticalSection->DebugInfo)
CriticalSection->DebugInfo->EntryCount++;
+ if (CriticalSection->DebugInfo)
InterlockedIncrement(&CriticalSection->DebugInfo->EntryCount);
for (;;) {
/* Increase the number of times we've had contention */
- if (CriticalSection->DebugInfo)
CriticalSection->DebugInfo->ContentionCount++;
+ if (CriticalSection->DebugInfo)
InterlockedIncrement(&CriticalSection->DebugInfo->ContentionCount);
/* Wait on the Event */
DPRINT("Waiting on Event: %x\n", CriticalSection->LockSemaphore);
@@ -523,21 +533,14 @@
return;
}
- if (!(hEvent =
InterlockedCompareExchangePointer((PVOID*)&CriticalSection->LockSemaphore,
- (PVOID)hNewEvent,
- 0))) {
-
- /* We created a new event succesffuly */
- hEvent = hNewEvent;
- } else {
-
- /* Some just created an event */
- DPRINT("Closing already created event!\n");
- NtClose(hNewEvent);
+
+ if (
InterlockedCompareExchangePointer((PVOID*)&CriticalSection->LockSemaphore,
+ (PVOID)hNewEvent,
+ 0)) != 0) {
+ /* Someone else just created the event */
+ NtClose(hNewEvent);
}
-
- /* Set either the new or the old */
- CriticalSection->LockSemaphore = hEvent;
+
DPRINT("Event set!\n");
}
Hi,
Attached is a patch with uses the proper PSID/PISID types. Also, I've
noticed that we currently have duplicated code between /lib/rtl and
/ntoskrnl/se. The removals are also in this patch. Is it OK to remove
them, or is there some reason they must be duplicated?
Best regards,
Alex Ionescu
Hi
I am a new comer.
I began to read codes a few days ago, now I installed reactos 0.2.4 in vmware, but it can't do any thing even if I want to copy a file(both command line and GUI), when I do this in GUI, it show me a blue face or do nothing. what do you make up your reactos develop system? It means read, edit, and compile code in reactos. I was on win 32, which emulater is better to run reactos on it? any idea would be appreciated.
Hi,
I've add the following line to my test driver:
extern __attribute__((dllimport)) POBJECT_TYPE* ExEventObjectType;
DbgPrint("%x %x %x %x\n",
ExEventObjectType,
*(PULONG)ExEventObjectType,
MmGetSystemRoutineAddress(&NameU),
*(PULONG)MmGetSystemRoutineAddress(&NameU));
Running on W2K, I get this result:
GCC: 81ebd540 81ebd440 8047a888 81ebd540
MSVC: 8047a888 81ebd540 8047a888 81ebd540
Running on ROS:
GCC: c0692ef8 54545645 c00e0760 c0692ef8
MSVC: c00e0760 c0692ef8 c00e0760 c0692ef8
It seems that GCC and MSVC does handle imported data symbols different.
In MSVC is an imported data symbol a pointer to the variable and in GCC
the value of the variable.
- Hartmut