oripipa wrote:
>IS this correct? interpreting a shared cursos should never be
destroyed?
No. But then shared resources are not yet implemented (at least wasn't
last I checked) why this code wasn't too incorrect. Your change most
certainly is not right, as it'd make the code never remove anything
from the list.
Current code removes the process-owned icons (from the list) when the
process terminates. Is this case really properly locked? I don't know.
More research is needed for shared resources.
--
Mike
On Jan 2, 2008, at 8:26 AM, zguo(a)svn.reactos.org wrote:
> Author: zguo
> Date: Wed Jan 2 08:26:00 2008
> New Revision: 31552
>
> +* Before calling this function please set the
> puCanCreateSurfaceData->ddRVal to an error value such as
> DDERR_NOTUSPORTED,
> +* The Function NtGdiD3dContextDestroy destorys the context data we
> got from NtGdiD3dContextCreate
Editing Magnus' text leads to a temporary syndrome of an obtained
greatlordia (light form, fortunately) ;)
WBR,
Aleksey Bragin.
Greetings,
I would like to formerly invite the ReactOS project to participate in the 6th Annual Southern California Linux Expo. The show will be taking place February 8th - 10th, 2008 in Los Angeles, CA conveniently located near the LAX airport.
ReactOS had a presence at SCALE 5x, Alex Ionescu and a few community members showed off ReactOS and answered questions from attendees. It would be great having ReactOS at the show again for 2008.
Because ReactOS is a dotORG organization, we would provide a complementary booth including all amenities such as electricity, Internet access, etc. We would also provide 3 complementary passes to the show for those people interested in representing ReactOS.
If this sounds like something that someone from the ReactOS project might be interested in, I encourage you to fill out our dotORG Exhibitor Application which can be found here, http://www.socallinuxexpo.org/scale6x/conference-info/calls-for-papers/call…
Any questions, please do not hesitate to ask.
Thank you and Happy Holidays!
Gareth
--
Gareth J. Greenaway <g(a)socallinuxexpo.org>
Voice - 877-831-2569 x130
Southern California Linux Expo
http://www.socallinuxexpo.org
Hi,
it's 2 hours before the new year comes here, and I take this chance
to wish our developers, testers, supporters, helpers, and everyone
else a good, happy and lucky new year!
It's been (and it still is!) a pleasure to work with you all (during
all years, even if there were troubles), a lot of progress has been
done. Everyone worked as hard as he was able to, and results are
truly fantastic. I appreciate that a lot, and the new, coming year is
going to be even more interesting!
Happy New Year!
With the best regards,
Aleksey Bragin.
Hi I been working on dxg.sys some time now and documented some behovir,
I started blackbox how DxLock work. it is base on gdi how thing it work, using
same GDIOBJHDR struct. I do not go into detail here we all known who dx is handle in win32k
in xp and higher.
here is the public header of GDIOBJHDR
typedef struct _GDIOBJHDR
{
HGDIOBJ hHmgr;
PVOID unknownCount;
ULONG cExcLock;
ULONG Tid;
}GDIOBJHDR, PGDIOBJHDR;
I want change it to
typedef struct _GDIOBJHDR
{
HGDIOBJ hHmgr;
WORD Count;
WORD Type;
ULONG cExcLock;
ULONG Tid;
}GDIOBJHDR, PGDIOBJHDR;
hHmgr
Handle for this object.
Count
A counter of a kind
Type
which GDI Object type it is
cExcLock
if the object is lock or not
Tid
The Thread it belong to
I hope we can do this change and I want comment and verify from Timo and Jim about this change
IS this correct? interpreting a shared cursos should never be destroyed?
IntDestroyCurIconObject(PWINSTATION_OBJECT WinSta, PCURICON_OBJECT
CurIcon, BOOL ProcessCleanup)
{
PSYSTEM_CURSORINFO CurInfo;
HBITMAP bmpMask, bmpColor;
BOOLEAN Ret;
PCURICON_PROCESS Current = NULL;
PW32PROCESS W32Process = PsGetCurrentProcessWin32Process();
/* Private objects can only be destroyed by their own process */
if (NULL == CurIcon->hModule)
{
ASSERT(CurIcon->ProcessList.Flink->Flink == &CurIcon->ProcessList);
Current = CONTAINING_RECORD(CurIcon->ProcessList.Flink,
CURICON_PROCESS, ListEntry);
if (Current->Process != W32Process)
{
DPRINT1("Trying to destroy private icon/cursor of another
process\n");
return FALSE;
}
}
*--> else if (TRUE/*! ProcessCleanup*/)
{
DPRINT("Trying to destroy shared icon/cursor\n");
return FALSE;
}
______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
On 30-Dec-07, at 6:12 PM, greatlrd(a)svn.reactos.org wrote:
>
> + pSurfacelcl = (PDD_SURFACE_LOCAL)(((PBYTE)&pSurfacelcl) +
> sizeof(DD_BASEOBJECT));
>
This code makes absolutely no sense. You do realize you're returning
a stack address, right?
Best regards,
Alex Ionescu
Hi,
the only critical blocker left on the release is the keyboard/mouse
detection problem in qemu. There are a couple of other major issues
related to the installation in qemu, but if they aren't solved by
january, I'm ok to release with them.
LiveCD is going to be partly broken too, because hardly any
application starts in it, but I don't have time to fix this issue (if
anyone volunteers - feel free to).
The CursorIcon problem would be fun to have solved too (hint:
janderwald & shell32).
With the best regards,
Aleksey Bragin.
Maybe let's postpone mc translations to further releases (like 0.4)?
WBR,
Aleksey Bragin.
On Dec 24, 2007, at 5:21 AM, Timo Kreuzer wrote:
> I have just compiled kernel32 with 2 different .mcs in the rbuild file
> and it compiles without problems.
> The resources shown by PE explorer were as expected the German ones
> (2nd
> mc file)
> It also created 2 headers.
> A slight change to the rbuild syntax could fix that problem:
>
> <file locale="en-US">lang/errcodes-en-US.mc</file>
> <file locale="de-DE">lang/errcodes-de-DE.mc</file>
> <mcheader target="include/psdk/errcodes.h>msg-en-US.mc</file>
>
> I had to manually add the #include to the rc file. This job should
> also
> be done by rbuild.
> rbuild should create the rsrc.rc in the intermediate dir and
> include all
> locaized rcs and precompiled mcs for the languages
> that are to be compiled. IIRC this feature is already in the rbuild
> branch.
>
> Greeting,
> Timo
I have just compiled kernel32 with 2 different .mcs in the rbuild file
and it compiles without problems.
The resources shown by PE explorer were as expected the German ones (2nd
mc file)
It also created 2 headers.
A slight change to the rbuild syntax could fix that problem:
<file locale="en-US">lang/errcodes-en-US.mc</file>
<file locale="de-DE">lang/errcodes-de-DE.mc</file>
<mcheader target="include/psdk/errcodes.h>msg-en-US.mc</file>
I had to manually add the #include to the rc file. This job should also
be done by rbuild.
rbuild should create the rsrc.rc in the intermediate dir and include all
locaized rcs and precompiled mcs for the languages
that are to be compiled. IIRC this feature is already in the rbuild branch.
Greeting,
Timo
Hello everybody,
For your information, I finished a new version of RosBE-Unix. To be on the
safe side, I marked it as a BETA version, so you still have time to try it
out :-)
You can get the BETA version of RosBE-Unix 1.1 from
http://reactos.colinfinck.de.
The major changes are updated compilers (they are exactly the same as in
RosBE-Windows 1.1 now) and several bug fixes.
A complete list of changes is available here:
http://www.reactos.org/forum/viewtopic.php?p=39179#39179.
Please try it out and report bugs if you find some.
Best regards,
Colin Finck
On Dec 21, 2007 5:26 AM, <hpoussin(a)svn.reactos.org> wrote:
> Author: hpoussin
> Date: Fri Dec 21 13:26:41 2007
> New Revision: 31369
>
> URL: http://svn.reactos.org/svn/reactos?rev=31369&view=rev
> Log:
> No need to compile libxml2, as it is not used
It should be. If you change the config.h for the wine modules and add
an include path so that msi and msxml can find the libxml2 public
headers and compile I bet Office 2003 and friends will install on
ReactOS.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
Generic behavior is to
1) use .spec for DLLs (because usually DLLs are shared with Wine,
which uses the same format), but for msvcrt it was not possible.
2) implement a stub as soon as possible whenever it is hit
WBR,
Aleksey Bragin.
On Dec 19, 2007, at 4:20 PM, Sylvain Petreolle wrote:
> Could these stubs be added to other dlls too ?
>
> For example, audiosrv crashes is being killed by EXCEPTION_WINE_STUB,
> because setupapi misses the CMP_RegisterNotification function.
>
> Kind regards,
> Sylvain Petreolle (aka Usurp)
Could these stubs be added to other dlls too ?
For example, audiosrv crashes is being killed by EXCEPTION_WINE_STUB,
because setupapi misses the CMP_RegisterNotification function.
Kind regards,
Sylvain Petreolle (aka Usurp)
Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire.I may disagree with what you have to say, but I shall defend, to the death, your right to say it. - VoltaireRun your favorite Windows apps with free ReactOS : http://www.reactos.orgListen to non-DRMised Music: http://www.jamendo.com
On Dec 18, 2007 6:03 AM, Aleksey Bragin <aleksey(a)reactos.org> wrote:
> I merged it, taking in account winebuild's changes (using output()
> function for example), so in 31300 it seems to work correctly.
>
> I didn't really understood that AJ's message - Wine does not need
> stubs as stubbed functions at all, but rather want all of them to be
> manually implemented in a standalone .c file as stubs? or?
As we discused on IRC he wants to do away with pseudo-stubs or at
least does not think they should be used in a PE build. I tend to
agree a function should either be implemented, fully stubbed or not
there at all unless an application is proven to need it. Needless
stubbing results in breakage when an application calls
GetProcAddress/LoadLibrary and would normally fail with grace if the
function is not there. Instead it can hit one of these fake stubs,
assume its safe to keep working and blow up on you.
As for your other question about decoration in mangled symbols for
stdcall functions I am not quite sure I understand it. The only
decorated functions I saw in the spec file were all cdecl. There were
others that are exported variables and some stdcall functions but they
did not have decoration unless I just missed it.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
I merged it, taking in account winebuild's changes (using output()
function for example), so in 31300 it seems to work correctly.
I didn't really understood that AJ's message - Wine does not need
stubs as stubbed functions at all, but rather want all of them to be
manually implemented in a standalone .c file as stubs? or?
WBR,
Aleksey Bragin.
On Dec 18, 2007, at 5:11 AM, Steven Edwards wrote:
> On Dec 17, 2007 6:36 PM, <cfinck(a)svn.reactos.org> wrote:
>> Every change I try for fixing the build in one component breaks
>> the build for another component.
>> winebuild wasn't synchronized completely to the Wine version
>> anyway, and the current Wine version removed support for the --
>> pedll option we use, so a full clean sync isn't possible.
>
> Can you merge the --pedll patch up to the trunk rather than reverting?
> You might want to comment out the stubs anyway or add real stubs and
> submit them to wine as per Alexandre's rejection of the patch by GvG
>
> http://www.winehq.org/pipermail/wine-devel/2004-December/031978.html
>
> Thanks
> --
> Steven Edwards
>
> "There is one thing stronger than all the armies in the world, and
> that is an idea whose time has come." - Victor Hugo
On Dec 17, 2007 6:36 PM, <cfinck(a)svn.reactos.org> wrote:
> Every change I try for fixing the build in one component breaks the build for another component.
> winebuild wasn't synchronized completely to the Wine version anyway, and the current Wine version removed support for the --pedll option we use, so a full clean sync isn't possible.
Can you merge the --pedll patch up to the trunk rather than reverting?
You might want to comment out the stubs anyway or add real stubs and
submit them to wine as per Alexandre's rejection of the patch by GvG
http://www.winehq.org/pipermail/wine-devel/2004-December/031978.html
Thanks
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
On Dec 16, 2007, at 4:10 PM, Marc Piulachs wrote:
> Hi Alex,
>
> Let me see if I understood this correctly. The problem is not
> really on
> manually choosing the base address, the problem is that module's
> "baseaddress" attribute is optional, even when the module is of type
> "win32dll", if this attribute is empty rbuild sets a common default
> base
> address (0x10000000 for win32 dll's).
No, the problem is exactly choosing the address: modules overlap with
each other, and manually calculating baseaddresses often doesn't
work. Alex proposed to automate this process and do a
baseaddress.rbuild file generator.
There are not many dlls with baseaddress missing, and if it's
missing, it should be added to those (in trunk).
> AFAIK we are using the same base address that the equivalent
> component has
> on windows so auto generating it using any sort of tool is not
> really an
> option.
Not really, in most cases (might be with a few exceptions), it's not
possible to use exactly Windows' base address (because size of our
modules and windows modules often differs). The problem is to
distribute the dlls in the memory address space so that they don't
overlap.
As for baseaddress in xml form - baseaddress is a module's property,
it's not a standalone object which is part of the module. I don't see
why it should be given a standalone tag (maybe I'm missing something).
WBR,
Aleksey Bragin.
Hello,
On Dec 17, 2007 5:01 PM, <cfinck(a)svn.reactos.org> wrote:
> URL: http://svn.reactos.org/svn/reactos?rev=31296&view=rev
> Log:
> Rename DSOUND_DllRegisterServer to DllRegisterServer and DSOUND_DllUnregisterServer to DllUnregisterServer. (the same is already done in the other DirectX DLL's with SPEC files)
> I wonder how dsound.dll could be compiled in the past cause the SPEC file never referenced to these functions.
Maybe there was a bug in older versions of binutils. Perhaps it was
ignoring unresolved exports marked PRIVATE.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
I have thought about localizing our messagetables, like kernel32's
errorcodes.mc
Now the question is: how do we do this?
We could simply add all localisations inside the current file without
changing anything else in the build process. I didn't test if it works,
but it should. But it would lead to huge files full of different
languages and would also remove the possibility for custom selection of
the languages that are compiled.
I would prefer to go the way we do with other localisation: put
different .mc files in the lang subfolder. But afaik mc files don't
allow inclusion of external files, so we need some build process that
compiles the different mc files into rc files and include those into a
main rc file. Currently our mcs are defined in makefile. This should
move to the rbuild files and rbuild should compile the mc files and
create the needed rc:
<module...>
...
<file>foo.c</file>
<file>foo.rc</file>
...
<autoresource>auto.rc</autoresource>
<localization isoname="de-DE">lang/de-DE.rc</localization>
<msgtable isoname="de-DE">lang/msgtable-de-DE.mc</msgtable>
</module>
rbuild would generate <intermediate dir>\lang\msgtable-de-DE.mc.rc and
auto.rc containing includes to the generated files. IMO auto.rc should
be the file that is compiled, including all localizations and the
unlocalized resource file.
#include "lang/de-DE.rc"
#include "lang/msgtable-de-DE.mc.rc"
If I understood Fireball correctly, this is also msvc compatible. And
if not, rbuild just would have to generate the files differently.
Some ideas for simplifying the rbuild definitions: Instead of <file>,
<localization> and <msgtable> we could simply use <file> for
unconditional compilation, <file locale="en-US"> for localized
conditional compilation. And then let rbuild decide from the file
extension what to do with it. resources/messagetables could
automatically be included in an autogenerated rc file, without
explicitly defining it in the rbuild file.
Regards,
Timo
Is this code for human ?
"@@ -81,7 +81,7 @@
* if they forget set it, the ddraw will autoamtic
* set it for system memory.
*/
- if ((pDDSD->dwFlags & DDSCAPS_SYSTEMMEMORY) != DDSCAPS_SYSTEMMEMORY)
+ if ((pDDSD->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) ==
DDSCAPS_SYSTEMMEMORY)
{
pDDSD->dwFlags = pDDSD->dwFlags | DDSD_LPSURFACE;
}"
On Dec 16, 2007 1:46 AM, <greatlrd(a)svn.reactos.org> wrote:
> Author: greatlrd
> Date: Sun Dec 16 03:46:43 2007
> New Revision: 31268
>
> URL: http://svn.reactos.org/svn/reactos?rev=31268&view=rev
> Log:
> fix a typo
>
> Modified:
> trunk/reactos/dll/directx/ddraw/Surface/createsurface.c
>
> Modified: trunk/reactos/dll/directx/ddraw/Surface/createsurface.c
> URL:
> http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Surface/…
>
> ==============================================================================
> --- trunk/reactos/dll/directx/ddraw/Surface/createsurface.c (original)
> +++ trunk/reactos/dll/directx/ddraw/Surface/createsurface.c Sun Dec 16
> 03:46:43 2007
> @@ -81,7 +81,7 @@
> * if they forget set it, the ddraw will autoamtic
> * set it for system memory.
> */
> - if ((pDDSD->dwFlags & DDSCAPS_SYSTEMMEMORY) != DDSCAPS_SYSTEMMEMORY)
> + if ((pDDSD->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) ==
> DDSCAPS_SYSTEMMEMORY)
> {
> pDDSD->dwFlags = pDDSD->dwFlags | DDSD_LPSURFACE;
> }
>
>
>
--
MVH
Simon Blomqvist
Tel - 0735307474
IT www.AgentEyes.com
Internet Café www.cafe.agenteyes.com
Konst www.konstgrossisten.com/
Jag ringer gratis med www.skype.se mitt id är: simonblomqvist
Hi!
Let us start on this now.... It is time to restructure the GDI OBJ
Lock Unlock mess! Don't wait for me.
I'm working on the DCE issue which is a mess due to gdiobj.c over
think object locking system. The new
ideas I have will not be compatible with the current system.
Thanks,
James
Hi!
Sorry for the delay here,,,
This is what we know to be correct sofar. The "Book" section 3.4
GdiTableCell structure is not necessarily correct.
typedef struct _GDI_TABLE_ENTRY
{
PVOID KernelData;
SHORT Count:15; Count number of refs.
SHORT Lock:1; Does set if locked by process. It also
explains why the count shows 1 -> 3 most of the time.
SHORT ProcessId; Process Id is here.
SHORT nUpper; should match the upper half of the handle.
CHAR ObjectType; example-> 0x0401, // not all memdc, dc =1, etc,,,
CHAR Flags; --> 0x04 is here, set if memdc, sometimes~.
PVOID UserData;
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
Thanks,
James
why waste the last handle?
> author: jimtabor
> Date: Thu Dec 13 23:27:28 2007
> New Revision: 31204
> - for ( i = RESERVE_ENTRIES_COUNT; i < GDI_HANDLE_COUNT; i++ )
> + for ( i = RESERVE_ENTRIES_COUNT; i < GDI_HANDLE_COUNT-1; i++
> - if (HandleIndex >= GDI_HANDLE_COUNT)
> + if (HandleIndex >= GDI_HANDLE_COUNT-1)
On Dec 12, 2007 7:08 AM, <hpoussin(a)svn.reactos.org> wrote:
> Author: hpoussin
> Date: Wed Dec 12 15:08:11 2007
> New Revision: 31182
> - * Copyright (C) 2002, 2003, 2004 ReactOS Team
> + * Copyright (C) ReactOS Team
A proper copyright header needs to show all of the years like
* Copyright (C) 2002-2004,2007 ReactOS Team
Thanks
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
dchapyshev(a)svn.reactos.org wrote:
> Author: dchapyshev
> Date: Thu Dec 6 22:49:12 2007
> New Revision: 31048
> URL: http://svn.reactos.org/svn/reactos?rev=31048&view=rev
> Log:
> - Move all hardcode strings to resource
This isn't actually used. It should be deleted.
Ged.
Marc, I think I haven't been very clear on this. What I mean, is that
the .spec format already includes *everything* needed to produce
either gcc or msvc-format .def file. So no point in creating yet
another format. Nothing more nothing less, that's what I ment.
I'm glad to hear disadvantages of that way.
WBR,
Aleksey Bragin.
On Nov 24, 2007, at 7:01 PM, Marc Piulachs wrote:
>
>> There is absolutely no need to invent yet another format for storing
>> export functions. It was invented once by MSVC, it was invented by
>> GCC/MinGW, both are incompatible, it was invented by Wine to have
>> ability of easy functions stubbing. Should there be another invention
>> of the same wheel by ReactOS now?
>
>> If GCC/MinGW wouldn't be that *strange*, it could stdcall-fixup, and
>> then properly link, this way .def could be created in the lowest
>> common denominator format.
>
> That's the problem I'm trying to solve..:) The point on this change
> is not
> really store them in xml inset of plain text, is not that
> important, for me
> there are two reasons, first declare this information so rbuild can
> manipulate it as objects and apply checking , logic , whatever ...
> and the
> most important store the information on a neutral , compiler
> agnostic and
> rich format that allow us to generate (export to) ANY format we
> desire out
> of it. Currently def files are tided to mingw which is bad.
>
> At the end the information must be there so what's the difference
> between
> having it in a file with extension .def or .spec and having it on a
> file
> with .rbuild extension? IMO It's not reinventing the wheel
>
> /Marc
Hello,
As I don't know how to contact Eric, I post this on the mailing list now:
With the change in r30958, the build is broken (at least for the BuildBot,
see http://reactos.org:8010/ReactOS_%28Debug%29/builds/5979/step-shell_2/0).
LD misses the "NetUserSetInfo" function. I looked into
dll/win32/netapi32/netapi32.spec and it's declared there, but only as a
stub.
Don't know how to properly fix this now. Maybe it requires a real
implementation of this function.
Regards,
Colin
On Nov 29, 2007 11:04 AM, <cwittich(a)svn.reactos.org> wrote:
> Author: cwittich
> Date: Thu Nov 29 19:04:38 2007
> New Revision: 30899
>
> URL: http://svn.reactos.org/svn/reactos?rev=30899&view=rev
> Log:
> remove the const from the DrawShadowText function to be compatible to PSDK
Please send this on to winehq.
Thanks
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
How come size, space and time matter in this particular case of where
the variable is declared (it's still defined in the stack, wherever
you write it)?
In the kernel, there is a rule to allocate all variables at top of
the function (not in subsequent {} blocks). It should be extended to
win32k too, it's cleaner, gives the developer an overview of all vars
used in the function, and prevents possible cases of defining vars
with the same name both atop of the function and in some subsequent
block of code.
Not to mention this is not fully correct to do in a C language.
With the best regards,
Aleksey Bragin.
On Nov 27, 2007, at 4:14 AM, jimtabor(a)svn.reactos.org wrote:
> Author: jimtabor
> Date: Tue Nov 27 04:14:38 2007
> New Revision: 30807
>
> URL: http://svn.reactos.org/svn/reactos?rev=30807&view=rev
> Log:
> Revert 30780 for gdibatch. Size, space and time are very critical
> in here. If you dont know what your are doing? Do not play in here.
>
> Modified:
> trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c
>
> Modified: trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/
> win32/win32k/objects/gdibatch.c?rev=30807&r1=30806&r2=30807&view=diff
> ======================================================================
> ========
> --- trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c
> (original)
> +++ trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c Tue
> Nov 27 04:14:38 2007
> @@ -20,7 +20,6 @@
> {
> PDC dc = NULL;
> PDC_ATTR Dc_Attr = NULL;
> - PGDIBSSETBRHORG pgSBO;
> if (hDC)
> {
> dc = DC_LockDc(hDC);
> @@ -40,6 +39,7 @@
> break;
> case GdiBCSetBrushOrg:
> {
> + PGDIBSSETBRHORG pgSBO;
> if (!dc) break;
> pgSBO = (PGDIBSSETBRHORG) pHdr;
> Dc_Attr->ptlBrushOrigin = pgSBO->ptlBrushOrigin;
>
>
Looking at bug #933 in bugzilla,
I see the following paste : http://www.reactos.org/paste/index.php/37693cf/
It has been posted on november 14th and set to expire after 7 days.
Today is november 27, therefore this paste should have expired.
Kind regards,
Sylvain Petreolle (aka Usurp)
Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire.
I may disagree with what you have to say, but I shall defend, to the death, your right to say it. - Voltaire
Run your favorite Windows apps with free ReactOS : http://www.reactos.org
Listen to non-DRMised Music: http://www.jamendo.com
Theoretically extending this logic to infinity will lead to creation
of a new high level language, stored in xml documents, parsing which
rbuild generates source code in C or other language needed. :-).
The thing is, .def is rather simple, .spec is a bit more advanced to
include more stuff ("stub", what else does reactos use from it?).
There is absolutely no need to invent yet another format for storing
export functions. It was invented once by MSVC, it was invented by
GCC/MinGW, both are incompatible, it was invented by Wine to have
ability of easy functions stubbing. Should there be another invention
of the same wheel by ReactOS now?
If GCC/MinGW wouldn't be that *strange*, it could stdcall-fixup, and
then properly link, this way .def could be created in the lowest
common denominator format.
With the best regards,
Aleksey Bragin.
On Nov 24, 2007, at 4:36 PM, Marc Piulachs wrote:
> I wouldn't use .spec files for several reasons, first of all is
> that it
> violates the way how rbuild currently works. Rbuild reads xml
> documents in a
> custom format and produce different outputs depending on various
> conditions.
> IMO rbuild shouldn't be extended to parse anything else but
> just .rbuild
> files.
>
> Also, winebuild from the rbuild point of view is not different from
> any
> other compiler , so I think the problem is just the opposite ,
> rbuild should
> use the information stored in it's rbuild file to produce the spec
> file in
> addition to the specific def file (it shouldn't be produced by
> winebuild
> anymore) as both files are required to compile wine module XYZ.
>
> Having the information in rbuild files has also other advantages,
> the most
> important is that it would allow us to use the conditional logic to
> export
> functions based on a given condition, for example hacks like
> /lib/debugsup.rbuild won't be necessary anymore.
>
> I wouldn't fork winebuild.
>
> Regards,
> Marc
Hi All,
I have lately seen a big effort to make more modules compilable under Visual
C , one of our current problems when building dlls is that our .def files
are mingw/gcc specific not directly compatible with msvc or any other future
compiler we may support. Currently we are using not very elegant solutions
to archive compatibility with msvc like stripping some information from
mingw def files. As Alex suggested I think it's a good idea to move that
information to rbuild files and let rbuild generate full compatible compiler
def files in the intermediate folder. The advantages are obvious.
As I have little experience with mingw def files I would like to request
some help from other developers to evaluate/validate my proposal.
>From my research on the ros codebase I have found that possible variations:
- CcRosInitializeFileCache@8
- FsRtlGetFileSize
- @HalExamineMBR@16
- PsChargeProcessNonPagedPoolQuota@4=PsDereferenceImpersonationToken@4
-
ConvertSecurityDescriptorToAccessNamedA=ConvertSecurityDescriptorToAccessA@2
8
- GetSecurityDescriptorLength(a)4=NTDLL.RtlLengthSecurityDescriptor
- ??1type_info@@UAE@XZ=__thiscall_MSVCRT_type_info_dtor @15
- ChkdskEx=VfatChkdsk@24
My proposed syntax is as following and it should support all of the above
cases:
<exportfunction name="CcRosInitializeFileCache" ordinal="8" />
(required)
(optional)
<exportfunction name="CcRosInitializeFileCache" ordinal="8"
mappedname="PsDereferenceImpersonationToken" mappedordinal="4"/>
(required)
(optional) (optional)
(optional)
<exportfunction name="GetSecurityDescriptorLength" ordinal="4"
mappedname="RtlLengthSecurityDescriptor" mappedordinal="4" module="ntdll"/>
(required)
(optional) (optional)
(optional) (optional)
With this information rbuild will generate a modulename_gcc.def when you
type "make" and modulename_msvc.def on the intermediate folder when you type
"make msvc".
Opinions, comments?
Regards,
Marc
Hi,
why can't .spec be used for this purpose (extended to support msvc
files generation)?
They are going to stay anyway for wine-shared modules.
With the best regards,
Aleksey Bragin.
On Nov 24, 2007, at 3:04 AM, Marc Piulachs wrote:
> Hi All,
>
>
>
> I have lately seen a big effort to make more modules compilable
> under Visual C , one of our current problems when building dlls is
> that our .def files are mingw/gcc specific not directly compatible
> with msvc or any other future compiler we may support. Currently we
> are using not very elegant solutions to archive compatibility with
> msvc like stripping some information from mingw def files. As Alex
> suggested I think it’s a good idea to move that information to
> rbuild files and let rbuild generate full compatible compiler def
> files in the intermediate folder. The advantages are obvious.
>
>
>
> As I have little experience with mingw def files I would like to
> request some help from other developers to evaluate/validate my
> proposal.
>
>
>
> From my research on the ros codebase I have found that possible
> variations:
NtGdiBitBlt calls IntEngBitBlt, wich calls DrvBitBlt if available.
There's no DrvScroll function.
Timo
> Author: weiden
> Date: Fri Oct 19 07:23:04 2007
> New Revision: 29670
>
> URL: http://svn.reactos.org/svn/reactos?rev=29670&view=rev <http://svn.reactos.org/svn/reactos?rev=29670&view=rev>
> Log:
> Tweak the ScrollDC implementation a bit so that it produces a better output. The implementation still is completely incorrect as it should call the driver for this operation instead of doing a BitBlt operation...
>
> Modified:
> trunk/reactos/subsystems/win32/win32k/ntuser/painting.c
>
Hello,
honestly, your enthusiasm seems a bit to exagerated to me!
In the specific case, it looks like that all TCHARs in Taskmgr have been converted to WCHAR because the programme receives from the API some informations that are UNICODE only.
I can understand and I agree to that, afterall it can be made working with unicows layer, if someone wants (and infact, I did it).
Athough you should also admit that two WideCharToMultiByte() calls are not exactly something we can call "drammatic" code, which is automatically excluded by the presence of the magic UNICODE macro.
I also agree with the fact that there could be the source code which interacts with UNICODE-only variables and the direct usage of WCHAR instead of TCHAR is very helpful and clean.
But how many functions have this behavior (WCHAR-only)?
It is not too difficult to count them and in my opinion this does not justify a refresh of sources for making TCHAR>WCHAR, or MessageBox>MessageBoxW...
Last but not last... human beings can do errors, their changes may always introduce new errors, so more time for testing, etc...
If I can do a suggestion, I would avoid unnecesary changes for this reason too.
Afterall the binary code of the executable won't change by a single bit when TCHARs are converted to WCHARs at compile time, if there are not drawbacks like tons of conversions which will make the source code unreadable (it's also important that people understand the code for contribuiting).
But if there are just TCHARs/_tcscpy/... I don't understand the reason.
Sincerely,
Carlo Bramini.
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ReactOS Development List" ros-dev(a)reactos.org
Cc :
Date : Mon, 5 Nov 2007 23:55:35 +0000
Subject : Re: [ros-dev] About UNICODE<->ASCII support.
> On Nov 5, 2007 5:53 PM, Colin Finck <mail(a)colinfinck.de> wrote:
> > Hi Ged,
> >
> > > Ged wrote:
> > > This is the wrong way to be working. We should be dropping
> > > support for ASCII where ever possible now.
> >
> > Is this really the official course now?
>
> This has pretty much always been the course.
> There is absolutely no reason to use TCHAR, it was relevant 10 years
> ago, but not any more.
>
> (btw, in case anyone thinks I'm contradicting myself with mstsc, TCHAR
> is only being used as it's currently a port of an ASCII app)
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
Hi,
welcome.
The best is to join #reactos on freenode and have a live talk with
devs. The language used throughout ReactOS is mostly C, with very few
exceptions to C++. And if you have WinAPI knowledge, it would be
appreciated.
WBR,
Aleksey Bragin.
On Nov 14, 2007, at 12:16 AM, James Holland wrote:
> My name is James Holland. I am interested in helping with the
> development of ReactOS. I am fairly adept with C++. I also have used
> APL (not very well) and MS Visual Basic at past times. I am currently
> using Java in my Computer Science class.
>
> For background, I am a Student at New Mexico Tech. My major is
> Electrical Engineering.
>
> I am open for any suggestions as to what I should do.
>
> James Holland
My name is James Holland. I am interested in helping with the
development of ReactOS. I am fairly adept with C++. I also have used
APL (not very well) and MS Visual Basic at past times. I am currently
using Java in my Computer Science class.
For background, I am a Student at New Mexico Tech. My major is
Electrical Engineering.
I am open for any suggestions as to what I should do.
James Holland
Hello,
Probably, you are right.
It's better to close this discussion here.
I will move my interests elsewhere, where your nice replies won't reach me.
Greetings to all.
Sincerely,
Carlo Bramini.
"unsubscribe"... <click>
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ReactOS Development List" ros-dev(a)reactos.org
Cc :
Date : Tue, 13 Nov 2007 15:07:35 -0000
Subject : Re: [ros-dev] About UNICODE<->ASCII support.
> carlo.bramix wrote:
>
> > But, for an ascii-based OS, it's a compromise for getting the
> > application working because that application, if compiled in that
> > configuration, will work only on Win9x/ME.
>
> We have no interest in ascii-based OS's, we have no interest in 9x/ME.
>
> > And this is what I cannot understand: the ability to work in both
> enviroment
> > is an *added*value* to the software, not a defect.
>
> Why? ReactOS apps have no value in being built as ASCII.
> ASCII is both rude and prehistoric. Move on, this is the 21st century,
> ReactOS is a unicode operating system.
> As far as we're concerned Win9x is dead.
>
> > Just another small bit: besides the functions with the 'W' suffix (while
> the
> > remaining part of the planet uses at least the unified function names),
> > sometimes debugging directly unicode is a pain, at least for me...
>
> Well you stay on your prefered half of the planet and stop bothering us with
> your
> ASCII ranting...
>
> I'd hate to see you work with C#, you'd have a fit as it's unicode only.
> I have visions of you p/invoking everything to make sure you can still build
> your .NET apps as ASCII.
>
> > The strings into the debuggers are shown as a vector of words instead of a
>
> > clear string, same condition when declaring some constant strings into the
>
> > sources, as vector of single chars...
> > Horrible (urgh!).
>
> Get yourself a decent debugger then, or close your eyes, or give up.
>
>
> Ged.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required please request a hard-copy version.
>
> Amteus Secure Communications Ltd
> 57 Cardigan Lane,
> Leeds,
> LS4 2LE
> t: +44 (0) 870 8368770
> f: +44 (0) 870 8368701
>
> Registered in England No 4760795
>
> http://www.amteus.com
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
Hello,
> > Athough you should also admit that two WideCharToMultiByte()
> > calls are not exactly something we can call "drammatic" code
> As I also said, WideCharToMultiByte() can cause data corruption if a Unicode
> character isn't supported by the currently selected ANSI codepage.
> MultiByteToWideChar() is no problem, but the other direction can be
> problematic.
> After all, we're coding for Windows Server 2003-compatibility here.
> We don't have to care about compatibility with Win9x (ANSI-only) or previous
> NT versions.
That's right, it can cause corruption.
But, for an ascii-based OS, it's a compromise for getting the application working because that application, if compiled in that configuration, will work only on Win9x/ME.
If someone wants to make an object working on his old OS, he must also be ready to the drawbacks, this has never been a news.
Afterall, unicows is doing the same job when wrapping the vaious widechar APIs.
But for NT and later, everything just need to be compiled as UNICODE, no?
And this is what I cannot understand: the ability to work in both enviroment is an *added*value* to the software, not a defect.
I just wanted to clarify that I was not asking to release the accessories and/or other parts of ReactOS' binaries compiled for ASCII. Absolutely not, in no way!
Read: I want the most flexible international support available.
Just another small bit: besides the functions with the 'W' suffix (while the remaining part of the planet uses at least the unified function names), sometimes debugging directly unicode is a pain, at least for me...
The strings into the debuggers are shown as a vector of words instead of a clear string, same condition when declaring some constant strings into the sources, as vector of single chars...
Horrible (urgh!).
Sincerely,
Carlo Bramini
>From all changes introduced on my rbuild branch auto generated resources
seems to be the most controversial by far so I will try to explain here the
design decision behind it
One of my particular obsessions is trying to optimize and automate the
maxium ammout of things, if something can be reasonably created
automatically why do it by hand?
CURRENT SITUATION
=================
Currently the version common defines REACTOS_STR_FILE_DESCRIPTION ,
REACTOS_STR_INTERNAL_NAME and REACTOS_STR_ORIGINAL_FILENAME , localized
resources and theme manifest are added to [modulename].rc , rsrc.rc or
splitted between both.
Problems:
- Theme manifests files "manifest.xml" are architecture
dependent (X86)
- Duplicated content, we will have hundreds of identical
manifest files for every aplication
- No way to compile an aplication without manifest
- No way to compile an aplication with only specified
localizations
- Duplicated work, rbuild has all the information required to
automatically generate the defines
- If we decide to rename or introduce a new define in the future
we will have to edit all resources by hand.
- Resource localizations are compiled with any control , the
only way to check if they are included is by hand.
Advantatges to my proposal:
- It solve all the above problems.
- Reduce man work
- Allows future changes in the format (editing the resource
generator source code (1 file) vs all resources files on SVN)
- It's the base to other future enchancments , when a new
feature is added to rbuild we have just to modify it and all modules will
automatically inherit it.
An most important of all , it represents a change of the model to a metadata
oriented build process. You describe the content (source code , resources
...) rather than the build , rbuild uses that information to generate the
apropiate image (as always) but this information can also be used for
multiple other things, analitics , reports , web ....
How does it work?
=================
First of all IT'S OPTIONAL , you can decide to use it or not, your choice.
We will use the eventvwr.rbuild as sample:
<?xml version="1.0"?>
<module name="eventvwr" type="win32gui" installbase="system32"
installname="eventvwr.exe">
<include base="eventvwr">.</include>
<include base="eventvwr" root="intermediate">.</include>
...
<!-- Auto generated stuff -->
<automanifest>manifest.xml</automanifest>
<autoresource>auto.rc</autoresource>
<!-- Authors -->
<developer>mpiulachs</developer>
<translator>cfinck</translator>
<translator>fireball</translator>
<translator>mpiulachs</translator>
<metadata description="ReactOS Event Log Viewer" />
<!-- Avialable localizations for this module -->
<localization isoname="de-DE">lang/de-DE.rc</localization>
<localization isoname="en-US">lang/en-US.rc</localization>
<localization isoname="es-ES">lang/es-ES.rc</localization>
<localization isoname="fr-FR">lang/fr-FR.rc</localization>
<localization isoname="ru-RU">lang/ru-RU.rc</localization>
</module>
to turn auto resources on we have to add the <autoresource> element with the
name of the resource that will be created in the INTERMEDIATE folder in this
case it will be named "auto.rc".
It will also automatically create the apropiate manifest.xml file for the
architecture being build (x86 or PPC) and will reference it in "auto.rc"
Also it will validate and include the localizations, even it has
localizations for 5 languages it will only compile those specified on
languages.rbuild
See attached files for autogenerated content
I tried to explain the motivation behind my changes and why I think they are
positive , of course I'm open to your questions , ideas or comments but
please be contructive and argument your point of view , "I don't like it ,
we won't use it" as someone said is not an expected opinion.
/Marc
How is it possible to tell XP what specific IRQ to put your audio
card on in Standard PC mode?
1 In the motherboard BIOS.
2 In the Device Manager.
3 Put the card in the corresponding slot.
4 There are jumpers on most motherboards that you can change to
direct IRQs.
5 None of the above.
_________________________________
Dave Johnson
http://www.davefilms.us DaveFILMS®
San Diego, CA & Nashville, TN
http://perditioncity.us/
Voice Talent
Writer, Producer, Director
Independent Audio Theater Producer
Voice mail and Fax#:(206)350-2915
Voice (615)722-2249
Skype & Msn Live messanger "DaveFilms"
AIM / iChat AV "DaveFilms2007"
Please list all VR IRQ in NT 5.1 and VI
IF my computer is not in ACPI m ode is it in Standard PC mode?
Please reply.. It is vary important.
_________________________________
Dave Johnson
http://www.davefilms.us DaveFILMS®
San Diego, CA & Nashville, TN
http://perditioncity.us/
Voice Talent
Writer, Producer, Director
Independent Audio Theater Producer
Voice mail and Fax#:(206)350-2915
Voice (615)722-2249
Skype & Msn Live messanger "DaveFilms"
AIM / iChat AV "DaveFilms2007"
Why not use a linked list structure in LOADER_PARAMETER_BLOCK,
describing hardware device tree? (I implemented a bit of it in winldr).
Or is it for a different purpose?
WBR,
Aleksey Bragin.
On Nov 11, 2007, at 12:27 PM, arty(a)svn.reactos.org wrote:
> Author: arty
> Date: Sun Nov 11 12:27:07 2007
> New Revision: 30352
>
> URL: http://svn.reactos.org/svn/reactos?rev=30352&view=rev
> Log:
> Add structures related to devtree.c
>
> Modified:
> trunk/reactos/include/reactos/ppcboot.h
Hi,
no, I was speaking about something different.
Take a look - http://www.reactos.org/wiki/index.php/Coding_Style
there I mean this:
/*++
* @name SomeAPI
* @implemented NT4
*
* Do nothing for 500ms.
*
* @param SomeParameter
* Description of the parameter. Wrapped to more lines on ~70th
* column.
*
* @param YetAnotherParameter
* Bleh, bleh :)
*
* @return STATUS_SUCCESS in case of success, STATUS_UNSUCCESSFUL
* othwerwise.
*
* @remarks Must be called at IRQL == DISPATCH_LEVEL
*
*--*/
NTSTATUS
STDCALL
SomeAPI( ...
rgenstat-alike tool should be able to parse such header, not only the
old-style simple
/*
@implemented
*/
WBR,
Aleksey Bragin.
On Nov 10, 2007, at 1:06 AM, Marc Piulachs wrote:
> Hi Aleksey,
>
>
>
> I don’t know if I understood you completely, rgenstat works by
> parsing c/cpp source files not header files. What do you mean with
> “standard function header”?
>
>
>
> If we are seriously going to use it I would like to make some
> slightly modifications to it to make it more powerful but would
> require help from someone with more experience than me writing
> parsers in C.
>
>
>
> Regards,
>
> /Marc
On Nov 12, 2007, at 1:56 AM, Timo Kreuzer wrote:
>> Once again, the data extracted from parsing is not TRUE metadata just
>> meaningless strings that you can guess or interpret : "author :
>> jdoe" ,
>> "author : jhondoe" , "author : jhon doe" are 3 different persons and
>> Jhon Doe just one , I think it's obvious.
>>
> I disagree here. IMO information about developers and translators
> belong to svn. They should neither go into the sources nor into
> rbuild files. If you want to find out about it, ask svn and it will
> tell you the exact name. We also don't really have maintainers for
> most modules, so most rbuild files would be spammed with the names
> of lots of developers without saying anything about who wrote a
> paticular piece of code.
There is standard per-file header for ReactOS source code (if it's
not used everywhere, it's a temporary problem), which lists
programmers, and it's usually (almost always) maintained. Whenever
our code is indexed by systems like Google codesearch, everyone can
clearly see the license and authorship from the source file.
Additionally, SVN holds exact per-line history of changes.
What's the benefit of storing authoship in .rbuild too? (I agree it
is logical, but if there is no benefit, then...)
WBR,
Aleksey Bragin.
Your opinion does have a strong point.
Implemented/unimplemented were useful in the early stages, I think.
Right now, for both Wine and ReactOS, the quality of implementation
matters, not quantity.
How is Wine's system done, about documenting functions - where is it
done? Source code comments? Can it be adjusted to fit ReactOS coding
style?
WBR,
Aleksey Bragin.
On Nov 10, 2007, at 10:16 PM, Steven Edwards wrote:
> On Nov 10, 2007 4:00 AM, Aleksey Bragin <aleksey(a)reactos.org> wrote:
>> Hi,
>> no, I was speaking about something different.
>> Take a look - http://www.reactos.org/wiki/index.php/Coding_Style
>> there I mean this:
>
> The implemented/unimplemented tags are really worthless because what
> if the API takes 20 params and 18 of them are implemented
> and nothing known uses the other 2 params? Do you call it implemented
> or unimplemented? Its better to autogenerate the docs from the
> function comment headers. See here, I think this is a MUCH better
> system and it already works. No point in developing another.
>
> http://source.winehq.org/WineAPI/
>
> If the API does not show up in the documented API then it should be
> safe to assume its not implemented. If it is implemented and not
> documented then its a Janitorial project.
>
> --
> Steven Edwards
>
> "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
> http://www.reactos.org/mailman/listinfo/ros-dev
I support that, though some modifications should be required, because
in the kernel a standard function header [should be]/is used. If it's
able to parse that header too (provided it contains the @implemented/
@unimplemented), then it's great.
WBR,
Aleksey Bragin.
On Nov 9, 2007, at 8:29 PM, Marc Piulachs wrote:
> As most of you know, Casper created a small tool rgenstat (tools/
> rgenstat) that is able to parse source code for modules specified
> on apistatus.lst seeking for public APIs decorated with the
> @implemented or @unimplemented C comment. Rgenstat when invoked
> typing “make rgenstat” it produces an xml file containing all the
> functions and it’s current implementation status. With this
> database we can do all sorts of automatic compatibility reports .
> see for example wine’s equivalent http://www.winehq.org/site/status
> or http://www.codexchange.net/roslib generated from incomplete
> reactos data , (work in progress)
>
>
>
> As it easy and not intrusive I would suggest using this feature to
> kernel and core developers. Fireball , GreatLord , Jim , what do
> you think about that ?
>
>
>
> /Marc
If it's impossible to make correct .rc files (without the hassle of
using backends), then Marc's way is a way to go.
There is such tool by Wine, which uses .spec, it may need writing a
MSVC-backend though,.
WBR,
Aleksey Bragin.
On Nov 9, 2007, at 10:56 PM, Alex Ionescu wrote:
> I think you're all missing the point.
>
> As it stands now, MSVC won't even READ most of your resource files
> because you've decided to write them in a way that violates the .rc
> standard and that only binres/windres/whatever-you-call-that-
> incompatible-garbage can parse.
>
> Mark's proposal, apart from fixing all the problems he brought up,
> will finally allow you to write resource files that both MSVC and
> your-retarded-rc-compiler-name-goes-here can understand, with minimum
> effort. Right now, you're all stuck rewriting all your .rc files and
> creating .msvc.rc files.
>
> By the way Mark, you should extend this to definition files. Once
> again, MSVC is incompatible with all the ReactOS .def files, which
> have been tailored so that Mangle32-gcc can understand them, so
> you'll have to create msvc.def files as well.
>
> The more rbuild can generate independently, the better. You get MSVC
> files *after* running "make msvc8", and it's that step that would be
> creating the .def/.rc files for MSVC anyway -- what exaclty is it all
> you're complaining about regarding "MSVC" compatibility? You don't
> have it, how the hell can you lose it, and more importantly, why is
> the only suggestion that will finally let you have it "disliked"?!
>
> You make no sense.
>
> --
> Best regards,
> Alex Ionescu
Forgot to attach autogenerated sample files
_____
From: Marc Piulachs [mailto:marc.piulachs@codexchange.net]
Sent: Friday, November 09, 2007 7:24 PM
To: 'ReactOS Development List'
Subject: rbuild auto generated resources
>From all changes introduced on my rbuild branch auto generated resources
seems to be the most controversial by far so I will try to explain here the
design decision behind it
One of my particular obsessions is trying to optimize and automate the
maxium ammout of things, if something can be reasonably created
automatically why do it by hand?
CURRENT SITUATION
=================
Currently the version common defines REACTOS_STR_FILE_DESCRIPTION ,
REACTOS_STR_INTERNAL_NAME and REACTOS_STR_ORIGINAL_FILENAME , localized
resources and theme manifest are added to [modulename].rc , rsrc.rc or
splitted between both.
Problems:
- Theme manifests files "manifest.xml" are architecture
dependent (X86)
- Duplicated content, we will have hundreds of identical
manifest files for every aplication
- No way to compile an aplication without manifest
- No way to compile an aplication with only specified
localizations
- Duplicated work, rbuild has all the information required to
automatically generate the defines
- If we decide to rename or introduce a new define in the future
we will have to edit all resources by hand.
- Resource localizations are compiled with any control , the
only way to check if they are included is by hand.
Advantatges to my proposal:
- It solve all the above problems.
- Reduce man work
- Allows future changes in the format (editing the resource
generator source code (1 file) vs all resources files on SVN)
- It's the base to other future enchancments , when a new
feature is added to rbuild we have just to modify it and all modules will
automatically inherit it.
An most important of all , it represents a change of the model to a metadata
oriented build process. You describe the content (source code , resources
...) rather than the build , rbuild uses that information to generate the
apropiate image (as always) but this information can also be used for
multiple other things, analitics , reports , web ....
How does it work?
=================
First of all IT'S OPTIONAL , you can decide to use it or not, your choice.
We will use the eventvwr.rbuild as sample:
<?xml version="1.0"?>
<module name="eventvwr" type="win32gui" installbase="system32"
installname="eventvwr.exe">
<include base="eventvwr">.</include>
<include base="eventvwr" root="intermediate">.</include>
...
<!-- Auto generated stuff -->
<automanifest>manifest.xml</automanifest>
<autoresource>auto.rc</autoresource>
<!-- Authors -->
<developer>mpiulachs</developer>
<translator>cfinck</translator>
<translator>fireball</translator>
<translator>mpiulachs</translator>
<metadata description="ReactOS Event Log Viewer" />
<!-- Avialable localizations for this module -->
<localization isoname="de-DE">lang/de-DE.rc</localization>
<localization isoname="en-US">lang/en-US.rc</localization>
<localization isoname="es-ES">lang/es-ES.rc</localization>
<localization isoname="fr-FR">lang/fr-FR.rc</localization>
<localization isoname="ru-RU">lang/ru-RU.rc</localization>
</module>
to turn auto resources on we have to add the <autoresource> element with the
name of the resource that will be created in the INTERMEDIATE folder in this
case it will be named "auto.rc".
It will also automatically create the apropiate manifest.xml file for the
architecture being build (x86 or PPC) and will reference it in "auto.rc"
Also it will validate and include the localizations, even it has
localizations for 5 languages it will only compile those specified on
languages.rbuild
See attached files for autogenerated content
I tried to explain the motivation behind my changes and why I think they are
positive , of course I'm open to your questions , ideas or comments but
please be contructive and argument your point of view , "I don't like it ,
we won't use it" as someone said is not an expected opinion.
/Marc
As most of you know, Casper created a small tool rgenstat (tools/rgenstat)
that is able to parse source code for modules specified on apistatus.lst
seeking for public APIs decorated with the @implemented or @unimplemented C
comment. Rgenstat when invoked typing "make rgenstat" it produces an xml
file containing all the functions and it's current implementation status.
With this database we can do all sorts of automatic compatibility reports .
see for example wine's equivalent http://www.winehq.org/site/status or
http://www.codexchange.net/roslib generated from incomplete reactos data ,
(work in progress)
As it easy and not intrusive I would suggest using this feature to kernel
and core developers. Fireball , GreatLord , Jim , what do you think about
that ?
/Marc
Hi,
Here is a list of files that use ntuser/object.c
As you all see, we Dereference more than we Reference! Reference is 0 so we are
using Dereference as a delete? This is a mess! Not once is a Thread referenced!
Thanks,
James
./callproc.c:52: ObmDeleteObject(Handle,
./hook.c:209: ObmDeleteObject(Hook->Self, otHook);
./cursoricon.c:413: ObmDeleteObject(hCurIcon, otCursorIcon);
./cursoricon.c:487: Ret = ObmDeleteObject(CurIcon->Self, otCursorIcon);
./menu.c:320: ObmDeleteObject(Menu->MenuInfo.Self, otMenu);
./window.c:433: ObmDeleteObject(Window->hSelf, otWindow);
./accelerator.c:365: ObmDeleteObject(hAccel, otAccel);
./accelerator.c:374: ObmDeleteObject(hAccel, otAccel);
./accelerator.c:414: ObmDeleteObject(hAccel, otAccel);
./callproc.c:64: NewCallProc = (PCALLPROC)ObmCreateObject(gHandleTable,
./callproc.c:88: NewCallProc = (PCALLPROC)ObmCreateObject(gHandleTable,
./hook.c:113: Hook = ObmCreateObject(gHandleTable, &Handle, otHook,
sizeof(HOOK));
./monitor.c:92: Monitor = ObmCreateObject(gHandleTable, &Handle,
otMonitor, sizeof (MONITOR_OBJECT));
./cursoricon.c:399: CurIcon = ObmCreateObject(gHandleTable,
&hCurIcon, otCursorIcon, sizeof(CURICON_OBJECT));
./menu.c:333: Menu = (PMENU_OBJECT)ObmCreateObject(
./menu.c:442: Menu = (PMENU_OBJECT)ObmCreateObject(
./window.c:1537: ObmCreateObject(gHandleTable, (PHANDLE)&hWnd,
./accelerator.c:351: Accel = ObmCreateObject(gHandleTable,
(PHANDLE)&hAccel, otAccel, sizeof(ACCELERATOR_TABLE));
./input.c:1045: ObmDereferenceObject(DesktopWindow);
./msgqueue.c:776: ObmDereferenceObject(Window);
./hook.c:449: ObmDereferenceObject(HookObj);
./hook.c:455: ObmDereferenceObject(HookObj);
./hook.c:624: ObmDereferenceObject(Hook);
./hook.c:639: ObmDereferenceObject(Hook);
./hook.c:656: ObmDereferenceObject(Hook);
./hook.c:673: ObmDereferenceObject(Hook);
./hook.c:738: ObmDereferenceObject(HookObj);
./monitor.c:119: ObmDereferenceObject(pMonitor);
./cursoricon.c:375:// ObmDereferenceObject(CurIcon);
./cursoricon.c:386:// ObmDereferenceObject(CurIcon);
./cursoricon.c:414: ObmDereferenceObject(CurIcon);
./cursoricon.c:420: ObmDereferenceObject(CurIcon);
./cursoricon.c:532:// ObmDereferenceObject(Object);
./cursoricon.c:369:// ObmReferenceObject( CurIcon);
./cursoricon.c:519:// ObmReferenceObject(CurIcon);
jimtabor wrote:
>I noticed WndProc messages originate from win32k too. The window
thread is
>locked and then the message is sent out.
>
>Example: Function call User32 -> Win32k -> send message.
>
>Maybe we are doing double the work when we scroll on a bar. The rapid
>blinking of the bar too. We maybe sending more than one message out.
Trying a hypothesis here, could it work if all such w32k-registered-
and-managed window classes, if not subclassed by the app, lock visual
updates while calling back into usermode (cmp. LockWindowUpdate(hWnd)
)?
(recursive calls, whether intentional or from buggy user-mode app code
could invalidate it)
>4. Fix bugs.
>5. Get paid!
If you solve that... :-)
--
Mike
>
>
> - Declarative module localizations : Now module localizations are created
> in
> a declarative way which makes trivial tasks like listing non existent or
> outdated language localizations in real time for example :
>
> http://www.codexchange.net/rosdoc/localizations.htm
>
> Let me know your opinions and suggestions as I would like to start
> finishing
> some of this features and merge all/part of my changes back to trunk
>
I find this part extremely important. It would allow real-time tracking of
translation progress/status (if i understood it correctly) which would
greatly help maintain all the growing ROS localizations and help all ROS
translating teams. Such webpage, as you presented here, should be created on
ROS website as soon as it would be possible.
Hello everyone,
I just would like talk about a recent fix applied to one of the components of ReactOS.
It is not my intention to make problems in any way with this topic, or pretending a change of the direction taken by the project (peace!).
In that recent change, the hybrid support for both ASCII and UNICODE support into task manager has been dropped.
I would like that you try to review your opinion on such changes.
Me too, I want final builds of executables in unicode format.
I think to know almost all advantages of international support.
However, I also believe that you should not see the ASCII support as something to throw out of the window, but as a chance, because not all applications in the world are compiled as unicode, so having something to test the ASCII implementation included into ROS is not a so bad idea.
As I said, it is a chance for testing.
Some of the work here seems derived from wine, but probably (or better: surely) people behind wine had to face to the problem called "debugging" before they got something stable.
A closed-source application may not work, but at least there is a chance (perhaps minimal or even less) to replicate a bug into one of the applications available to us.
Technically, it isn't a problem for me to make things working on win9x, since I just need to link to UNICOWS.DLL and the problem is almost solved.
I just don't like very much that position.
And I also understand that my opinion isn't important at all in front of your decisions or the ReactOS standard.
Sincerely,
Carlo Bramini.
I have no idea on what is being prepared or planned, nor i do not need any
mean for translating RC files online. My only concern is for easier control
of localisation for a given language, so i dont have to manually check every
single one of the rc files.
Best regards
To all!
A monumental mile stone was crossed today at 2000z 05/11/2007.
ReactOS is now a true GUI/OS. Thread batching is functional and tested good.
Solitaire was the program and it only ran once, the function was SetBrushOrgEx.
Thanks goes out to all of you and my excitement is the fun I am having working
with all of you with this project. Sorry for things said in the past and knowing
in all good intentions you all did your best to bring this project to this point.
Thanks!
James
PS: Keep coding! and go back to work!
As some of you may know I have been working in rbuild on my own branch
(http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/) for the last
two weeks.
I will summarize my most important changes here so anyone can give me their
opinion:
- Created a new concept "the cd bootstrap folder" . The cd bootstrap folder
is a user customizable folder in the cd's root that defaults to the current
build architecture for example i386 o ppc.
- Modifed the InstallBase from the BootStrap element to be relative to the
bootstrap folder, for example the usetup
bootstrap:
<bootstrap installbase="system32" nameoncd="smss.exe" />
will be created in :
(CD)\i386\system32\smss.exe on a I386 build and
(CD)\ppc\system32\smss.exe on a powerpc build
- Introduced a new element "bootstrapfile" equivalent to the bootstrap for
module target but applied to regular files for
example :
<bootstrapfile>hivecls.inf</bootstrapfile>
will be placed in :
(CD)\i386\hivecls.inf on a I386 build and
(CD)\ppc\hivecls.inf on a powerpc build
With these changes we will be able to place complete installation for more
than one architecture in the same cd .Only one of the architectures will be
able to
be booted by default but we can include the cdmake utility + some .bat files
in a (CD)\tools folder so the user can download the official CD with all
supported architectures and create a bootable boot CD for a particular
architecture. cool huh?
- Experimental support to autogenerate rsrc.rc equivalent and platform
dependent manifest.xml to intermediate folder
- Add preliminary support to track
authors/contributors/developers/translators for each module. It can be
useful to autogenerate uptodate \CREDITS file , module/authors reports (see
for example: http://www.codexchange.net/rosdoc/authors.htm or
http://www.codexchange.net/rosdoc/eventvwr.htm) or even source code for
modules like notevil
- Autogenerate CREDITS file in intermediate folder (for now)
- Declarative module localizations : Now module localizations are created in
a declarative way which makes trivial tasks like listing non existent or
outdated language localizations in real time for example :
http://www.codexchange.net/rosdoc/localizations.htm
Let me know your opinions and suggestions as I would like to start finishing
some of this features and merge all/part of my changes back to trunk
note: The produced iso images won't boot due to relocation of the \loader
folder. boot/freeldr/bootsect/isoboot.asm and isobtrt.asm will have to be
modified to search \i386\loader .Probably also setuldr.sys will have to be
modified.
/Marc
On Oct 28, 2007, at 5:13 PM, gbrunmar(a)svn.reactos.org wrote:
> - DPRINT("CreateNamedPipeW() done\n");
> + DPRINT1("CreateNamedPipeW(%S) done\n", NtControlPipeName);
Success reports should usually remain DPRINT, so that they don't
pollute the debug log.
WBR,
Aleksey Bragin.
Hi,
"reactos" should have only bare minimum, so I agree about 1 gdi and 1
opengl. Other must be moved to rosapps.
WBR,
Aleksey Bragin.
On Oct 28, 2007, at 2:32 AM, Colin Finck wrote:
> Hello everyone,
>
> Now that we have 5 screensavers in trunk, and they are all in the
> "reactos"
> directory, it might be a good idea to move some of them to "rosapps".
> The big question is now: Which ones shall be kept in "reactos" and
> which
> ones shall be moved to "rosapps"?
>
>> From the technical view, it's probably the best idea to keep one
>> OpenGL and
> one GDI screensaver in "reactos" (for example 3dtext and logon).
> Please share your ideas about that.
>
> Regards,
>
> Colin
Hello everyone,
Now that we have 5 screensavers in trunk, and they are all in the "reactos"
directory, it might be a good idea to move some of them to "rosapps".
The big question is now: Which ones shall be kept in "reactos" and which
ones shall be moved to "rosapps"?
>From the technical view, it's probably the best idea to keep one OpenGL and
one GDI screensaver in "reactos" (for example 3dtext and logon).
Please share your ideas about that.
Regards,
Colin
Alex Ionescu wrote:
>>> 1) Why implement new, complex features in the kernel instead of
>>> fixing current bugs?
>>
>> You pay, you get a saying in what I work on. I pay, I decide.
>
>No, this is an open source project, everyone gets a say on what you
>work on -- you're free to ignore such sayings at your leisure.
Seems I was too imprecise (or again a language
barrier/misunderstanding). Sorry. My intention was to communicate that
if you pay, you get the option of (trying to) tell me what to work on.
When I pay, I decide. Obviously anyone is at any time free to comment.
>The quota code is called by the process functions, and maybe even by
>drivers, but it doesn't affect their behavior.
I'm going out on a limb here (as I haven't checked it), but can't a
JOB (artificially) limit available resources? That's part of their
intention, isn't it? (please read on)
>Two choices:
>
>1) Implement a rather complex quota implementation, including commit
>charges in Mm (which is several thousand lines of code in NT),
I knew I got into a rather large area, but this sounds insane for
something as seemingly "simple".
> to a fragile kernel
If it's that fragile it needs to be fixed. If you got a better idea to
do it than implementing previously missing functionality to expose
those fragile parts of it, especially as what I started to work on
apparently exposed those fragile parts, I'm all ears.
> &
> Use up a valuable developer's time, probably a couple man-weeks
Should that be how I chose to spend my time - what's the difference if
I hadn't been around at all? None, except the end result might make
Win32 GlobalMemoryStatus and VM_COUNTERS present useful and usable
data.
> &
> Add new bugs to a hot path during process/object creation/
>deletion (I hope you'll agree all new code has bugs)
Only by convention, not by definition. :-)
>OR
>
>2) Continue working on bug fixing the fragile parts of the kernel and
>OS || Implement critical missing functionality for a target driver/
>application &
This actually started as fixing critical missing functionality (Wax:
feel free to chime in). Currently ROS does not COMMIT on such
allocation requests. It happily allows an exe in a 128MB machine with
32MB pagefile to COMMIT almost 2GB memory.
The error is of course in the way ROS handles COMMIT requests to
VirtualAlloc, in that it defers committing the memory until something
touches it... (that is no joke)
The first step to research this was (for me) to see the behaviour of
GlobalMemoryStatus, and indeed it was broken - it was unimplemented...
So what do I do? I "dig where I stand". I start an attempt implementing
the missing functionality.
So the reason I came to touch Ps, and am digging way deeper in Mm than
I'd really like to, is simply the GlobalMemoryStatus(Ex) Win32 API
function(s), to even be able to verify, from user-mode, behaviour.
[...]
>> On a sidenote, the only public reference to PS_QUOTA_TYPE I could
find
>> were from a PDB file transcript from ntdll, posted at a french
site.
>
>It should be added to the NDK.
Agreed. But as I didn't know if that's still your baby (SVN access or
not) and only synched at intervals, or if it has been "adopted", and if
adding such data types, even if suspected to be correct, from such few
and vague information source was even acceptable... I played it safe
and used just the indices. Thanks for sharing the typename.
If concensus is that adding that data type introduces no problems,
even if from such a vague source, I'm in favor of adding it (as it'd
solve more than one immediate problem).
>>> 7) The quota routines require interlocks
>>
>> Yep. Even requires a lock for checking and updating QuotaPeak.
>
>No it doesn't, you can use Interlocked Compare Exchange.
Are you thinking of the, semantically non-obvious for maintenance
programmers,
OldVal = Interlocked*Add(&Quota, Addend);
InterlockedCompareExchange(&Peak, OldVal + Addend, OldVal + Addend);
?
I think using a spinlock for that would make it much more obvious.
Should profiling display it had a measurable impact on execution, sure.
But we should also keep in mind we are then trading a single spinlock
for two *locked* (bus-snooping/cache-invalidating) instructions. I
don't know which is worse (performance wise).
>>> 8) They also require a global spinlock in the "give back" case.
>>
>> I don't follow. Why? I'd imagine the "give back" case to be simpler
>> than the charge case, as the former only needs to decrement the
usage
>> (InterlockedExchangeAdd with a negative value), while the latter
needs
>> to increment, followed by comparing with and possibly update Peak.
>
>The global spinlock is required when inserting new quota blocks,
>dereferencing them, expanding the quota and giving back the quota.
Ah, right... the quota blocks. As already displayed I didn't touch
them (I honestly don't even know what they are for yet). I only looked
at the (immediate) process quota entries. The linked lists I never
touched.
>I still disagree with trunk-is-a-playground
I have never disagreed with that, so I'm not sure what you're
referring to.
>and I think that pseudo-code should go in branches, but you're free
to disagree.
I suggest you take that discussion with the project coordinator, that
I cleared that diff with and he explicitly stated a preference for it
even after I mentioned "branch".
I disagree with you re. comments. I think pseudo-code in comments (in
trunk even) is to prefer, as it can explain behaviours and intentions
way better than plain english or even documentation. If those comments
help maintenance-programmers ten or more years from now, even if only
one single person, the comments were well spent time and place.
--
Mike
Alex Ionescu wrote:
> 1) Why implement new, complex features in the kernel instead of
> fixing current bugs?
You pay, you get a saying in what I work on. I pay, I decide.
> I had already written all these functions, but deleted them,
Wasn't that a bonehead thing to do?
> because nobody needed them,
... at the time.
> and the Mm part was too complex to do.
Guess what; I'm currently trying to actually implement it for Mm.
Ps was a first step in that direction.
Yes, Mm is complex, and yes I don't understand it enough yet - not
by a longshot. But checking in incremental improvements, so that
the code doesn't get lost, and disabled by default to not affect
the behaviour of trunk - that's a good thing. It means people can
both review and test the incremental changes, and perhaps even
suggest improvements - like you did in pt. 5 below.
> 2) Why are you bothering with PspPoolQuotaIndexFromPoolType?
Ignorance of:
> In case you haven't noticed, there's something called pool masks
PAGED_POOL_MASK. Got it.
> 5) Instead of duplicating code, perhaps consider calling a main
> worker function such as PspChargeQuota?
A sound refactoring suggestion.
> 6) Consider using an enum instead of magic numbers inside the
> quota entries, I believe it's called PS_QUOTA_TYPE.
I just followed the lead of existing code. Had there been any mention
of an enumeration for nonpaged, paged and pagefile, I would obviously
have used those names.
On a sidenote, the only public reference to PS_QUOTA_TYPE I could find
were from a PDB file transcript from ntdll, posted at a french site.
> 7) The quota routines require interlocks
Yep. Even requires a lock for checking and updating QuotaPeak.
> 8) They also require a global spinlock in the "give back" case.
I don't follow. Why? I'd imagine the "give back" case to be simpler
than the charge case, as the former only needs to decrement the usage
(InterlockedExchangeAdd with a negative value), while the latter needs
to increment, followed by comparing with and possibly update Peak.
> 9) Committing code that won't even build, even with the define on,
> isn't very appropriate.
I agree.
> If someone wants to actually test this, they won't be able to build
it
That's an interesting statement. Care to elaborate on how you reached
such a factually wrong conclusion?
> because of things like "refuse"
Some people prefer pseudo-code over nothing at all. Some prefer void.
Some people are able to spot C comment blocks. Some are not.
Me, I checked that in with both the approval and a statement of
preference for this kind of committs by the project coordinator.
It not only compiles, it partially works too.
> SVN should contain code that builds at any time. It's
> not hard to write /* TODO */..
You really need (new?) glasses. You even quoted it yourself!
"/* TODO: Check with Process->QuotaBlock if this can be satisfied, */"
--
Mike
Alex Ionescu wrote:
> Windows uses the FILE_READ_DATA flag here, not FILE_READ_ATTRIBUTES.
Yes? And?
Let's study the code and the open modes used here.
This code tries to open Device\HarddiskN\Partition0 (N = 0 ...) for
the
sole purpose of checking for availability, and immediately close the
handle if the open succeeded.
Why would one use FILE_READ_DATA if one never intended to read
anything?
The code also uses SYNCHRONIZE. Why would one use SYNCHRONIZE if one
never
intended to wait on the handle?
As I see it, that's just requesting extra work for the purpose of
nothing.
The purpose of that open call is only to see if the disk exists, and
if
so create the symbolic link PhysicalDriveN -> HarddiskN\Partition0.
I don't buy "Windows does this" without backing it up with any
arguments whatsoever as to why Windows does this. Perhaps Windows does
more with the returned handle than immediately closing it, something
that actually requires READ_DATA?
> all this is doing is hiding the bug (which is somewhere in vfat)
I'm looking forward to the explanation of how opening
HarddiskN\Partition0 (not "Partition1", not "Partition1\", but
"Partition0" - aka the whole disk) would involve any filesystem
activity whatsoever?
> Because it's now gone, it'll probably happen in some mysterious
> application 2 years from now and nobody will know why.
Hahaha, you really are a joker. An app? Calling
xHalIoAssignDriveLetters, that is called with a frickin' LoaderBlock?
That function is used exactly once, during system startup.
Health reasons suggest not holding your breath while waiting for such
an application. :-)
--
Mike
Windows uses the FILE_READ_DATA flag here, not FILE_READ_ATTRIBUTES.
Silencing a warning does not mean fixing it -- all this is doing is
hiding the bug (which is somewhere in vfat) in a place that's quite
exposed. Because it's now gone, it'll probably happen in some
mysterious application 2 years from now and nobody will know why.
--
Best regards,
Alex Ionescu
On 20-Oct-07, at 3:36 AM, mnordell(a)svn.reactos.org wrote:
> Author: mnordell
> Date: Sat Oct 20 11:36:17 2007
> New Revision: 29702
>
> URL: http://svn.reactos.org/svn/reactos?rev=29702&view=rev
> Log:
> Don't try to open a harddisk for reading when checking for it to
> create the PhysicalDriveN links. Instead, request
> FILE_READ_ATTRIBUTES. This silences a hack-warning in
> IopParseDevice, that now possibly can be removed.
>
> Modified:
> trunk/reactos/ntoskrnl/fstub/disksup.c
> trunk/reactos/ntoskrnl/io/iomgr/file.c
>
> Modified: trunk/reactos/ntoskrnl/fstub/disksup.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/
> fstub/disksup.c?rev=29702&r1=29701&r2=29702&view=diff
> ======================================================================
> ========
> --- trunk/reactos/ntoskrnl/fstub/disksup.c (original)
> +++ trunk/reactos/ntoskrnl/fstub/disksup.c Sat Oct 20 11:36:17 2007
> @@ -481,7 +481,7 @@
> NULL);
>
> Status = ZwOpenFile(&FileHandle,
> - FILE_READ_DATA | SYNCHRONIZE,
> + FILE_READ_ATTRIBUTES | SYNCHRONIZE,
> &ObjectAttributes,
> &StatusBlock,
> FILE_SHARE_READ,
>
> Modified: trunk/reactos/ntoskrnl/io/iomgr/file.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/
> iomgr/file.c?rev=29702&r1=29701&r2=29702&view=diff
> ======================================================================
> ========
> --- trunk/reactos/ntoskrnl/io/iomgr/file.c (original)
> +++ trunk/reactos/ntoskrnl/io/iomgr/file.c Sat Oct 20 11:36:17 2007
> @@ -404,6 +404,9 @@
>
> /* FIXME: Small hack still exists, have to check why...
> * This is triggered multiple times by usetup and then once
> per boot.
> + * TMN: NOTE: It might have been fixed now, by changing the
> requested
> + * openmode in xHalIoAssignDriveLetters from FILE_READ_DATA to
> + * FILE_READ_ATTRIBUTES. If verified, this hack should be
> removed.
> */
> if (!(DirectOpen) &&
> !(RemainingName->Length) &&
>
>
Couple of comments:
1) Why implement new, complex features in the kernel instead of
fixing current bugs? I know it's fun to start hacking on new code,
but priorities should be to implement stuff that's required not to
break other apps/add functionality, not internal features which will
take ages to implement (the Ps functions for quota are "easy", it's
the Mm part that's bad).
I had already written all these functions, but deleted them, because
nobody needed them, and the Mm part was too complex to do.
2) Why are you bothering with PspPoolQuotaIndexFromPoolType? In case
you haven't noticed, there's something called pool masks which make
the operation very easy without requiring a function call (such as
POOL_TYPE_MASK or BASE_POOL_MASK, forgot how it's called).
3) INT is not an acceptable kernel type.
4) We don't use "static" in the kernel.
5) Instead of duplicating code, perhaps consider calling a main
worker function such as PspChargeQuota?
6) Consider using an enum instead of magic numbers inside the quota
entries, I believe it's called PS_QUOTA_TYPE.
7) The quota routines require interlocks, otherwise they will not be
thread safe.
8) They also require a global spinlock in the "give back" case.
9) Committing code that won't even build, even with the define on,
isn't very appropriate. Trunk isn't a playground. If someone wants to
actually test this, they won't be able to build it because of things
like "refuse". SVN should contain code that builds at any time. It's
not hard to write /* TODO */..
Just my 2 cents
--
Best regards,
Alex Ionescu
On 23-Oct-07, at 6:05 AM, mnordell(a)svn.reactos.org wrote:
> Author: mnordell
> Date: Tue Oct 23 14:05:40 2007
> New Revision: 29826
>
> URL: http://svn.reactos.org/svn/reactos?rev=29826&view=rev
> Log:
> First small attempt at implementing process memory quota. Currently
> disabled without explicit code modification (enabled by macro) to
> not modify behaviour of trunk.
>
> Modified:
> trunk/reactos/ntoskrnl/ps/quota.c
>
> Modified: trunk/reactos/ntoskrnl/ps/quota.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/
> quota.c?rev=29826&r1=29825&r2=29826&view=diff
> ======================================================================
> ========
> --- trunk/reactos/ntoskrnl/ps/quota.c (original)
> +++ trunk/reactos/ntoskrnl/ps/quota.c Tue Oct 23 14:05:40 2007
> @@ -15,6 +15,12 @@
>
> EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock;
>
> +
> +/* Define this macro to enable quota code testing. Once quota code
> is */
> +/* stable and verified, remove this macro and checks for it. */
> +/*#define PS_QUOTA_ENABLE_QUOTA_CODE*/
> +
> +
> /* FUNCTIONS
> ***************************************************************/
>
> VOID
> @@ -66,9 +72,29 @@
> {
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return STATUS_SUCCESS;
> -
> +
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + if (Process)
> + {
> + /* TODO: Check with Process->QuotaBlock if this can be
> satisfied, */
> + /* assuming this indeed is the place to check it. */
> + /* Probably something like:
> + if (Process->QuotaUsage[2] + Amount >
> + Process->QuotaBlock->QuotaEntry[2].Limit)
> + {
> + refuse
> + }
> + */
> + Process->QuotaUsage[2] += Amount;
> + if (Process->QuotaPeak[2] < Process->QuotaUsage[2])
> + {
> + Process->QuotaPeak[2] = Process->QuotaUsage[2];
> + }
> + }
> +#else
> /* Otherwise, not implemented */
> UNIMPLEMENTED;
> +#endif
> return STATUS_SUCCESS;
> }
>
> @@ -115,6 +141,38 @@
> return PsChargeProcessPoolQuota(Process, PagedPool, Amount);
> }
>
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> +/*
> + * Internal helper function.
> + * Returns the index of the Quota* member in EPROCESS for
> + * a specified pool type, or -1 on failure.
> + */
> +static
> +INT
> +PspPoolQuotaIndexFromPoolType(POOL_TYPE PoolType)
> +{
> + switch (PoolType)
> + {
> + case NonPagedPool:
> + case NonPagedPoolMustSucceed:
> + case NonPagedPoolCacheAligned:
> + case NonPagedPoolCacheAlignedMustS:
> + case NonPagedPoolSession:
> + case NonPagedPoolMustSucceedSession:
> + case NonPagedPoolCacheAlignedSession:
> + case NonPagedPoolCacheAlignedMustSSession:
> + return 1;
> + case PagedPool:
> + case PagedPoolCacheAligned:
> + case PagedPoolSession:
> + case PagedPoolCacheAlignedSession:
> + return 0;
> + default:
> + return -1;
> + }
> +}
> +#endif
> +
> /*
> * @implemented
> */
> @@ -124,10 +182,32 @@
> IN POOL_TYPE PoolType,
> IN ULONG Amount)
> {
> + INT PoolIndex;
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return STATUS_SUCCESS;
>
> - UNIMPLEMENTED;
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + PoolIndex = PspPoolQuotaIndexFromPoolType(PoolType);
> + if (Process && PoolIndex != -1)
> + {
> + /* TODO: Check with Process->QuotaBlock if this can be
> satisfied, */
> + /* assuming this indeed is the place to check it. */
> + /* Probably something like:
> + if (Process->QuotaUsage[PoolIndex] + Amount >
> + Process->QuotaBlock->QuotaEntry[PoolIndex].Limit)
> + {
> + refuse
> + }
> + */
> + Process->QuotaUsage[PoolIndex] += Amount;
> + if (Process->QuotaPeak[PoolIndex] < Process->QuotaUsage
> [PoolIndex])
> + {
> + Process->QuotaPeak[PoolIndex] = Process->QuotaUsage
> [PoolIndex];
> + }
> + }
> +#else
> + UNIMPLEMENTED;
> +#endif
> return STATUS_SUCCESS;
> }
>
> @@ -140,10 +220,26 @@
> IN POOL_TYPE PoolType,
> IN ULONG_PTR Amount)
> {
> + INT PoolIndex;
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return;
>
> - UNIMPLEMENTED;
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + PoolIndex = PspPoolQuotaIndexFromPoolType(PoolType);
> + if (Process && PoolIndex != -1)
> + {
> + if (Process->QuotaUsage[PoolIndex] < Amount)
> + {
> + DPRINT1("WARNING: Process->QuotaUsage sanity check
> failed.\n");
> + }
> + else
> + {
> + Process->QuotaUsage[PoolIndex] -= Amount;
> + }
> + }
> +#else
> + UNIMPLEMENTED;
> +#endif
> }
>
> /*
> @@ -157,7 +253,11 @@
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return;
>
> - UNIMPLEMENTED;
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + PsReturnPoolQuota(Process, NonPagedPool, Amount);
> +#else
> + UNIMPLEMENTED;
> +#endif
> }
>
> /*
> @@ -171,7 +271,11 @@
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return;
>
> - UNIMPLEMENTED;
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + PsReturnPoolQuota(Process, PagedPool, Amount);
> +#else
> + UNIMPLEMENTED;
> +#endif
> }
>
> NTSTATUS
> @@ -182,8 +286,22 @@
> /* Don't do anything for the system process */
> if (Process == PsInitialSystemProcess) return STATUS_SUCCESS;
>
> +#ifdef PS_QUOTA_ENABLE_QUOTA_CODE
> + if (Process)
> + {
> + if (Process->QuotaUsage[2] < Amount)
> + {
> + DPRINT1("WARNING: Process PageFileQuotaUsage sanity
> check failed.\n");
> + }
> + else
> + {
> + Process->QuotaUsage[2] -= Amount;
> + }
> + }
> +#else
> /* Otherwise, not implemented */
> UNIMPLEMENTED;
> +#endif
> return STATUS_SUCCESS;
> }
>
>
>
Hi!
Good job! But this is all kinds of type of wrong! There are internal calls for win32k dc.c
and dcutils.c in there. What you should have done was move the DC object structure to ntgdihdl.h.
So, please revert or but back dc.h and then move the DC object to ntgdihld.h where it belongs.
Thanks,
James
Hi!
What was the revision for the floppy driver that made it inoperative?
You told me on IRC. I did not take my notes to work.
> Hello,
>
> I think that 0.3.4 should have most hardware regressions (floppy and
> vga) fixed. I know I'm not the one to say this but, we are already
> closer to this goal than we were with 0.3.3. Fixing the floppy
> regression should only involve finding the spot in which floppy is not
> reporting correctly to ntoskrnl. I did some tests on this issue and it
> fails on line 596-598 of ntoskrnl\io\iomgr\volume.c and floppy was never
> mounted as the status reported was STATUS_IO_DEVICE_ERROR from line
> 1017-1021 in drivers\storage\floppy\floppy.c. I don't know much about
> the vga regression but I'd think that it may only require a few days
> work to find and fix the issue. We already have SATA support included
> with trunk (uniata.sys) and SCSI is also working now.
>
> -aicommander
>
Thanks,
James
These resources have been lifted straight out of the Windows dll.
Absolutley no attempt has been made to change anything.
IMO, this should be removed until someone manually implements it.
Ged.
fireball(a)svn.reactos.org wrote:
> Author: fireball
> Date: Sat Oct 20 21:16:30 2007
> New Revision: 29714
>
> URL: http://svn.reactos.org/svn/reactos?rev=29714&view=rev
> Log:
> Dmitry Chapyshev <lentind(a)yandex.ru>
> - Fully implement tapiui.dll, compatible with Windows.
> - Icons come from SUSE's yast2-industrial; 203,202.ico and 301,302.bmp are done by me based on Tango
>
>
>
Hello,
I think that 0.3.4 should have most hardware regressions (floppy and
vga) fixed. I know I'm not the one to say this but, we are already
closer to this goal than we were with 0.3.3. Fixing the floppy
regression should only involve finding the spot in which floppy is not
reporting correctly to ntoskrnl. I did some tests on this issue and it
fails on line 596-598 of ntoskrnl\io\iomgr\volume.c and floppy was never
mounted as the status reported was STATUS_IO_DEVICE_ERROR from line
1017-1021 in drivers\storage\floppy\floppy.c. I don't know much about
the vga regression but I'd think that it may only require a few days
work to find and fix the issue. We already have SATA support included
with trunk (uniata.sys) and SCSI is also working now.
-aicommander
Hi there,
i am thinking of porting ros to the L4 micro-kernel as topic for my
diploma thesis. The operating systems group in Dresden already ported
Linux to L4 (http://os.inf.tu-dresden.de/L4/LinuxOnL4/) and proofed
that L4 offers all that is needed to run an operating system in
userspace on top of it.
The goal of the work would be to be able to run windows applications
next to miro-kernel applications. And to compare the performance with
that of pure ros, L4Linux/wine and windows. A comparison between the
port and L4Linux could also be part of the work. (mapping processes to
L4 tasks, memory management, interrupt-handling and so on)
I am not very experienced in C or assembler programming but am
motivated to learn. But before i start working on that topic i have
some questions on the portability of ros.
In svn and on the ros website i found that there is a ppc port of ros.
And on irc someone told me that there is ongoing work on a ros usermode
port. I also read about a xen port. But i did not yet find working
copies of the any of that ports. I built ros for i386 on my
machine and was able to boot it in vmware. I also tried building the
latest svn version with ROS_ARCH=powerpc but that did not succeed.
1. Did anyone ever finish a port to another arch?
2. How portable is ros in general? Meaning how much code would have to
be changed. I hope there are abstractions and only 10-15% of the kernel
would have to be changed.
3. Do you believe that one person new to ros can finish that kind of
work in 6 months? I know that might be hard to answer but how long did
any of you need to learn ros in detail?
4. If there are working ports, how long did it take to implement them?
If there are not, what are the reasons they where never finished? I am
thinking of lots of assembler and i386 hacks.
5. Finally, what do think of the idea itself?
I hope you take the time to answer my questions. I am still on the way
to determine whether i really want to do that and whether i can do this
in 6 months.
regards,
Henning Schild
Hello,
after updating to r29681, I cannot compile ROS.
The error is:
[WRC] obj-i386\base\applications\cacls\cacls.coff
output-i386\tools\wrc\wrc.exe: unknown option -- W
output-i386\tools\wrc\wrc.exe: unknown option -- n
output-i386\tools\wrc\wrc.exe: unknown option -- W
output-i386\tools\wrc\wrc.exe: unknown option -- p
Error: Too many output files.
mingw32-make: *** [obj-i386\base\applications\cacls\cacls.coff] Error 2
Sincerely,
Carlo Bramini
Hi Marc,
the patch / bug IS valid, Magnus made a mistake and closed it.
I wanted to do the same, but it's rather timeconsuming, so I
appreciate you took the first steps. Still, some modules may require
setting some specific version - that's allright, we can leave some
exceptions for now, but otherwise, version number should be set
globally, not in every .rbuild file (which is so wrong).
WBR,
Aleksey Bragin.
On Oct 19, 2007, at 2:53 AM, Marc Piulachs wrote:
> Hi,
>
> On the reactos frontpage I see that the project aims to reimplement
> WindowsXP , that is NT 5.2 , but currently most of the modules
> define their
> own target version ranging from NT4 to NT 5.3 (2003) .On recent
> shell32
> commits I have even seen someone introducing Vista-only APIs.
>
> I think an effort has to be done to fix that situation ,IMHO targeting
> multiple windows versions is fine but not a mix of them so I
> recently posted
> a bug report on mozilla to have it present at least.
> http://www.reactos.org/bugzilla/show_bug.cgi?id=2745 but It has
> been marked
> as invalid and I can't understand the reason given, I may be wrong
> about
> that but I'd like to know what I'm missing here, can anyone clarify?
>
> /Marc
Shouldn't it be finally fixed, instead?
I don't know who broke it. Was it Magnus with the "No PNP videocard"
commit?
WBR,
Aleksey Bragin.
On Oct 18, 2007, at 8:01 AM, mnordell(a)svn.reactos.org wrote:
> Author: mnordell
> Date: Thu Oct 18 08:01:53 2007
> New Revision: 29653
>
> URL: http://svn.reactos.org/svn/reactos?rev=29653&view=rev
> Log:
> Patch from aicommander. Actually copy uniata.sys from the
> installation media, and disable VGA resolution selection as VGA is
> broken.
> [Display]
> ;<id> = <user friendly name>,<spare>,<service key
> name>,<hight>,<width>,<bpp>
> -vga = "VGA Display (640x480x4)",,Vga,640,480,4
> +;vga = "VGA Display (640x480x4)",,Vga,640,480,4
It's in the User FAQ - third-last question, at the end of the answer it
says:
"Other virtual machines/x86 emulators should be able to run ReactOS as
well, and ReactOS is known to run in at least Bochs, VMWare, VirtualPC
and QEMU. If you know of other virtual machines that support it, please
send an e-mail to the ros-dev mailing list."
I didn't see any mention of it in the recent archives of the mailing
list, so I thought I'd mention it.
Sorry if I misunderstood. Perhaps I'll try out the other emulation
tools, though I've found VirtualBox in general to be very easy to use.
Regards,
Mike
Zachary Gorden wrote:
>First, which FAQ?
>
>Second, I'll talk with Colin about it. Some of the devs don't like >vbox,
>but so long as we can get it to work, it's more or less up to the >release
>engineers and Aleksey what vm images to release.
>
>Z98
>Release Engineer (secondary)
>
Hello list,
As recommended in the FAQ, I thought I'd mention that I gave ReactOS a
try as a virtual machine using VirtualBox (http://www.virtualbox.org),
and it seems to work okay. It wouldn't be too difficult to post a
VirtualBox virtual disk image file, though it only took a couple minutes
to setup from the installation CD image.
I'd like to know if anyone else has given it a try though, as I had some
stability problems (random freezes, etc.).
I look forward to the future releases of ReactOS.
Regards,
Mike
This is a hack that shouldn't be there. This is csrss' responsibility.
- Thomas
tkreuzer(a)svn.reactos.org wrote:
> Author: tkreuzer
> Date: Tue Oct 16 02:23:42 2007
> New Revision: 29617
>
> URL: http://svn.reactos.org/svn/reactos?rev=29617&view=rev
> Log:
> If cmd was started from a shortcut, use the shortcut's name as window title, else use executable name, like on windows. Doesn't work on ros atm, due to bug 2743, but works on win XP. So if'ed out atm.
>
> Modified:
> trunk/reactos/base/shell/cmd/cmd.c
>
> Modified: trunk/reactos/base/shell/cmd/cmd.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/cmd.c?rev=2…
> ==============================================================================
> --- trunk/reactos/base/shell/cmd/cmd.c (original)
> +++ trunk/reactos/base/shell/cmd/cmd.c Tue Oct 16 02:23:42 2007
> @@ -1603,6 +1603,53 @@
> }
> #endif
>
> +void
> +InitTitle()
> +{
> + STARTUPINFOW StartupInfo;
> + LPWSTR lpFileName;
> + WCHAR szTitle[MAX_PATH+1];
> +
> + GetStartupInfoW(&StartupInfo);
> +
> + if (StartupInfo.lpTitle)
> + {
> + /* Are we started from a shortcut? */
> + if (StartupInfo.dwFlags & 0x800)
> + {
> + UINT len;
> +
> + /* We are started from a shortcut, use the file name only */
> + lpFileName = wcsrchr(StartupInfo.lpTitle, '\\');
> + if (lpFileName == NULL)
> + {
> + lpFileName = StartupInfo.lpTitle;
> + }
> +
> + /* Drop file extension, we simply assume 3 chars extension */
> + len = wcslen(lpFileName) - 4;
> + if (len > 0)
> + {
> + len = min(len, MAX_PATH);
> + wcsncpy(szTitle, lpFileName, len);
> + szTitle[len] = 0;
> + SetConsoleTitleW(szTitle);
> + return;
> + }
> + }
> +
> + /* Use lpTitle member of STARTUPINFO */
> + SetConsoleTitleW(StartupInfo.lpTitle);
> + return;
> + }
> +
> + /* Set executable path as window title */
> + GetModuleFileNameW(NULL, szTitle, MAX_PATH);
> + SetConsoleTitleW(szTitle);
> + return;
> +}
> +
> +
> /*
> * set up global initializations and process parameters
> *
> @@ -1625,6 +1672,11 @@
> osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
> GetVersionEx (&osvi);
>
> + /* FIXME: Doesn't work in ros yet, because of missing functionality of ShellExecute.
> + See bug 2743. Please unif as soon as it get's fixed. */
> +#if 0
> + InitTitle();
> +#endif
> /* Some people like to run ReactOS cmd.exe on Win98, it helps in the
> * build process. So don't link implicitly against ntdll.dll, load it
> * dynamically instead */
>
>
Hello,
Hervé added some Standard C library headers to the "include/crt" directory
in r29178.
Now some people noticed that these changes broke building ReactOS components
with MSVC using the ReactOS headers ("Debug - ReactOS headers" or "Release -
ReactOS headers" configuration).
I have some general doubts about these changes.
>From my knowledge, the headers added in this commit, are compiler-specific
and target-independent. You can easily see that they are specific to
GCC/mingw as for example "stdio.h" includes a "_mingw.h" file with
mingw-specific stuff.
"stdarg.h" even leads to compilation problems with non-GCC-compilers (like
MSVC), because it defines a type based on the __builtin_va_list type, and
this built-in type only exists for GCC.
In my opinion, this commit should be reverted.
This way every compiler will use its own Standard C library headers and MSVC
should be able to build ReactOS components using the ReactOS Win32 headers
again.
Regards,
Colin
Hi All!
(subsystems\win32\win32k\ntuser\windc.c:156) FREE DCATTR!!!! NOT DCE_WINDOW_DC!!!!! hDC-> 6010078
(subsystems\win32\win32k\objects\dc.c:2549) DC_FreeDC DC_ATTR 0x2d80000
(subsystems\win32\win32k\ntuser\windc.c:551) ENTER!!!!!! DCX_CACHE!!!!!! hDC-> 6010078
(subsystems\win32\win32k\ntuser\windc.c:272) Exit!!!!! DCX_CACHE!!!!!! hDC-> 6010078
(subsystems\win32\win32k\objects\dc.c:2549) DC_FreeDC DC_ATTR 0x1020000
(subsystems\win32\win32k\ntuser\windc.c:156) FREE DCATTR!!!! NOT DCE_WINDOW_DC!!!!! hDC-> 14010092
(subsystems\win32\win32k\objects\dc.c:2549) DC_FreeDC DC_ATTR 0x1030000
(subsystems\win32\win32k\ntuser\windc.c:551) ENTER!!!!!! DCX_CACHE!!!!!! hDC-> 14010092
(subsystems\win32\win32k\ntuser\windc.c:272) Exit!!!!! DCX_CACHE!!!!!! hDC-> 14010092
(subsystems\win32\win32k\ntuser\windc.c:551) ENTER!!!!!! DCX_CACHE!!!!!! hDC-> 14010092
(subsystems\win32\win32k\ntuser\windc.c:272) Exit!!!!! DCX_CACHE!!!!!! hDC-> 14010092
Problem, Two Window DCE with DC objects are created and used through out the whole system and the
ownership was passed to NULL for both DC objects. The dcattr, allocated and ownership belongs to the
original process. So when testing the dcattr in user mode, creates user exception faults.
DC object one: 6010078 and object two: 14010092.
The Fix:
First, I free the "non owned window (DCX_CACHE) DCE DC" dcattr before the DC is placed in
"inaccessible mode" so the ownership of the dcattr is not lost. All traces of ownership comes from
the DC handle information. Once it is set NULL it is lost.
Second, I display the "Enter" (GetDCx) and "Exit" (ReleaseDC) for non owned window DCE DC. I'm doing
this so I can trace it out.
and,,,....
For DCX_CACHE DCE: ENTER "Get" allocate a new dcattr for the current process. EXIT "Release" free
the dcattr for that process. Windows does something similar to this.
Here is the patches,,, The test is: click on the time clock at the bottom right. Click on adjust
time and date. There you go.... the Gdi patch allows access to the dcattr pen for the DCE DC now.
It works,,,,, Thanks, James
subsystems/win32/win32k:
Index: ntuser/windc.c
===================================================================
--- ntuser/windc.c (revision 29544)
+++ ntuser/windc.c (working copy)
@@ -153,6 +153,8 @@
}
else
{
+ DPRINT1("FREE DCATTR!!!! NOT DCE_WINDOW_DC!!!!! hDC-> %x\n", pDce->hDC);
+ DC_FreeDcAttr(pDce->hDC, NULL); // Free the dcattr!
DC_SetOwnership(pDce->hDC, NULL); // This hDC is inaccessible!
}
@@ -267,6 +269,9 @@
dce->DCXFlags |= DCX_DCEEMPTY;
}
}
+ DPRINT1("Exit!!!!! DCX_CACHE!!!!!! hDC-> %x \n", dce->hDC);
+ DC_FreeDcAttr(dce->hDC, NULL); // Free the dcattr!
+ DC_SetOwnership(dce->hDC, NULL);
}
return 1;
}
@@ -543,6 +548,14 @@
DceUpdateVisRgn(Dce, Window, Flags);
}
+ if (Dce->DCXFlags & DCX_CACHE)
+ {
+ DPRINT1("ENTER!!!!!! DCX_CACHE!!!!!! hDC-> %x\n", Dce->hDC);
+ DC_SetOwnership( Dce->hDC, PsGetCurrentProcess());
+ DC_AllocateDcAttr( Dce->hDC, NULL);
+ DCU_SynchDcAttrtoUser( Dce->hDC, -1); // Copy data from dc to dcattr
+// Dce->pProcess = PsGetCurrentProcess();
+ }
return(Dce->hDC);
}
dll/win32/gdi32:
Index: dc.c
===================================================================
--- dc.c (revision 29544)
+++ dc.c (working copy)
@@ -320,7 +320,7 @@
STDCALL
GetDCObject( HDC hDC, INT iType)
{
-#if 0
+//#if 0
if((iType == GDI_OBJECT_TYPE_BRUSH) ||
(iType == GDI_OBJECT_TYPE_EXTPEN)||
(iType == GDI_OBJECT_TYPE_PEN) ||
@@ -348,7 +348,7 @@
}
return hGO;
}
-#endif
+//#endif
return NtGdiGetDCObject( hDC, iType );
}
Hi,
what I can tell right away, is that it's a very interesting, suitable
for diploma thesis work, but it's a challenge. You should posses
general knowledge about operating systems development, and more
specific knowledge about NT-based kernels, L4, and Linux.
The only problem may be
> I am not very experienced in C or assembler programming but am
> motivated to learn. But before i start working on that topic i have
but that could be compensated by outstanding OS dev skills /
architecture knowledge.
From the side of ReactOS Development Team, I'm sure you will have
support in terms of either visiting the irc-channel #reactos on
freenode or asking questions in this mailing list.
WBR,
Aleksey Bragin.
On Oct 10, 2007, at 3:08 PM, Henning Schild wrote:
> Hi there,
>
> i am thinking of porting ros to the L4 micro-kernel as topic for my
> diploma thesis. The operating systems group in Dresden already ported
> Linux to L4 (http://os.inf.tu-dresden.de/L4/LinuxOnL4/) and proofed
> that L4 offers all that is needed to run an operating system in
> userspace on top of it.
>
> The goal of the work would be to be able to run windows applications
> next to miro-kernel applications. And to compare the performance with
> that of pure ros, L4Linux/wine and windows. A comparison between the
> port and L4Linux could also be part of the work. (mapping processes to
> L4 tasks, memory management, interrupt-handling and so on)
>
> I am not very experienced in C or assembler programming but am
> motivated to learn. But before i start working on that topic i have
> some questions on the portability of ros.
>
> In svn and on the ros website i found that there is a ppc port of ros.
> And on irc someone told me that there is ongoing work on a ros
> usermode
> port. I also read about a xen port. But i did not yet find working
> copies of the any of that ports. I built ros for i386 on my
> machine and was able to boot it in vmware. I also tried building the
> latest svn version with ROS_ARCH=powerpc but that did not succeed.
>
> 1. Did anyone ever finish a port to another arch?
> 2. How portable is ros in general? Meaning how much code would have to
> be changed. I hope there are abstractions and only 10-15% of the
> kernel
> would have to be changed.
> 3. Do you believe that one person new to ros can finish that kind of
> work in 6 months? I know that might be hard to answer but how long did
> any of you need to learn ros in detail?
> 4. If there are working ports, how long did it take to implement
> them?
> If there are not, what are the reasons they where never finished? I am
> thinking of lots of assembler and i386 hacks.
>
> 5. Finally, what do think of the idea itself?
>
> I hope you take the time to answer my questions. I am still on the way
> to determine whether i really want to do that and whether i can do
> this
> in 6 months.
>
> regards,
> Henning Schild
Why was I added to this?
Ask first! I can not do it all!
B^|
James
ReactOS.Bugzilla(a)www.reactos.org wrote:
> http://www.reactos.org/bugzilla/show_bug.cgi?id=2081
>
>
> amine48rz <amine48rz(a)gmail.com> changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> AssignedTo|ros-bugs(a)reactos.org |jimtabor@adsl-64-217-116-
> | |74.dsl.hstntx.swbell.net
>
>
>
>
Hi!
ReactOS.Bugzilla(a)www.reactos.org wrote:
> http://www.reactos.org/bugzilla/show_bug.cgi?id=1172
> ------- Comment #16 From hpoussin 2007-10-08 10:44:44 CET -------
>
> The device has been detected by PCI bus, and (as you didn't had any popup for
> it), its driver has been found and probably installed.
> I fixed a bug in driver installation in r29441, maybe it will help.
> If it still doesn't work, can you enable debug output in
> dll/win32/setupapi/devinst.c and dll/win32/netcfgx/netcfgx.c?
>
Okay! Will do!
Since the bug report is closed, I guess we can work on the ML. I'll post my tests
results.
Thanks,
James
Ok, that's good then, no need to delete it. But moving to rosapps may
be a not bad idea (still including into the build).
WBR,
Aleksey Bragin.
On Oct 9, 2007, at 3:50 PM, Ged wrote:
> Aleksey Bragin wrote:
>> Is there a reason to keep the wordpad we have? Is it better,
>> worse, differences mergeable, etc?
>
> Our wordpad code is a great framework to build a much better, MDI
> implementation of Wordpad.
>
> I added it in the hope that any potential 'would-be' developers
> could use it
> as a learning project into the world of Win32. As it is no one has
> yet taken
> it up, which is a bit of shame.
>
> It can be taken out of the build and even moved to ros-apps, but it
> would be
> a shame to delete it completley, as someone might one day take up the
> challenge.
>
> Ged.
Is there a reason to keep the wordpad we have? Is it better, worse,
differences mergeable, etc?
WBR,
Aleksey Bragin.
On Oct 9, 2007, at 1:00 PM, gedmurphy(a)svn.reactos.org wrote:
> Author: gedmurphy
> Date: Tue Oct 9 13:00:56 2007
> New Revision: 29469
>
> URL: http://svn.reactos.org/svn/reactos?rev=29469&view=rev
> Log:
> add wine's wordpad as the default
Yes.
Either reverse engineer and write docs (which can be used by ReactOS
developers, provided they contain no source code derived from
disassembly), or reverse engineer and write test cases.
The latter method is [presumably] used by Wine developers, and it
provides a very good legal ground.
With the best regards,
Aleksey Bragin.
On Oct 9, 2007, at 5:12 AM, Josh H. wrote:
> Is it okay to reverse through disassembly as long as clean room
> methods
> are used(only writeing docs, not implementing it yourself)?
>
> http://www.computerworld.com/softwaretopics/software/appdev/story/
> 0,10801,65532,00.html
> http://en.wikipedia.org/wiki/Clean_room_design
Anyone wants to comment on this?
_____
From: Marc Piulachs [mailto:marc.piulachs@codexchange.net]
Sent: Saturday, October 06, 2007 10:24 PM
To: 'ros-dev(a)reactos.org'
Subject: rbuild problems/suggestions
Having worked with rbuild for a few weeks I have identified some problems
that would like to share. I also would like to hear the developers' opinions
about all of these issues because I want to start working to solving them.
A) The behavior of the "include" + "directory" tags are inconsistent when an
"include" is placed inside a "directory" for
example:
Correct: (expected : ke/i386/boot.S)
<directory name="ke">
<if property="ARCH" value="i386">
<directory name="i386">
<file
first="true">boot.S</file>
Incorrect: (expected : reactos/reactos.rbuild
real : reactos/reactos/reactos.rbuild)
<directory name="reactos">
<xi:include
href="reactos/reactos.rbuild" />
</directory>
should be:
<directory name="reactos">
<xi:include href="reactos.rbuild" />
</directory>
B) The "oldcrt" attribute is no longer used and can be removed.
C) The module types "Iso" , "LiveIso" , "IsoRegTest" and "LiveIsoRegTest"
are IMHO hacks introduced to be able use the makefile generation code.
rbuild is C++ so with a small code refactor they can be easly removed.
D) Any module is using the "EmbeddedTypeLib" module type , is really needed
or can be removed?
E) IMHO the "ElfExecutable" is incorrect . I posted my reasons some time
ago:
http://www.reactos.org/archives/public/ros-dev/2007-September/009770.htmlhttp://www.reactos.org/archives/public/ros-dev/2007-September/009771.htmlhttp://www.reactos.org/archives/public/ros-dev/2007-September/009779.html
F) The module type "alias" is only used for HAL related modules and IMHO it
isn't requiered because the problem it tries to
solve can be easly solved using "if" tags and conditional compilation.
http://www.reactos.org/archives/public/ros-dev/2007-September/009798.html
There are several reasons for this change:
- Currently every platform requires 3 new HAL modules. In the
future if new platforms are supported for example (X86 , XBOX , PPC , AMD64
, MIPS , IA64 , ARM ... ) 3 x 7 = 21 modules .. see what I'm saying?
- It simplifies backends work. No need to include logic for
alias handling.
- Conceptually wrong . every module represents a particular
functionality when you compile the module it should just reconfigure itself
to produce the appropriate image for the configured architecture .It a good
idea to have a true componentized operating system.
Regarding the ModuleType IMHO they should be used to provide information
that describes the module output/target not the build process! Iso , LiveIso
, Alias , ... all of them are meaningless they are not true metadata.
Long term enhancements:
X) tags like "linkerflag" or "compilerflag" are gcc/mingw specific and
should be replaced with other tags that provide the
equivalent functionality using a more abstract aproach so other
backends/compilers could benefit from it. rbuild files should
only describe the source code and the compilation process without including
specific information.
/Marc
Hello,
I got this error too... and I made a little disaster.
I got that message when writing into bug #2711.
I cleaned the off-line cache, I posted my message again, I got success but the message has been posted twice, because the previous message had been accepted despite the error screen.
Sorry...
Carlo Bramini
>I'm getting the same error since some time.
>
>But for me, it only occurs when hpoussin at reactos.org is >subscribed to the
>bug report (by being the bug reporter or by being on the CC >list). Sending
>notifications to other E-Mail addresses seems to work fine.
>Also only the E-Mail notification part is affected by this >problem, the
>other changes will be saved successfully.
>Using Deskzilla with such bug reports also leads to the same >problem.
>
>Regards,
>
>Colin
>
>
>> --- Original Message ---
> From: ros-dev-bounces at reactos.org [mailto:ros-dev-bounces at reactos.org] On
Behalf Of Marc Piulachs
>> Sent: Tuesday, October 02, 2007 5:11 PM
>> To: ros-dev at reactos.org
>> Subject: [ros-dev] Bugzilla error when sending notifications
>>
>> I'm getting this error when posting/modifying a bugreport
>>
>> Bugzilla has suffered an internal error. Please save this page and send it
to aleksey at reactos.org with details of what you were doing at the time this
message appeared.
>>
>> URL: http://www.reactos.org/bugzilla/process_bug.cgi
>>
>> There was an error sending mail from 'ReactOS.Bugzilla' to
'hpoussin at reactos.org':error when closing pipe to /usr/lib/sendmail:
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
I have started a techwiki inside our wiki. It can be found at
http://www.reactos.org/wiki/index.php/Techwiki/main
Currently only some stuff for win32k/gdi. Please add any info about nt
functionality / links / tools you'd like to share there.
I still think it would be a good idea to move it into it's own wiki, so
our wiki doesn't get even more messed up ;-)
Timo
Having worked with rbuild for a few weeks I have identified some problems
that would like to share. I also would like to hear the developers' opinions
about all of these issues because I want to start working to solving them.
A) The behavior of the "include" + "directory" tags are inconsistent when an
"include" is placed inside a "directory" for
example:
Correct: (expected : ke/i386/boot.S)
<directory name="ke">
<if property="ARCH" value="i386">
<directory name="i386">
<file
first="true">boot.S</file>
Incorrect: (expected : reactos/reactos.rbuild
real : reactos/reactos/reactos.rbuild)
<directory name="reactos">
<xi:include
href="reactos/reactos.rbuild" />
</directory>
should be:
<directory name="reactos">
<xi:include href="reactos.rbuild" />
</directory>
B) The "oldcrt" attribute is no longer used and can be removed.
C) The module types "Iso" , "LiveIso" , "IsoRegTest" and "LiveIsoRegTest"
are IMHO hacks introduced to be able use the makefile generation code.
rbuild is C++ so with a small code refactor they can be easly removed.
D) Any module is using the "EmbeddedTypeLib" module type , is really needed
or can be removed?
E) IMHO the "ElfExecutable" is incorrect . I posted my reasons some time
ago:
http://www.reactos.org/archives/public/ros-dev/2007-September/009770.htmlhttp://www.reactos.org/archives/public/ros-dev/2007-September/009771.htmlhttp://www.reactos.org/archives/public/ros-dev/2007-September/009779.html
F) The module type "alias" is only used for HAL related modules and IMHO it
isn't requiered because the problem it tries to
solve can be easly solved using "if" tags and conditional compilation.
http://www.reactos.org/archives/public/ros-dev/2007-September/009798.html
There are several reasons for this change:
- Currently every platform requires 3 new HAL modules. In the
future if new platforms are supported for example (X86 , XBOX , PPC , AMD64
, MIPS , IA64 , ARM ... ) 3 x 7 = 21 modules .. see what I'm saying?
- It simplifies backends work. No need to include logic for
alias handling.
- Conceptually wrong . every module represents a particular
functionality when you compile the module it should just reconfigure itself
to produce the appropriate image for the configured architecture .It a good
idea to have a true componentized operating system.
Regarding the ModuleType IMHO they should be used to provide information
that describes the module output/target not the build process! Iso , LiveIso
, Alias , ... all of them are meaningless they are not true metadata.
Long term enhancements:
X) tags like "linkerflag" or "compilerflag" are gcc/mingw specific and
should be replaced with other tags that provide the
equivalent functionality using a more abstract aproach so other
backends/compilers could benefit from it. rbuild files should
only describe the source code and the compilation process without including
specific information.
/Marc
speaking of resources, Alexandre is now allowing binary resources in
winehq git as it actually handles them in a sane way as opposed to
cvs. This means you guys can drop bin2res if your using it anywhere
and keeping shell32 resources in sync with Wine will be less of a diff
now.
Thanks
Steven
On 10/3/07, hpoussin(a)svn.reactos.org <hpoussin(a)svn.reactos.org> wrote:
> Author: hpoussin
> Date: Wed Oct 3 18:17:46 2007
> New Revision: 29378
>
> URL: http://svn.reactos.org/svn/reactos?rev=29378&view=rev
> Log:
> Add back windres, it is still used after wrc invocation
>
> Modified:
> trunk/reactos/Makefile
>
> Modified: trunk/reactos/Makefile
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/Makefile?rev=29378&r1=2937…
> ==============================================================================
> --- trunk/reactos/Makefile (original)
> +++ trunk/reactos/Makefile Wed Oct 3 18:17:46 2007
> @@ -298,6 +298,7 @@
> objcopy = $(Q)$(PREFIX_)objcopy
> dlltool = $(Q)$(PREFIX_)dlltool
> strip = $(Q)$(PREFIX_)strip
> +windres = $(Q)$(PREFIX_)windres
>
> # Set utilities
> ifeq ($(OSTYPE),msys)
>
>
>
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
Hello,
recently, different people raised a question: How should development
process evolve with time, when ReactOS has more (much more)
developers willing to contribute code?
There are many possibilities, however all of them assume more or less
an overhead, and need additional human resources.
I will outline one suggested method, and want you (developers) to
"constructively criticize it", improve it, or offer a better method.
Even if it involves changing current version control system, or
anything - suggest the method.
So, the suggestion I've already got is this:
Trunk is writable only by a so-called Integrator person (maybe a few
persons). Branches are writable by a big amount of developers.
Typical development process is as follows:
1. A developer creates a ticket in issue-tracking system (currently
Bugzilla), where he describes what's wrong and what his change fixes/
improves.
2. He creates a branch with a name BZ-XYZ (where XYZ is ticket's
number), and commits his changes there.
3. An integrator, daily, goes through all BZ-... branches, does svn
merge to trunk of each branch, test it, if no regression occurs, he
commits changes to trunk and svn deletes the respective BZ-... branch.
Some kind of integration system is definitely needed, so please avoid
fast answers like "Let's stay as we do now". Better approach is
needed, and I'm looking for it. If you can offer something - do so.
With the best regards,
Aleksey Bragin.
I considered that, but it's a bad idea. Try to remember what the hell
it was to merge changes into release branch ("stable"), done since
0.3.3-RC1 was released? And that was only to do a RC2, about 1-2
weeks, and complete hell to merge so it was decided that a rebranch
was easier (and in fact it worked very well).
WBR,
Aleksey Bragin.
On Oct 3, 2007, at 9:03 PM, Magnus Olsen wrote:
> Hi
> I think we should have something call stable trunk and devloping trunk
>
> The stable trunk getting all changes that are ready and stable and
> it will
> be
> the release version of trunk.
>
> the devloping trunk is where everyone working in
>
>
> But the main problem is we do not have any good tools for regress
> testing
> and we are missing testcase for each api. I am working at moment
> writing
> testcase for gdi32, I hope this will make lest gdi32 allot more
> stable at
> end
> then I will start making testcase for win32k later maybe for user32
> then start fixing the real bugs and implement things. or working with
> everthing same times. we should need a test kit for each api and
> test for evertging invaild param, pointers, and real data in all case
> I known it is not fun todo but that is what we need to make ReactOS
> more stable and less bugs. Testcase for everthing.
Herve suggests using a kind of a continuous integration system,
describing it this way:
* precommit hook
if commit not to trunk, abort precommit hook
create a REV-abc branch from trunk and do the commit here
* regularly
go through all REV-abc branches (increasing ABC numbers)
test it
if not, inform user or whatever that test failed and go to next branch
try to merge to trunk
if not, inform user or whatever that merge failed and go to next branch
commit to trunk
delete the branch
go to next branch
* pros:
devs and users will have new version to trunk once they are tested
devs and users only have to know trunk
* cons:
changes are not immediatly available for everyone, except in REV-abc
branch
On Oct 3, 2007, at 12:50 PM, Aleksey Bragin wrote:
> Hello,
> recently, different people raised a question: How should development
> process evolve with time, when ReactOS has more (much more)
> developers willing to contribute code?
I'm getting this error when posting/modifying a bugreport
Bugzilla has suffered an internal error. Please save this page and send it
to aleksey(a)reactos.org with details of what you were doing at the time this
message appeared.
URL: http://www.reactos.org/bugzilla/process_bug.cgi
There was an error sending mail from 'ReactOS.Bugzilla' to
'hpoussin(a)reactos.org':error when closing pipe to /usr/lib/sendmail:
SumatraPDF is a lightweight Win32 pdf viewer app
http://blog.kowalczyk.info/software/sumatrapdf/http://code.google.com/p/sumatrapdf/
The name "sumatra" sounds weird (for an app), so I renamed the
directory and the output exe file to "SmartPDF" (based on suggestions
from #reactos).
SumatraPDF comes with VS 2k5 project files.
I have fixed various compile issues so that libjpeg, poppler,
fitz/mupdf and sumatra app itself compile without errors in mingw
(RosBE 0.3.7.2 Win32).
All code changes can be found by grep/search for "@note:", I added a
comment to each changed code line.
The remaining problem is the linking issue. Currently it does NOT link
correctly.
Timo Kreuzer mentioned on 2007-09-27 in #reactos something that may be
related to the issue:
"it [sumatrapdf] imports a function from winspool.drv by number, when
you add that number to winspool.def, it starts"
Please have a look at it, fixes are appreciated :)
Klemens
Hi,
Alex nudged me in IRC about this, but sadly I've not quite figured this out
yet.
It appears my definitions for Kernel Streaming GUIDs are not quite right.
This results in ugly code like so:
--
const GUID foo_audio_category = STATIC_KSCATEGORY_AUDIO;
DoSomethingWithTheGuid(&foo_audio_category);
--
Which consequently results in a barrage of compiler complaints about brace
initialization.
It should be possible to just do:
DoSomethingWithTheGuid(KSCATEGORY_AUDIO);
I'm clearly going wrong somewhere in KS.H or KSMEDIA.H but to be honest am
blind to whatever is causing the problem.
If anyone can figure out what I'm doing wrong here, I'd appreciate it.
Thanks.
-Andrew
Hello,
I'd just like to do a remark about ReactOS apps, dlls, which be translated. When a dev change something to the interface, or the core app, it could be great to update EVERY language file (*.rc) and not only some of them (or even worse : only english one). It does not take many times to do (I know because I've already done that), and for a translator that's quite easier to see what has changed without having to compare his language file and the english one. And most of all, it avoids uncomplete, or outdated language files. Finally, for end-user, that's better : that's even better to have English string instead of nothing (I mean blank string).
Thanks,
Pierre Schweitzer, French Language Maintainer
On Sep 22, 2007, at 10:19 PM, João Jerónimo wrote:
> The point of a possible 3rd party audit is raising the legal
> credibility of
> the ReactOS project by ensuring that no tainted code is left in the
> source
> tree, right?
The word "tainted" is actually quite wrong, and is being misused
everywhere.
A tea was tainted by polonium in a not-so-recent accident in the UK.
ReactOS is not a tea, and we have no "polonium" commiters.
There will be a WineConf event in 1 or 2 weeks, and they say they are
going to clear up the legal situation around Wine, around SFLC audit
and around requirements to the developers, whose code may be commited
to the tree.
When they do it, I would be very glad to know those requirements, and
enforce them on ReactOS developers, so that we are on the common ground.
>
> Well, if the project is going to wait until more modules stabilize,
> won't
> this stabilization process obfuscate most of the tainted source
> code, and
> make them hard to find?
Your mind is ahead of you. "Taint obfuscated code", "Obfuscate
tainted code", ...
Your question is obfuscated and may be tainted, I won't answer it.
WBR,
Aleksey Bragin.
Please stop rumouring this topic. I clearly said "if there are strong
circumstances, in future, only then we will think about doing 3rd
party audit, and only from agreement of all devs". That's 3 or 4
years away from now, if such legal problems ever happen.
Also noone ever said SFLC is taking up copyrights to themselves. At
least it's first time I hear this.
I just grepped Wine source code base for word "SFLC" - doesn't appear
anywhere. Also, open up any of Wine's source code file, you'll see
"Copyright 200x Person's Name".
And again, I didn't suggest SFLC or FSF or whoever. Time will show
who and if we need, and who and if agrees to.
WBR,
Aleksey Bragin.
On Sep 24, 2007, at 2:58 PM, Magnus Olsen wrote:
> It seam u fall into he SFLC traps they are trying push doing the
> audlt of
> ros from a 3 part project
> of ros, and we shall obay theirs rules it mean all api that is not
> document
> in msdn shall be remove
> and so on. That mean 80% of ntoskrnl will go away, for around 80% of
> ntoskrnl are not in msdn
> 80% of win32k will go aways, for thuse api are not in msdn, then
> shall we
> not talk about audio
> no audio system and so on.
>
> that mean no ros, if we play after SLFC and we need also write
> papper give
> up our copyright to
> them. no thanks
Well-well, please calm down, we had enough flamewars, a new one is
not necessary.
No decisions are made, and no decisions are going to be made without
agreement with all our developers.
WBR,
Aleksey Bragin.
On Sep 23, 2007, at 3:40 PM, Ged wrote:
> James Tabor wrote:
>>
>> Wine is the Pot calling the kettle BLACK! Bunch of RE coders using
>> smoke and
>> mirrors when it comes to case testing! It's a easy out!
>>
>
> I agree with Aleksey, we must adopt their way of working in the
> hope of
> rebuilding the bridges and additionally improving our credability
> within
> the open source world. If this means offering ourselves to an external
> audit, then so be it. We can't be a hobbiest project forever if we aim
> to bring ReactOS to the public sector as a viable alternative to
> Windows.
>
>
> Ged.
Thanks for all the replies so far.
I find it quite insane that MSDN compares ioctl to DeviceIoControl. Whilst
they achieve
the same results, the actual parameters used etc. are entirely different.
I'm not sure if Steven's suggestion would work (ie, use ws2_32) since, to
my knowledge,
that particular implementation is specific to sockets.
Probably the best way around this then, would be to make an ioctl wrapper
that takes the
OSS-specific IOCTL codes, and translates them into custom NT IOCTL codes.
The wrapper
would take things like structures being passed via the ioctl and send them
via
DeviceIoControl instead.
It does seem like a fair amount of work but if an appropriate "wrapper" is
created, it
could work...
Original Message:
-----------------
From: King InuYasha ngompa13(a)gmail.com
Date: Sat, 22 Sep 2007 10:28:50 -0500
To: ros-dev(a)reactos.org
Subject: Re: [ros-dev] Open Sound System porting
Couldn't the source be patched to use DeviceIOControl instead of ioctl?
According to MSDN about porting from UNIX to Win32, ioctl maps directly to
DeviceIOControl, so it could be possible to simply change all the instances
of ioctl to DeviceIOControl...
On 9/22/07, Aleksey Bragin <aleksey(a)reactos.org> wrote:
>
> I didn't thoroughly look through the OSS source code, but if it has
> some kind of platform-independent design in mind, then I would really
> recommend porting, and porting with as minimal changes to the
> original source code required (you probably are going to need a
> wrapper-library, for ioctls at least, plus NT-specific parts).
>
> I may help too, because of the usb stack wrapping I did a while ago.
>
>
> WBR,
> Aleksey Bragin.
>
> >
> > I've been in touch with the guy that ported OSS to Haiku (open-
> > source BeOS)
> > after some
> > discussion with the folks over at #winehackers to get some help
> > with audio
> > development.
> >
> > Anyway, basically the idea so far is to use OSS as a "fall-back" audio
> > driver
> > implementation. So unless there is a "better" driver installed (ie an
> > official one for
> > an audio device), ReactOS can use an Open Sound System driver instead.
> >
> > The result? There will at least be sound functionality.
> >
> > OSS is designed to be mostly platform-independent. By rewriting a
> > few of
> > the core
> > modules, the entire set of drivers will be able to work with whatever
> > platform you
> > desire.
> >
> > This can be implemented on top of the existing MME API architecture
> > for the
> > moment, and
> > can later be translated to use the WDM audio framework.
> >
> > Anyway, having stuck the OSS code into my local ReactOS source
> > tree, I'm
> > trying to
> > figure out how to get it to compile using rbuild. The first hurdle
> > I have
> > come across is
> > that there is extensive use of ioctl. Indeed it seems that most
> > ports of
> > OSS work on
> > platforms based on Posix (Unix?)
> >
> > So my main question at this time is how to handle this? The calls in
> > question appear to
> > be documented inside a file called "soundcard.h" in the OSS sources
> > however
> > this just
> > seems to be definitions for the ioctl codes. So I suspect a
> > majority of the
> > drivers are
> > calling ioctl.
> >
> > Therefore, I figure the best way around this is probably to provide
> > a fake
> > ioctl that
> > provides the expected functionality, and make this wrap
> > DeviceIoControl
> > with something
> > that can translate the ioctl parameters into whatever...
> >
> > The only other way I see around this is to rewrite all calls to
> > ioctl, and
> > rewrite the
> > IOCTL codes with NT-style ones.
> >
> > Thoughts/ideas?
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
--------------------------------------------------------------------
mail2web.com What can On Demand Business Solutions do for you?
http://link.mail2web.com/Business/SharePoint
4Front.
Apparently it's "better".
Original Message:
-----------------
From: King InuYasha ngompa13(a)gmail.com
Date: Sat, 22 Sep 2007 16:32:11 -0500
To: reactos-development(a)silverblade.co.uk, ros-dev(a)reactos.org
Subject: Re: [ros-dev] Open Sound System porting
Which OSS implementation are you looking at? The OSS/Free one, or the OSS
one from 4Front?
On 9/22/07, reactos-development(a)silverblade.co.uk <
reactos-development(a)silverblade.co.uk> wrote:
>
> Thanks for all the replies so far.
>
> I find it quite insane that MSDN compares ioctl to DeviceIoControl. Whilst
> they achieve
> the same results, the actual parameters used etc. are entirely different.
>
> I'm not sure if Steven's suggestion would work (ie, use ws2_32) since, to
> my knowledge,
> that particular implementation is specific to sockets.
>
> Probably the best way around this then, would be to make an ioctl wrapper
> that takes the
> OSS-specific IOCTL codes, and translates them into custom NT IOCTL codes.
> The wrapper
> would take things like structures being passed via the ioctl and send them
> via
> DeviceIoControl instead.
>
> It does seem like a fair amount of work but if an appropriate "wrapper" is
> created, it
> could work...
>
>
> Original Message:
> -----------------
> From: King InuYasha ngompa13(a)gmail.com
> Date: Sat, 22 Sep 2007 10:28:50 -0500
> To: ros-dev(a)reactos.org
> Subject: Re: [ros-dev] Open Sound System porting
>
>
> Couldn't the source be patched to use DeviceIOControl instead of ioctl?
> According to MSDN about porting from UNIX to Win32, ioctl maps directly to
> DeviceIOControl, so it could be possible to simply change all the
> instances
> of ioctl to DeviceIOControl...
>
> On 9/22/07, Aleksey Bragin <aleksey(a)reactos.org> wrote:
> >
> > I didn't thoroughly look through the OSS source code, but if it has
> > some kind of platform-independent design in mind, then I would really
> > recommend porting, and porting with as minimal changes to the
> > original source code required (you probably are going to need a
> > wrapper-library, for ioctls at least, plus NT-specific parts).
> >
> > I may help too, because of the usb stack wrapping I did a while ago.
> >
> >
> > WBR,
> > Aleksey Bragin.
> >
> > >
> > > I've been in touch with the guy that ported OSS to Haiku (open-
> > > source BeOS)
> > > after some
> > > discussion with the folks over at #winehackers to get some help
> > > with audio
> > > development.
> > >
> > > Anyway, basically the idea so far is to use OSS as a "fall-back" audio
> > > driver
> > > implementation. So unless there is a "better" driver installed (ie an
> > > official one for
> > > an audio device), ReactOS can use an Open Sound System driver instead.
> > >
> > > The result? There will at least be sound functionality.
> > >
> > > OSS is designed to be mostly platform-independent. By rewriting a
> > > few of
> > > the core
> > > modules, the entire set of drivers will be able to work with whatever
> > > platform you
> > > desire.
> > >
> > > This can be implemented on top of the existing MME API architecture
> > > for the
> > > moment, and
> > > can later be translated to use the WDM audio framework.
> > >
> > > Anyway, having stuck the OSS code into my local ReactOS source
> > > tree, I'm
> > > trying to
> > > figure out how to get it to compile using rbuild. The first hurdle
> > > I have
> > > come across is
> > > that there is extensive use of ioctl. Indeed it seems that most
> > > ports of
> > > OSS work on
> > > platforms based on Posix (Unix?)
> > >
> > > So my main question at this time is how to handle this? The calls in
> > > question appear to
> > > be documented inside a file called "soundcard.h" in the OSS sources
> > > however
> > > this just
> > > seems to be definitions for the ioctl codes. So I suspect a
> > > majority of the
> > > drivers are
> > > calling ioctl.
> > >
> > > Therefore, I figure the best way around this is probably to provide
> > > a fake
> > > ioctl that
> > > provides the expected functionality, and make this wrap
> > > DeviceIoControl
> > > with something
> > > that can translate the ioctl parameters into whatever...
> > >
> > > The only other way I see around this is to rewrite all calls to
> > > ioctl, and
> > > rewrite the
> > > IOCTL codes with NT-style ones.
> > >
> > > Thoughts/ideas?
> > _______________________________________________
> > Ros-dev mailing list
> > Ros-dev(a)reactos.org
> > http://www.reactos.org/mailman/listinfo/ros-dev
> >
>
>
> --------------------------------------------------------------------
> mail2web.com What can On Demand Business Solutions do for you?
> http://link.mail2web.com/Business/SharePoint
>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
--------------------------------------------------------------------
mail2web - Check your email from the web at
http://link.mail2web.com/mail2web
Hello,
I recently asked Klemens to remove audit progress bar from the
frontpage. Some wonder: why? The simple answer is obvious: Audit
doesn't have anything to do with end-users, testers, or patch-
submitters of the project.
Audit is an effort run by ReactOS Development Team, and has only one
goal: Reduce possible legal problems in future, when, and if, ReactOS
starts to have commercial appliances.
The process with file locking-unlocking is only the top of the
iceberg, there is a huge amount of work to be done in order to
maintain solid legal base for all our code. It can't be measured with
a single progressbar, nor it needs to. It can't be done only with the
help of ReactOS Development Team, a third party code reviewer is a
must. We plan that too, but for later time, when there are more
stable modules in ReactOS.
Legal base consists of a number of factors: authorship and sources of
the code and their legality, availability of documentation for
certain interfaces and algorithms, development of test cases showing
internal behaviour of certain API functions, licensing issues, 3rd
party code reviewing process results, etc, etc, etc.
I think it's rather clear to see that measuring all the above factors
in a single percentage number can't sound serious for a project, nor
can it be a real value of cleannes of the project.
The respective Audit wikipage needs to be updated too WRT this email.
Also please note, our audit process results are fully seen via SVN
commits, so there is no hiding involved.
With the best regards,
Aleksey Bragin.
I didn't thoroughly look through the OSS source code, but if it has
some kind of platform-independent design in mind, then I would really
recommend porting, and porting with as minimal changes to the
original source code required (you probably are going to need a
wrapper-library, for ioctls at least, plus NT-specific parts).
I may help too, because of the usb stack wrapping I did a while ago.
WBR,
Aleksey Bragin.
>
> I've been in touch with the guy that ported OSS to Haiku (open-
> source BeOS)
> after some
> discussion with the folks over at #winehackers to get some help
> with audio
> development.
>
> Anyway, basically the idea so far is to use OSS as a "fall-back" audio
> driver
> implementation. So unless there is a "better" driver installed (ie an
> official one for
> an audio device), ReactOS can use an Open Sound System driver instead.
>
> The result? There will at least be sound functionality.
>
> OSS is designed to be mostly platform-independent. By rewriting a
> few of
> the core
> modules, the entire set of drivers will be able to work with whatever
> platform you
> desire.
>
> This can be implemented on top of the existing MME API architecture
> for the
> moment, and
> can later be translated to use the WDM audio framework.
>
> Anyway, having stuck the OSS code into my local ReactOS source
> tree, I'm
> trying to
> figure out how to get it to compile using rbuild. The first hurdle
> I have
> come across is
> that there is extensive use of ioctl. Indeed it seems that most
> ports of
> OSS work on
> platforms based on Posix (Unix?)
>
> So my main question at this time is how to handle this? The calls in
> question appear to
> be documented inside a file called "soundcard.h" in the OSS sources
> however
> this just
> seems to be definitions for the ioctl codes. So I suspect a
> majority of the
> drivers are
> calling ioctl.
>
> Therefore, I figure the best way around this is probably to provide
> a fake
> ioctl that
> provides the expected functionality, and make this wrap
> DeviceIoControl
> with something
> that can translate the ioctl parameters into whatever...
>
> The only other way I see around this is to rewrite all calls to
> ioctl, and
> rewrite the
> IOCTL codes with NT-style ones.
>
> Thoughts/ideas?
David, what does a kernel-dev have to do with rbuild?
Also, recent massive commits to the rbuild itself, and to
various .rbuild files hardly prove your "rbuild is an umaintained
piece of ... stuff" theory. It's, by the least measure, offensive to
Herve's (and there were a few different patches submitted by various
authors submitted) work he's been doing with rbuild.
Or what is a "maintained rbuild", by your definition? How more should
it be maintained? Note: not improved (we have a number of
improvements pending to be implemented in it), but *maintained*.
Another thing is completely wrong and counter-productive: irc is a
wrong place for such question, since not all devs are there all the
time.
Now, back to the actual question.
The biggest difference between ntoskrnl and HAL is that the first is
as machine-independent as possible (still including some dependent
code, but it's conditionally included), while the latter is actually
very hardware dependent, so it does not make sense to unite x86 and
PowerPC HALs, because they are going to contain just simply different
source code.
With the best regards,
Aleksey Bragin.
On Sep 21, 2007, at 8:11 PM, David Hinz wrote:
>
> Marc Piulachs schrieb:
>> Does anyone agree with me on this? Maybe I’m missing something
>> here but
>> I would like to improve it.
>
> I don't think you will have much luck getting an answer, as afaik
> rbuild
> is currently more or less unmaintained and our kernel-dev left the
> project.
>
> Maybe arty or hpoussin do have an oppinion regarding your question,
> but
> they seem to be rather busy most of the time...
>
> Have you tried asking on irc? Most devs hang out there...
>
> Greets,
>
> David Hinz
Hi guys,
I've been in touch with the guy that ported OSS to Haiku (open-source BeOS)
after some
discussion with the folks over at #winehackers to get some help with audio
development.
Anyway, basically the idea so far is to use OSS as a "fall-back" audio
driver
implementation. So unless there is a "better" driver installed (ie an
official one for
an audio device), ReactOS can use an Open Sound System driver instead.
The result? There will at least be sound functionality.
OSS is designed to be mostly platform-independent. By rewriting a few of
the core
modules, the entire set of drivers will be able to work with whatever
platform you
desire.
This can be implemented on top of the existing MME API architecture for the
moment, and
can later be translated to use the WDM audio framework.
Anyway, having stuck the OSS code into my local ReactOS source tree, I'm
trying to
figure out how to get it to compile using rbuild. The first hurdle I have
come across is
that there is extensive use of ioctl. Indeed it seems that most ports of
OSS work on
platforms based on Posix (Unix?)
So my main question at this time is how to handle this? The calls in
question appear to
be documented inside a file called "soundcard.h" in the OSS sources however
this just
seems to be definitions for the ioctl codes. So I suspect a majority of the
drivers are
calling ioctl.
Therefore, I figure the best way around this is probably to provide a fake
ioctl that
provides the expected functionality, and make this wrap DeviceIoControl
with something
that can translate the ioctl parameters into whatever...
The only other way I see around this is to rewrite all calls to ioctl, and
rewrite the
IOCTL codes with NT-style ones.
Thoughts/ideas?
--------------------------------------------------------------------
mail2web.com - Microsoft® Exchange solutions from a leading provider -
http://link.mail2web.com/Business/Exchange
Hello,
Recently, some developers wrote documentation about certain stuff related to
ReactOS.
But this documentation was only placed on their own web servers.
In my opinion, it would be better if such stuff would (also) be committed to
the "documentation" directory in SVN.
Having documentation there makes sure that it does not get lost.
Additionally, if the source file is committed (not a PDF or something like
that), another person could extend the documentation further.
I agree that not all documentary stuff needs to be on SVN. An example might
be Magnus' Win32k syscall tables.
But for example Andrew Greenwood's documentation about the Windows
Multimedia Subsystems looks like something, which should be committed in my
opinion.
If you don't agree on committing this stuff, it would be nice if we could at
least agree on an official document format, which should be used in the SVN
tree.
>From what I see, most documentations were created by using OpenOffice, so I
think the OpenDocument Text format (ODT) would be a great choice. It is also
supported by most word processors, thus most people should be able to open
an ODT file.
Up to now, I used RTF for formatted text documentations in SVN, but this
format does not support things like shapes.
Regards,
Colin
There is a list linked from that wikipage, which has a simple 1:1
relationship between developer and some development area. If it's
wrong, please edit it.
WBR,
Aleksey Bragin.
On Sep 21, 2007, at 3:04 AM, Ged wrote:
> Aleksey Bragin wrote:
>> If there are any questions, please post them right away here.
>>
>
> How are these bugs being assigned?
> I've been watching and most of the bugs which have been assigned have
> been assigned to the wrong developer.
>
> Ged.
If we don't have a ntoskrnl rbuild module for every supported architecture I
don't understand why we do have a separate HAL rbuild module for every
architecture (X86 , PowePC) and sub architecture (x86-Generic , x86-xbox ,
PowerPC-Generic)
Currently we have a very complicated logic to compile the appropriate HAL
with conditions (IF) and alias that point to the correct module for the
target architecture. At the end always two dlls are going to be generated
for every architecture hal_up and hal_mp so what's the reason to have a
specific module for every architecture and not two generic modules that
represent the two possible HAL modes (uniprocessor and multiprocessor) that
dynamically include the appropriate source code for the platform
(Architecture + Sub Architecture) being build?
For example :
<module name="hal_generic" >
(common code to all architectures, sub architectures , UP and MP
HALs)
</module>
<module name="hal_up" installname="halup.dll">
<library>hal_generic</library>
<library>..
(common files to all UP HALs)
<if property="ARCH" value="i386">
(X86 common files to all X86 UP HALs)
<if property="OARCH" value="xbox">
(xbox specific files)
</if>
</if>
</if propery="ARCH" value="powerpc">
(PPC common files)
</if>
</module>
And the same for multiprocessor <module name="hal_mp"
installname="halmp.dll" /> both files can be simply copied to the install cd
and usetup will install the correct HAL renamed as hal.dll depending on the
user selection. IMHO it greatly simplifies the process and is a more elegant
solution than the current one.
Hello,
as you may already noticed Amine started his work as a bugzilla
maintainer today, and some people were surprised by bugs being
assigned to them.
Amine does a preliminary bugs assignment, according to developers'
work history in ReactOS. You are free to reassign to another dev, or
reasign back to Ros-bugs(a)reactos.org if you don't want to fix that bug.
Also, it's very important that you put your valid email address to
the bugzilla account, so that it works correctly and emails you when
needed.
If there are any questions, please post them right away here.
With the best regards,
Aleksey Bragin.
Not a problem, but this should be done on a standalone machine,
preferably the server at Christoph's place, or I can utilize my own
machine for this too.
WBR,
Aleksey Bragin.
On Sep 20, 2007, at 6:00 PM, Ged wrote:
> Timo Kreuzer wrote:
>> So we should think about updating our
>> doxygen and probably keeping it at a quite up to date state (only
>> a few
>> days old if possible).
>
> I fully agree.
> Aleksey, is there any reason this can't be stuck in a cron job and run
> weekly?
> Doxygen is a great tool which we can't really make much use of at the
> moment.
>
> Ged.
Revision: 29102
Autor: hpoussin
Datum: 11:34:05, Mittwoch, 19. September 2007
Meldung:
Fix an old rbuild bug: .gch file now depends of intermediate module
directory, and can create it if needed
----
Verändert : /trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Does this fix bug 2369?
http://www.reactos.org/bugzilla/show_bug.cgi?id=2369
Hello,
I saw the bug #2225.
In my opinion the bug isn't into the CopyImage() but into DrawIconEx() instead.
I checked the copyico test app and after debugging a little I discovered that CopyImage() received an already corrupted pixel map.
But probably, this fact is known to you too.
Sincerely,
Carlo Bramini.
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ReactOS Development List" ros-dev(a)reactos.org
Cc :
Date : Fri, 14 Sep 2007 21:14:55 +0200
Subject : Re: [ros-dev] Problems with resources or something else
> Hi,
>
> This problem has nothing to do with resource compilation.
> It's a bug in our CopyImage function, which exists since some time. If you
> try the current builds from our BuildBot, you will have the same problem.
>
> Regards,
>
> Colin
>
>
> > -----Original Message-----
> > From: ros-dev-bounces(a)reactos.org
> > [mailto:ros-dev-bounces@reactos.org] On Behalf Of carlo.bramix
> > Sent: Thursday, September 13, 2007 10:22 AM
> > To: ros-dev
> > Subject: [ros-dev] Problems with resources or something else
> >
> > Hello,
> > it's long time that I compile ReactOS and I have some errors
> > into the start menu bar.
> > My results are almost identical to this screenshot:
> >
> > http://www.reactos.org/media/screenshots/2007/ros_033_xara3d.jpg
> >
> > As you can see, the two icons after the start button and the
> > '1','2','3','4' buttons are corrupted.
> > Actually I'm using the windres.exe that I received from here:
> >
> > http://www.reactos.org/archives/public/ros-dev/2007-July/009548.html
> >
> > Do you have some idea?
> >
> > Sincerely,
> >
> > Carlo Bramini
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
Hello,
Amine Khaldi is going to be a bugzilla maintainer, starting tomorrow.
This is the first step from the a number of efforts I'm going to
announce soon, which aim significant improving of the development
process, resulting in less breakages and more smooth development
progress.
You can see what the work of a bugzilla maintainer is at the
following wikipage: http://www.reactos.org/wiki/index.php/
Bugzilla_Maintainer
With the best regards,
Aleksey Bragin.
Hi, my name is Carlos Pires, and i've been tracking this project since
2006, and now I've managed to get some time for me to get involved in it.
I've fetched the svn sources, and past this last 3 days looking at the
code, trying to find how was going the implementention.
I've also download tinykrnl for analsys, and realized that reactOS does
not implement some hal fuctions like HaliQuerySystemInformation,
trying to find more information one this i've also realize that reactOS
does not have a Machine Check Handler.
I noticed that a lot of effort is being made in User Mode code, to make
software work in reactOS.
I've also check svn activity and checked that the Kernel Mode code had
minor changes (i've only looked at dates).
Now, i've said that, i have a few questions:
- How is the Kernel Mode implemention current status?
- Looking at Windows architecture, the HAL part is one of the most
important thing in making Windows device drivers work in reactOS,
shouldn't this be ReactOS first goal?
- Isn't more important to create a fully working Kernel
(executive,hal,etc) before going into User Mode?
Sorry if i've said something that is not correct, this are only thoughts
i've had, while i was looking at the code.
I'm a developer and want to help as much as i can this project, so if
anyone can help in getting some lights about the current status, i
appreciate.
The best regards
If the mutex is a named mutex and the object existed before this
function call, the return value is a handle to the existing object,
GetLastError returns ERROR_ALREADY_EXISTS
--
Best regards,
Alex Ionescu
On 17-Sep-07, at 10:41 PM, silverblade(a)svn.reactos.org wrote:
+ device_list_mutex = CreateMutex(NULL, FALSE,
DEVICE_LIST_MUTEX_NAME);
+
+ if ( ! device_list_mutex)
+ {
Hello,
it's long time that I compile ReactOS and I have some errors into the start menu bar.
My results are almost identical to this screenshot:
http://www.reactos.org/media/screenshots/2007/ros_033_xara3d.jpg
As you can see, the two icons after the start button and the '1','2','3','4' buttons are corrupted.
Actually I'm using the windres.exe that I received from here:
http://www.reactos.org/archives/public/ros-dev/2007-July/009548.html
Do you have some idea?
Sincerely,
Carlo Bramini
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
Does the order of .o files matter when linking against a static library?
I ask this because I'm having problems linking ntoskrnl with rtl
dependending on the order of object files when compiling rtl. For example on
the rbuild generated makefile.auto the order of .o files is :
rtl_OBJS := \
$(INTERMEDIATE)\lib\rtl\austin\avl.o \
$(INTERMEDIATE)\lib\rtl\austin\tree.o \
$(INTERMEDIATE)\lib\rtl\access.o \
$(INTERMEDIATE)\lib\rtl\acl.o \
$(INTERMEDIATE)\lib\rtl\atom.o \
$(INTERMEDIATE)\lib\rtl\bitmap.o \
$(INTERMEDIATE)\lib\rtl\bootdata.o \
$(INTERMEDIATE)\lib\rtl\compress.o \
$(INTERMEDIATE)\lib\rtl\condvar.o \
$(INTERMEDIATE)\lib\rtl\crc32.o \
$(INTERMEDIATE)\lib\rtl\critical.o \
$(INTERMEDIATE)\lib\rtl\dbgbuffer.o \
$(INTERMEDIATE)\lib\rtl\debug.o \
$(INTERMEDIATE)\lib\rtl\dos8dot3.o \
$(INTERMEDIATE)\lib\rtl\encode.o \
$(INTERMEDIATE)\lib\rtl\env.o \
$(INTERMEDIATE)\lib\rtl\error.o \
$(INTERMEDIATE)\lib\rtl\exception.o \
$(INTERMEDIATE)\lib\rtl\generictable.o \
$(INTERMEDIATE)\lib\rtl\handle.o \
$(INTERMEDIATE)\lib\rtl\heap.o \
$(INTERMEDIATE)\lib\rtl\image.o \
$(INTERMEDIATE)\lib\rtl\message.o \
$(INTERMEDIATE)\lib\rtl\largeint.o \
$(INTERMEDIATE)\lib\rtl\luid.o \
$(INTERMEDIATE)\lib\rtl\network.o \
$(INTERMEDIATE)\lib\rtl\nls.o \
$(INTERMEDIATE)\lib\rtl\path.o \
$(INTERMEDIATE)\lib\rtl\ppb.o \
$(INTERMEDIATE)\lib\rtl\process.o \
$(INTERMEDIATE)\lib\rtl\propvar.o \
$(INTERMEDIATE)\lib\rtl\qsort.o \
$(INTERMEDIATE)\lib\rtl\random.o \
$(INTERMEDIATE)\lib\rtl\rangelist.o \
$(INTERMEDIATE)\lib\rtl\registry.o \
$(INTERMEDIATE)\lib\rtl\res.o \
$(INTERMEDIATE)\lib\rtl\resource.o \
$(INTERMEDIATE)\lib\rtl\sd.o \
$(INTERMEDIATE)\lib\rtl\security.o \
$(INTERMEDIATE)\lib\rtl\sid.o \
$(INTERMEDIATE)\lib\rtl\sprintf.o \
$(INTERMEDIATE)\lib\rtl\srw.o \
$(INTERMEDIATE)\lib\rtl\swprintf.o \
$(INTERMEDIATE)\lib\rtl\splaytree.o \
$(INTERMEDIATE)\lib\rtl\thread.o \
$(INTERMEDIATE)\lib\rtl\time.o \
$(INTERMEDIATE)\lib\rtl\timezone.o \
$(INTERMEDIATE)\lib\rtl\timerqueue.o \
$(INTERMEDIATE)\lib\rtl\unicode.o \
$(INTERMEDIATE)\lib\rtl\unicodeprefix.o \
$(INTERMEDIATE)\lib\rtl\vectoreh.o \
$(INTERMEDIATE)\lib\rtl\version.o \
$(INTERMEDIATE)\lib\rtl\workitem.o \
$(INTERMEDIATE)\lib\rtl\i386\debug_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\except_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\except.o \
$(INTERMEDIATE)\lib\rtl\i386\random_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\rtlswap.o \
$(INTERMEDIATE)\lib\rtl\i386\rtlmem.o \
$(INTERMEDIATE)\lib\rtl\i386\res_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\thread.o \
Using this order rtl will compile and ntoskrnl can be linked without
problems but If the order is changed to ASMs on top (the order present in
rtl.rbuild):
rtl_OBJS := \
$(INTERMEDIATE)\lib\rtl\i386\debug_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\except_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\except.o \
$(INTERMEDIATE)\lib\rtl\i386\random_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\rtlswap.o \
$(INTERMEDIATE)\lib\rtl\i386\rtlmem.o \
$(INTERMEDIATE)\lib\rtl\i386\res_asm.o \
$(INTERMEDIATE)\lib\rtl\i386\thread.o \
$(INTERMEDIATE)\lib\rtl\austin\avl.o \
$(INTERMEDIATE)\lib\rtl\austin\tree.o \
$(INTERMEDIATE)\lib\rtl\access.o \
$(INTERMEDIATE)\lib\rtl\acl.o \
$(INTERMEDIATE)\lib\rtl\atom.o \
$(INTERMEDIATE)\lib\rtl\bitmap.o \
$(INTERMEDIATE)\lib\rtl\bootdata.o \
$(INTERMEDIATE)\lib\rtl\compress.o \
$(INTERMEDIATE)\lib\rtl\condvar.o \
$(INTERMEDIATE)\lib\rtl\crc32.o \
$(INTERMEDIATE)\lib\rtl\critical.o \
$(INTERMEDIATE)\lib\rtl\dbgbuffer.o \
$(INTERMEDIATE)\lib\rtl\debug.o \
$(INTERMEDIATE)\lib\rtl\dos8dot3.o \
$(INTERMEDIATE)\lib\rtl\encode.o \
$(INTERMEDIATE)\lib\rtl\env.o \
$(INTERMEDIATE)\lib\rtl\error.o \
$(INTERMEDIATE)\lib\rtl\exception.o \
$(INTERMEDIATE)\lib\rtl\generictable.o \
$(INTERMEDIATE)\lib\rtl\handle.o \
$(INTERMEDIATE)\lib\rtl\heap.o \
$(INTERMEDIATE)\lib\rtl\image.o \
$(INTERMEDIATE)\lib\rtl\message.o \
$(INTERMEDIATE)\lib\rtl\largeint.o \
$(INTERMEDIATE)\lib\rtl\luid.o \
$(INTERMEDIATE)\lib\rtl\network.o \
$(INTERMEDIATE)\lib\rtl\nls.o \
$(INTERMEDIATE)\lib\rtl\path.o \
$(INTERMEDIATE)\lib\rtl\ppb.o \
$(INTERMEDIATE)\lib\rtl\process.o \
$(INTERMEDIATE)\lib\rtl\propvar.o \
$(INTERMEDIATE)\lib\rtl\qsort.o \
$(INTERMEDIATE)\lib\rtl\random.o \
$(INTERMEDIATE)\lib\rtl\rangelist.o \
$(INTERMEDIATE)\lib\rtl\registry.o \
$(INTERMEDIATE)\lib\rtl\res.o \
$(INTERMEDIATE)\lib\rtl\resource.o \
$(INTERMEDIATE)\lib\rtl\sd.o \
$(INTERMEDIATE)\lib\rtl\security.o \
$(INTERMEDIATE)\lib\rtl\sid.o \
$(INTERMEDIATE)\lib\rtl\sprintf.o \
$(INTERMEDIATE)\lib\rtl\srw.o \
$(INTERMEDIATE)\lib\rtl\swprintf.o \
$(INTERMEDIATE)\lib\rtl\splaytree.o \
$(INTERMEDIATE)\lib\rtl\thread.o \
$(INTERMEDIATE)\lib\rtl\time.o \
$(INTERMEDIATE)\lib\rtl\timezone.o \
$(INTERMEDIATE)\lib\rtl\timerqueue.o \
$(INTERMEDIATE)\lib\rtl\unicode.o \
$(INTERMEDIATE)\lib\rtl\unicodeprefix.o \
$(INTERMEDIATE)\lib\rtl\vectoreh.o \
$(INTERMEDIATE)\lib\rtl\version.o \
$(INTERMEDIATE)\lib\rtl\workitem.o \
[LD] C:\Ros\clean\reactos\output-i386\ntoskrnl\ntoskrnl.exe
C:\Ros\clean\reactos\obj-i386\lib\rtl\rtl.a(random.o): In function
`RtlUniform@4':
C:/Ros/clean/reactos/lib/rtl/random.c:137: multiple definition of
`_RtlUniform@4'
C:\Ros\clean\reactos\obj-i386\lib\rtl\rtl.a(random_asm.o):C:\Ros\clean\react
os\lib\rtl\i386\random_asm.S:161: first defined here
C:\Ros\clean\reactos\obj-i386\lib\rtl\rtl.a(random.o): In function
`RtlRandom@4':
C:/Ros/clean/reactos/lib/rtl/random.c:69: multiple definition of
`_RtlRandom@4'
C:\Ros\clean\reactos\obj-i386\lib\rtl\rtl.a(random_asm.o):C:\Ros\clean\react
os\lib\rtl\i386\random_asm.S:23: first defined here
collect2: ld returned 1 exit status
mingw32-make: *** [C:\Ros\clean\reactos\output-i386\ntoskrnl\ntoskrnl.exe]
Error 1
Total Build Time: 00:03:09
You will get linking errors , this error looks wired to me . In the rbuild
generated file the .asm files generating this problem will be added to the
end of the list because they are inside an If condition (ARCH=i386) so this
¿bug? does not appear even when exists
Am I missing something here? How can It be solved, any clues?
Friends,
A two day international conference (ICIST2007) is planned at
Thrissur(Kerala, India)
during 14,15 December 2007 with Free Software as the principal theme.
RMS has agreed to engage the participants in a virtual session and
clarify online to any subsequent queries.
Papers are solicited for ICIST2007.
Details are at http://mesengg.ac.in/icist2007.htm
Regards,
Raghesh
Hello.
The attached patch fixes the italian translation of MSCONFIG.
Sincerely,
Carlo Bramini.
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
Hi
Here are some ideas for optimizing our gdi object code:
1.) When allocating, locking and deleting a gdi object, we pass the
global variable GdiHandleTable to GDIOBJ_AllocObj(). Do we really need
this? Is there a case where we pass something else? We would only save
few cycles here, but if we don't need it...
2.) When allocating a gdi object, we first need to search the list of
LookasideLists. My suggestion is to give each gdi object type a constant
index in the list and pass that index instead of the object type value.
That would require that the table for the object types/sizes/CleanupProc
is in sync with the index definitions. This could be achieved by
initializing that table on win32k load:
InitGdiObjectType(UINT Index, LONG GdiType, ULONG_PTR ObjectSize,
GDICLEANUPPROC CleanupProc);
Then we only need to make sure, that every index is only there once and
add one line for each object in GDIOBJ_iAllocHandleTable to initialize
the object type.
3.) ROS makes massive use of gdi object handles. It uses a lot more
handles than windows does. That is because every object we use is always
inserted into the handle table. This is slow and wastes handle entries,
wich are a limited resource. Whenever we need a (temporary) object, we
allocate it (find lookaside list, allocate mem, find free entry, lock
entry, do some stuff, unlock entry), then in a second call lock it (do
some checks, lock entry, return pointer) and at the end unlock it and
then delete it.
I think we should rewrite the code a little, so that we only create
handles, when the object reaches usermode and use pointers to mem
objects instead if the objects are kernel mode / temporary only.
XXXOBJ_AllocObj(UINT Index) -> allocate an entry from the LookasideList
and initialize it. Don't create a handle.
XXXOBJ_FreeObj(PVOID pObjBody) -> free the entry from the LookasideList
GDIOBJ_CreateHandle(PVOID pObjBody, UINT Index, LONG GdiType) -> create
a handle for a given mem object
rewrite some XXXOBJ_Xxx apis to deal with pointers to the mem objects
instead of handles (see REGION_Xxx apis)
Imo this should result in a big speed increase for several ntgdi/ntuser apis
Regards,
Timo
Hello.
No, I didn't see the creation of a DLL from the log file.
Perhaps I had understood that zlib was compiled as a static library (eh eh), but in my opinion this isn't the best way for using a robust, thread safe library like this one.
I also agree that I could explain my idea wrongly.
Searching into the online english dictionary... and I found a better word, perhaps "redundant" sounds better than "unuseful".
Sincerely,
Carlo Bramini.
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ReactOS Development List" ros-dev(a)reactos.org
Cc :
Date : Wed, 05 Sep 2007 11:21:07 -0400
Subject : Re: [ros-dev] Build with zlib
> Um, because it's a static library? Do you see it in the "dll" directory or
> in the "lib" directory?
>
> -----Original Message-----
> From: ros-dev-bounces(a)reactos.org [mailto:ros-dev-bounces@reactos.org] On
> Behalf Of carlo.bramix
> Sent: September-04-07 5:19 AM
> To: ros-dev
> Subject: [ros-dev] Build with zlib
>
> Hello,
> from the compilation log you can read:
>
> [CC] lib\3rdparty\zlib\adler32.c
> [CC] lib\3rdparty\zlib\compress.c
> [CC] lib\3rdparty\zlib\crc32.c
> [CC] lib\3rdparty\zlib\gzio.c
> [CC] lib\3rdparty\zlib\uncompr.c
> [CC] lib\3rdparty\zlib\deflate.c
> [CC] lib\3rdparty\zlib\trees.c
> [CC] lib\3rdparty\zlib\zutil.c
> [CC] lib\3rdparty\zlib\inflate.c
> [CC] lib\3rdparty\zlib\infback.c
> [CC] lib\3rdparty\zlib\inftrees.c
> [CC] lib\3rdparty\zlib\inffast.c
> [AR] obj-i386\lib\3rdparty\zlib\zlib.a
>
> why does it compile zlib.a (absolutely unuseful in my opinion) instead of
> zlib1.dll with its libz.a?
> This log has been taken from the compilation of ReactOS and *not* from the
> "make bootcd" session.
>
> Sincerely,
>
> Carlo Bramini.
>
>
>
> ------------------------------------------------------
> Leggi GRATIS le tue mail con il telefonino i-modeT di Wind
> http://i-mode.wind.it/
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
Hello,
from the compilation log you can read:
[CC] lib\3rdparty\zlib\adler32.c
[CC] lib\3rdparty\zlib\compress.c
[CC] lib\3rdparty\zlib\crc32.c
[CC] lib\3rdparty\zlib\gzio.c
[CC] lib\3rdparty\zlib\uncompr.c
[CC] lib\3rdparty\zlib\deflate.c
[CC] lib\3rdparty\zlib\trees.c
[CC] lib\3rdparty\zlib\zutil.c
[CC] lib\3rdparty\zlib\inflate.c
[CC] lib\3rdparty\zlib\infback.c
[CC] lib\3rdparty\zlib\inftrees.c
[CC] lib\3rdparty\zlib\inffast.c
[AR] obj-i386\lib\3rdparty\zlib\zlib.a
why does it compile zlib.a (absolutely unuseful in my opinion) instead of zlib1.dll with its libz.a?
This log has been taken from the compilation of ReactOS and *not* from the "make bootcd" session.
Sincerely,
Carlo Bramini.
------------------------------------------------------
Leggi GRATIS le tue mail con il telefonino i-mode di Wind
http://i-mode.wind.it/
Hi,
This is for Eric. I couldnt find your Mail Address, so I send this to
ROS ML instead.
I uploaded a picture with the errors in German RC, which are left. Only
one Window makes problems.
http://img407.imageshack.us/img407/7514/errorsbf8.jpg
Bye
Daniel "EmuandCo" Reimer
Hi
I am thinking of doing this adding a header call ntuser.h
and put it in include/reactos/../ that contain all ntuser* syscall prototypes
next thing we need a good test frame work betwin gdi32.dll and win32k.sys
so we can check all param from gdi32 comes down to win32k are correct
or captuers ms gdi32.dll to achive this so easy as posible
I am thinking of adding a new config value or define value for win32k
that will always test the input data is correct.
example
INT
STDCALL
NtGdiExtEscape(HDC hDC,
IN OPTIONAL PWCHAR pDriver,
IN INT nDriver,
INT Escape,
INT InSize,
OPTIONAL LPSTR UnsafeInData,
INT OutSize,
OPTIONAL LPSTR UnsafeOutData)
{
PDC pDC;
LPVOID SafeInData = NULL;
LPVOID SafeOutData = NULL;
NTSTATUS Status = STATUS_SUCCESS;
INT Result;
#if gdi32_testing_on
test_NtGdiExtEscape(...);
#endif
...
...
}
test will testing see if the data should have been sent or not to win32k and vaildate everthing.
and if any error detects it print out a DPRINT1 msg
DPRINT1("Testing start");
DPRINT1("Status : fail");
DPRINT1("Status : why :");
DPRINT1("Testing end");
or
DPRINT1("Testing start");
DPRINT1("Status : Sussess");
DPRINT1("Testing end");
it is like this I want adding to win32k and thuse build in test case.
I hope you all have understanding of good testcase and testframe buildin that can be easy disable and activate.
ofcures the testframe should not be in debug build. we maybe should create a complete new target for it as well
so public can get hold of it easy.
Our current gdi handle and handle table entry code uses a bunch of
macros, masks, bitshifts and even hardcoded values, iirc.
This leads imo to errors, will make the code less portable and cannot
make use of better compiler optimizations.
So I have created a new GDI_TABLE_ENTRY struct and a new type GDIHANDLE.
Both use unions and packed structs to
directly access all fields. GDI_TABLE_ENTRY is completely compatible to
our current one, so all the code would still be valid.
+ the compiler can optimize access of single elements better (movzx,
byte ptr ...)
+ no more need for additional masks, shifts and macros
+ no more messed up code because of wrong hardcoded values
+ better readable code
+ probably easier porting to 64 bits
- must be redefined for big-endian systems
- direct access of stockbit is slightly slower, but could still be
handled by a macro
#pragma pack(push,1)
typedef struct
{
PVOID KernelData; /* Points to the kernel mode structure */
union
{
DWORD ProcessId; /* process id that created the object, 0 for
kernel objects */
struct
{
unsigned ProcessId16: 16;
unsigned Unused: 16;
};
};
union
{
ULONG Type;
struct
{
union
{
unsigned TypeLower: 16;
struct
{
union
{
unsigned HandleTypeStock: 8;
struct
{
unsigned HandleType: 7;
unsigned StockBit: 1;
};
};
unsigned ReuseCount: 8;
};
};
union
{
unsigned TypeUpper: 16;
struct
{
unsigned StorageType: 8; /* PEN uses same value as
BRUSH here, no stock bit */
unsigned Flags: 8;
};
};
};
};
PVOID UserData; /* Points to the user mode structure, usually NULL
though */
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;;
typedef union
{
HGDIOBJ Handle;
struct
{
unsigned Index: 16;
union
{
unsigned Upper: 16;
struct
{
union
{
unsigned HandleTypeStock: 8;
struct
{
unsigned HandleType: 7;
unsigned StockBit: 1;
};
};
unsigned ReuseCount: 8;
};
};
};
} GDIHANDLE, *PGDIHANDLE;
#pragma pack(pop)
There is still a branch "xen", where some work has been done, however
it's greatly outdated. If someone has a wish, he could make a new
branch. But we don't have any volunteers at the moment.
WBR,
Aleksey Bragin.
On Aug 30, 2007, at 6:32 PM, Brian wrote:
> i was curious as to the status of reactos on xen. does it work(boot
> at all)? i haven't seen anything new about it on the site, and i
> interested.
>
> thanks in advance
> --
> brian
i was curious as to the status of reactos on xen. does it work(boot at all)?
i haven't seen anything new about it on the site, and i interested.
thanks in advance
--
brian
Is there going to be a new release candidate of ReactOS version 0.3.3? I
tested it very shortly and was very impressed with how it looked in
comparison to version 0.3.0. Is there a list of known bugs as feedback
from 0.3.3rc1 testers? Searching through Bugzilla might be a bit too
much :).
Anyway, the issues I experience in VMware 6.00 on WinXP Pro x64 host so
far are:
* diskette drive not visible (and/or working). Ever since 0.2.8 or so?
* shutdown does not close the virtual machine (might be improper
shutdown). Screen goes all black and need to enter VMware menu to
shutdown the ReactOS virtual machine.
Is the AUTORUN.INF by now the only file on the root of the CD? icons and
readme files can go in subdirectories I guess, which makes adding
ReactOS to multi-installation CDs a lot easier (a CD/DVD containing
setup or LiveCD of various operating systems, mostly using the Isolinux
bootloader for a frontend menu and chainloading bootsectors).
I've not extensively tested the RC1 on for example if it still can
complete installation and bootup with 32MB or less RAM installed (VMware
allows anywhere from 4MB to 8GB in increments of 4MB, Bochs/Qemu allow
1MB increases).
A resolved item I noticed in this new release was the ability to enter
digits for the computername, wasnt possible previously in 0.3.0 or 0.3.1.
ReactOS is getting interesting by now..a Win32 operating system with a
size of about 50MB and capable of playing huge games sooner or later.
Looks like a blessing to my limited size (16GB) DRAM based solid state disk.
Hi,
I have it half way done. Run the test program and you can see. Program works in
W2k, XP and Wine. mingw32-gcc -mwindows -Os GetGlyphOutline.c -o ggo.exe
I stopped messing with it two weeks ago, I needed to work on something else.
When testing you can select the alphanumeric character with the keyboard. The
original program had "a" but I changed it to "L" something simple to draw at
first. You will see the problem.
The test program from Dr. Dobb's Journal http://www.ddj.com/184409154?pgno=12
Thanks,
James
Runs and hides~
>Personal preference.
>Wine are nearing to a 1.0 product and are very careful about what code
>enters their repository.
>ReactOS does not currently meet their strict policy.
>
>If you want to get code into Wine, you must submit your patches with test
>cases and if required, relevant links to documentation.
I have also ask the question on the WINE-mailinglist.
The answer at
http://www.winehq.org/pipermail/wine-devel/2007-August/058929.html
looks like, that the test-suites are not the only reason.
Greatings
theuserbl
_________________________________________________________________
Sie suchen E-Mails, Dokumente oder Fotos? Die neue MSN Suche Toolbar mit
Windows-Desktopsuche liefert in sekundenschnelle Ergebnisse. Jetzt neu!
http://desktop.msn.de/ Jetzt gratis downloaden!
As I already said, the difference between ReactOS and WINE, as it's
written in that Wine mailing list, is that ReactOS "is known" [by
some] for reversing MS binaries, and Wine is not known for reversing
MS binaries (though it does not imply ReactOS is always doing it, and
Wine did [does] not reverse engineer).
Also, Wine is not "Open Source community", it is *part* of Open
source community, as are thousands of other projects, which somehow
form the general perception of projects.
WBR,
Aleksey Bragin.
On Aug 29, 2007, at 7:01 PM, Marc Piulachs wrote:
>
> Does it mean ReactOS is not respected/trusted among the Open Source
> community for disassembling Microsoft binaries?
>
> I don't know if this accusation is really true or not but if it's
> not I
> think it's even worse because that means that something is failing
> (probably
> communication) between the project and the OS community. Doing
> nothing about
> that is IMHO a very bad idea.
>
> I think it deserves some deep reflection and a *serious* strategy
> to change
> that general opinion. Earn respect is a KEY thing to do if the
> project wants
> to attract new developers.
>
> My two cents,
> Marc
Wine, as every other project, is free to set their own rules for
accepting patches.
If members of our development team can do anything to help Wine - we
are glad to. However, they seem to want to stick to only their own
devs' contribution (mainly).
With the best regards,
Aleksey Bragin.
On Aug 29, 2007, at 4:54 PM, theUser BL wrote:
>> Personal preference.
>> Wine are nearing to a 1.0 product and are very careful about what
>> code
>> enters their repository.
>> ReactOS does not currently meet their strict policy.
>>
>> If you want to get code into Wine, you must submit your patches
>> with test
>> cases and if required, relevant links to documentation.
>
> I have also ask the question on the WINE-mailinglist.
> The answer at
> http://www.winehq.org/pipermail/wine-devel/2007-August/058929.html
> looks like, that the test-suites are not the only reason.
>
>
> Greatings
> theuserbl
Hi!
Yesterday I have downloaded and tried out the lastest vrsion of Wine.
Version 0.9.44.
In the annoncement of that release there stand "Improvements to the builtin
WordPad".
So I have also tried ot its WordPad and it looks better then the
ROS-Notepad.
So wouldn't it a trhought to use WINEs WordPad instead of ROS one?
And will the sources of WINE and ROS steady be synchronized ?
Seems, that WINE uses an old version of cards.dll. The notepad from ROS and
WINE is different and so on.
_________________________________________________________________
Sie suchen E-Mails, Dokumente oder Fotos? Die neue MSN Suche Toolbar mit
Windows-Desktopsuche liefert in sekundenschnelle Ergebnisse. Jetzt neu!
http://desktop.msn.de/ Jetzt gratis downloaden!
Hello.
If it's possible, I would ask to apply the patch posted at bug #2494 before releasing 0.3.3 (RC2 or Final), so I will be able to remove my backup copy of regedit...
Sincerely,
Carlo Bramini.
Colin Finck wrote:
> Hello,
>
> As you probably saw, I recently rebranched 0.3.3 and made some changes to
> it.
> Now I'm at the point, where *I* think that it's ready.
>
> I don't know if anyone else has any specific plans for 0.3.3, so I'm just
> asking here now.
> Otherwise, I think we could simply release the current branch as RC2 or even
> REL. But also if we release it as RC2 now, what are the plans for the REL
> version then?
>
> Please also think of our planned 2-month release cycle.
> I know that these are just estimated dates, where users *can* expect a
> release and I myself said this a couple of times as well, but we already
> skipped 0.3.2, so we shouldn't miss the "deadline" for 0.3.3 now.
>
> Regards,
>
> Colin
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
I agree with the complete structure itself, but I have some issues with
the way it is implemented atm.
1.) the member ulOffsetTM:
If it is an offset one would guess it would be an offset from the
beginning of the struct, but it isn't. It's relative to dwFontType.
I would interpret it more as a cbSize member of an internal variable
size struct., that comes before dwFlags (see below) / textmetric
2.) The current definition has a member enfdi, wich follows after a
variable size struct. IMO this member should be removed, as it doesn't have
a constant offset. It implies that you can simply access it, but you
cannot, if the designvektor has any entries. It should be commented out to
prevent misuse.
3.) The enfdi struct doesn't really make sense to me. The dwReserved
members are not like axlReserved a constant. It looks more like some
flags or it might be code page related. With this structure the OffsetTm
member points to a substruct of a struct, that doesn't seem right to me.
So here is my version:
I also use INT versions of structs with a [0] array, so it matches the
data, when no additional stuff is present
But as we always have to consider our structs as variable length we do
not really need them. In any case we have to parse through the struct.
We can then typecast the pointers to the original structs and all's well.
typedef struct _AXELISTINTW
{
DWORD axlReserved;
DWORD axlNumAxes;
AXISINFOW axlAxesInfo[0];
} AXELISTINTW, *PAXELISTINTW;
typedef struct _ENUMTEXTMETRICINTW
{
NEWTEXTMETRICEXW etmNewTextMetricEx;
AXELISTINTW etmAxesList;
} ENUMTEXTMETRICINTW, *PENUMTEXTMETRICINTW;
typedef struct
{
DWORD cbSize;
DWORD dwFontType;
ENUMLOGFONTEXW elfex;
DESIGNVECTORINT dv;
// variable position, might be dv.dvValues[0], if DESIGNVECTORINT was
declared with dvValues[1]
// I didn't yet manage to get info with dvNumAxes > 0
// DWORD dwReserved;
} ENUMFONTDATAINTW, *PENUMFONTDATAINTW;
typedef struct _ENUMFONTDATAW
{
DWORD cbSize;
ENUMFONTDATAINTW efdi;
// Those are not real members as they don't have a constant pos in the
struct
// DWORD dwFlags;
// ENUMTEXTMETRICINTW etmi;
} ENUMFONTDATAW, *PENUMFONTDATAW;
Hi,
Magnus already commented about the video driver (if his changes were
good, he would send us patches).
However, uniata is not that bad, I was going to review it some time
after 0.3.3, and if the code is allright, it could be included. IIRC,
scsiport needs some improvement in order to fully support the uniata
driver.
WBR,
Aleksey Bragin.
On Aug 27, 2007, at 8:42 PM, Timo Kreuzer wrote:
> Hi, I just found some interesting stuff:
>
> Universal ATA driver (http://alter.org.ua/soft/win/uni_ata/)
> - generic NT driver for DMA/UDMA ATA / SATA with source code
>
> Universal VESA driver
> - based on ReactOS vbemp.sys
> - works on all windows NT and ReactOS
> the author has been working on this until very recently, so it
> might be
> better than our current driver
>
> Timo
Hi, I just found some interesting stuff:
Universal ATA driver (http://alter.org.ua/soft/win/uni_ata/)
- generic NT driver for DMA/UDMA ATA / SATA with source code
Universal VESA driver
- based on ReactOS vbemp.sys
- works on all windows NT and ReactOS
the author has been working on this until very recently, so it might be
better than our current driver
Timo
Hello,
As you probably saw, I recently rebranched 0.3.3 and made some changes to
it.
Now I'm at the point, where *I* think that it's ready.
I don't know if anyone else has any specific plans for 0.3.3, so I'm just
asking here now.
Otherwise, I think we could simply release the current branch as RC2 or even
REL. But also if we release it as RC2 now, what are the plans for the REL
version then?
Please also think of our planned 2-month release cycle.
I know that these are just estimated dates, where users *can* expect a
release and I myself said this a couple of times as well, but we already
skipped 0.3.2, so we shouldn't miss the "deadline" for 0.3.3 now.
Regards,
Colin
Hello,
I don't want to make problems in any way but... is it possible to make the titles of the emails a bit shorter when it could be done?
Some of them are really difficult to read and, in my opinion, the body of the email exists for writing more detailed explanations.
Sincerely,
Carlo Bramini
Hi,
How much work would it take to support a soundcard in ReactOS?
I would like to use it to help me reverse engineer a sound card to get
it working in Linux.
Kind Regards
James
Reformatted, improved and committed (28506 & 28507).
Thanks for contribution.
WBR,
Aleksey Bragin.
On Aug 22, 2007, at 1:53 AM, netzimme(a)aim.com wrote:
>
>
> Sorry the patch was wrong. I have forgot to change the function name.
>
>
> Thanks
> Daniel Zimmermann
Hi!
More voices from the past.
James
-------- Original Message --------
Subject: [ros-kernel] ReactOS status report for 10/12/1998
Resent-Date: Tue, 13 Oct 1998 00:21:40 -0500
Resent-From: ros-kernel(a)sid-dis.com
Date: Mon, 12 Oct 1998 22:24:40 -0700
From: rex <rex(a)lvcablemodem.com>
Reply-To: <ros-kernel(a)sid-dis.com>
To: ros-kernel(a)sid-dis.com <ros-kernel(a)sid-dis.com>
ReactOS status report for Monday, October 12th 1998
Current Kernel Release is 0.0.12
Working drivers: Driver Version
------------ -------
FS/Minix 0.0.1
IDE 0.1.2
Keyboard 0.0.4
Null 0.0.1
Parallel 0.0.1
SDisk 0.0.1
Welcome to Brian and good luck to him as he settles
in and learns of the vast intracacies and subtleties
of the ReactOS kernel.
Benoit Papillault has taken on the task of the
PE program loader.
Francois Asselin sent me a response indicating he
doesnt currently have time to work on the
schedular due to his studies. Perhaps he should
move to the inactive list.
An attempt to send mail to Iwan Fatahi's mail
account bounced. Iwan, if you're there, perhaps
you can let me know if you're working on anything,
and let the webmaster know your current email
address.
I've been sending messages to various people on
the kernel members listing asking for status on
their piece of the system. If I do not get a
responce after three tries I'll assume that person
is busy for the time being, send the info to the
appropriate lead and remove their name from the
status report. If anyone thinks that's not an
appropriate thing to do let me know.
Development Status:
Boot Loader
No Status.
DOS Loader
No Status.
Kernel: Brain Palmer
I/O Manager:
No Status.
Memory Management
No Status.
Process Management:
No Status.
Security Manager
No Status.
Filesystem Interface
No Status.
Miniport Drivers
No Status.
Local Procedure Calls: Giovanni Tapang
No Status.
System Calls:
Networking support: Arindam Das and Jason Eager
No Status.
Plug and Play support
No Status.
PCI
No Status.
Registry
No Status.
ACPI power managment
No Status.
Loader for PE executables: Benoit Papillault
No status.
Ports to other platforms
No Status.
Drivers:
Floppy: Rex Jolliff
No status.
IDE: Rex Jolliff
Worked on bug reports:
Driver crashes on detection of Secondary/Slave
with ATAPI CDROM connected. (I believe I found
the problem, but need an updated test system
to be sure)
Driver creates incorrect symbolic link for
2nd drive. (I'm not sure this bug exists, as
I can't reproduce it.)
Sound: Robert Bergkvist (FragDance Galore)
No status.
VFAT: Jason Filby
First release currently in testing.
Other Filesystems: Dennis Varouxis and Etienne Cochard
No status.
Console
No status.
Mouse: Jason Filby
No status.
Network
No status.
Serial
No status.
Video: Conor Stokes, Iwan Fatahi and Jerome Davadilla
Mail sent to Iwan Fatahi requesting status bounced.
System Libraries:
Stub Generator
No Status.
KERNEL32
No Status.
Identification of remaining libraries
No Status.
Milestones:
Working:
Kernel R13 Brain Palmer Est: 01/01/1999
Boot loader improvements
NASM new release compatability
Buffered I/O bugfix
VFAT R1 Jason Filby Est: 01/01/1999
IDE R2 Rex Jolliff Est: 10/31/1998
Second release will fix the 255 sector read limitation
and add timeout detection code.
Complete:
IDE R1 Rex Jolliff Est: 10/15/1998 Act: 09/20/1998
First release will locate up to 8 drives, make available
devices for the raw device and all dos compatable
partitions and read and write using non DMA I/O.
Kernel R12 David Welch Est: 09/31/1998 Act: 10/04/1998
New:
Multiple processes
System calls (this is already working)
Improved multithreading support
Support for additional filesystem operations
Some support for disk caching
On Hold:
Killed:
On 8/19/07, Colin Finck <mail(a)colinfinck.de> wrote:
> These changes were made to properly compile ReactOS under a Mac OS X host.
> They have nothing to do with MSVC or the Microsoft SDK headers.
Sorry I was not clear about what I meant in my rant and sounded bitchy
> Mac OS X defines its own wchar_t type in "ctype.h". But it uses _WCHAR_T for
> reporting that the type has been defined and not _WCHAR_T_DEFINED like
> Windows does.
> This is why I needed to add a handling for _WCHAR_T in "winnt.h".
> But if "ctype.h" is now included before "winnt.h", these changes don't have
> any effect. This is why I changed the header order.
>
> Of course, there might be other "solutions" to this problem (like adding all
> possible definitions that wchar_t has been defined into the Makefile), but
> this is the simplest one.
> And I see no reason not to do this for fixing this problem.
It makes anyone doing a diff have more stuff to have to workaround.
There are constantly minor updates and fixes to the unicode tables in
Wine because Microsoft did not just generate them from the uncode.org
spec but added a bunch of stuff. Wine currently builds on OS X with
the header order as it stands and figures out someway around it. I
guess its using a define in the makefile for _WCHAR_T generated by
configure or something. I have not looked so don't quote me on that. I
don't really care if you want to change it to make it less of a hassle
to build on OS X for ReactOS but its just going to break again next
time someone syncs the unicode lib so its better if you can work
around it in the makefile.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
Hi,
sorry - no, this is an olpc-specific code in olpc branch, I have to
emulate some PCI hardware (the code is taken from Linux), however
ReactOS's PCI access is more complicated, and thus I slightly
improved the code.
As for that crash - hmm. I will try the real hardware today maybe.
WBR,
Aleksey Bragin.
On Aug 22, 2007, at 7:31 AM, James Tabor wrote:
> Hi!
> Could this be related to 28448? I mean could it fix this? The
> buffer address
> goes down from 8XXXXX to 3fffff (yes backwards, I watch it) and
> faults.
> This fault was before 28448 and on real hardware. Display is normal
> and mouse
> moves.
> Thanks,
> James
>
> Unhandled exception
> ExceptionCode: c0000005
> Faulting Address: 3fffff
> Address: 78010e04 C:\ReactOS\system32\msvcrt.dll
> CS:EIP 1b:78010e04
> DS 23 ES 23 FS 3b GS 0
> EAX: 0010ad41 EBX: 003fffff ECX: 00001000
> EDX: 009a2068 EBP: 0087f5b4 ESI: 00000002 ESP: 0087f5a0
> EDI: 009a2068 EFLAGS: 00010217
> Frames:
> 78000000+122c6 C:\ReactOS\system32\msvcrt.dll
> 400000+742eb C:\ReactOS\explorer.exe
> 400000+609f4 C:\ReactOS\explorer.exe
>
> _write lib/sdk/crt/io/write.c Line 55
> .
> .
> .
> while (_nbyte--) {
> ----> if (*in == 0x0a) {
> .
> .
> .
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
Hi!
Could this be related to 28448? I mean could it fix this? The buffer address
goes down from 8XXXXX to 3fffff (yes backwards, I watch it) and faults.
This fault was before 28448 and on real hardware. Display is normal and mouse
moves.
Thanks,
James
Unhandled exception
ExceptionCode: c0000005
Faulting Address: 3fffff
Address: 78010e04 C:\ReactOS\system32\msvcrt.dll
CS:EIP 1b:78010e04
DS 23 ES 23 FS 3b GS 0
EAX: 0010ad41 EBX: 003fffff ECX: 00001000
EDX: 009a2068 EBP: 0087f5b4 ESI: 00000002 ESP: 0087f5a0
EDI: 009a2068 EFLAGS: 00010217
Frames:
78000000+122c6 C:\ReactOS\system32\msvcrt.dll
400000+742eb C:\ReactOS\explorer.exe
400000+609f4 C:\ReactOS\explorer.exe
_write lib/sdk/crt/io/write.c Line 55
.
.
.
while (_nbyte--) {
----> if (*in == 0x0a) {
.
.
.
Hello,
please provide your real name (this is a must for every commit), and
also how to test it under Windows (maybe you wrote some test app for
this - it would be useful too).
WBR,
Aleksey Bragin.
On Aug 21, 2007, at 3:39 AM, netzimme(a)aim.com wrote:
> Hallo
>
> Have a patch that implemented the function IoCheckEaBufferValidity
> in ntoskrnl\io\iomgr\util.c.
> Tested with Windows 2000 and Vista Ultimate 64 Bit.
> Perhaps some one can comit it for me.
>
> Thanks
> dz
>
On 8/19/07, cfinck(a)svn.reactos.org <cfinck(a)svn.reactos.org> wrote:
> - Always include "wine/unicode.h" before all other headers, when we need the wchar_t type.
Please stop changing the header order. If you need to do this then
something is wrong. The Wine headers are mostly correct as far as the
PSDK/WDK goes and if you build Wine on MSVC you DO NOT have to make
these invasive changes to the source even when using the SDK headers.
Fix the ROS headers or work around system limitations some other way.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
Hi,
I want ReactOS to become free again. From gnu.org,
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve
the software. More precisely, it refers to four kinds of freedom, for the users of the software:
* The freedom to run the program, for any purpose (freedom 0).
* The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to
the source code is a precondition for this.
* The freedom to redistribute copies so you can help your neighbor (freedom 2).
* The freedom to improve the program, and release your improvements to the public, so that the whole
community benefits (freedom 3). Access to the source code is a precondition for this.
We forget what this is all about. We need to be liberated from the shackles and chains.
Replace "Tainted Developers" with this:
Referring to Proprietary Programs:
Don't in any circumstances refer to any closed source proprietary code for or during your work on
ReactOS! (Or to any other proprietary programs, Unix, Novel, Solaris, Microsoft,.)
If you have a vague recollection of the internals of a closed source program, this does not
absolutely mean you can't write an imitation of it, but do try to organize the imitation internally
along different lines, because this is likely to make the details of the software version irrelevant
and dissimilar to your results.
It's from:
http://www.gnu.org/prep/standards/html_node/Reading-Non_002dFree-Code.html#…
If is good for FSF/GNU it's good enough for us. I don't think we need to vote on this, just
change it! Remember this is GNU/ReactOS! Not SFLC/Wine!
Thanks,
James
Dear Devs,
I've tested a win32 port of rdesktop for linux, and it works in current
trunk (http://img440.imageshack.us/my.php?image=rdesktop3hi1.jpg), since our
rdp client doesn't work, I was wondering if this one could be included
instead, it's released under gpl, perhaps adding a gui, I don't think it's a
lot of work, correct me if I'm wrong, you can find the sources here:
http://os.american-data.com/rdesktop/win32/
Best regards,
gabriel_it
Have a nice day!
_________________________________________________________________
Scarica GRATIS Internet Explorer 7 personalizzato MSN
http://optimizedie7.msn.com/default.aspx?mkt=it-it
This should go into rosapps, unless it's being used during the setup
process for example (which it is not).
WBR,
Aleksey Bragin.
On Aug 14, 2007, at 12:52 AM, gedmurphy(a)svn.reactos.org wrote:
> Author: gedmurphy
> Date: Tue Aug 14 00:52:47 2007
> New Revision: 28324
>
> URL: http://svn.reactos.org/svn/reactos?rev=28324&view=rev
> Log:
> - fix the code, untested
> *note, shouldn't this be in rosapps?
>
> Modified:
> trunk/reactos/base/applications/network/dwnl/dwnl.c
> trunk/reactos/base/applications/network/dwnl/dwnl.rbuild
>
Hi ReactOS guy's,
are you not able to discuss a topic in your forum or why did you delete my
post in http://www.reactos.org/forum/viewtopic.php?t=4307 ?
Here is it again:
[quote="jimtabor"]
The irc meetings, there are two I think. It was voting on how to do the
audit. Later if I remember right, we started movie review and joking around
with unrelated issues.
[/quote]
I'm missing something about the meetings. [url=
http://www.reactos.org/archives/public/ros-dev/2006-January/007478.html]Ste…'s
mail[/url] starts with:
[quote="Steven Edwards"]
There has been a lot of talk about possible tainted code in ReactOS and or
developers that had access to leaked Microsoft source code.
[/quote]
and later
[quote="Steven Edwards"]
We know of four developers who have had access to leaked sources prior to
working on ReactOS..
[/quote]
Depend on the [url=http://www.reactos.org/en/dev_legalreview.html]ReactOSproject
development policy[/url]
[quote="ReactOS project development policy"]
Developers who have had access to proprietary source code that would have
originally fallen under trade secret protection (including, for example, the
leaked Microsoft Windows source code) are a special case. The copyright
issues are unchanged, as are the patent issues, but any developer who has
the code is clearly either under an NDA or else does not have a license to
possess the code. In the latter case, there is a clear violation of the
relevant trade secrets by the developer. As such, this kind of code is
unsuitable even for research and understanding. It is the policy of the
Project to not take submissions from developers who have or use any such
proprietary code in their development efforts for ReactOS.
[/quote]
this developers have to be banned from the project. Steven's mail or the
developer's voting wasn't so restrictive:
[quote="Steven Edwards"]
4) any developer that had access to leaked sources is baned from
contributing code to the project for any of the modules that are the
same as leaked sources they examined.
[/quote]
The question is, why are the tainted developers not banned? If only a few of
the developers had access to the leaked windows source code, it is not a
problem to ban them. I think more than four developers had access to the
leaked windows source code. In this case it will never get a vote for
banning the tainted developers, because they must ban itself. It exists the
'Open letter to all' from Alex. I've got the original mail with all the
names from one of the developers.
[quote="Alex's 'Open letter to all'"]
/*Steven, Aleksey, Mike and myself had leaked windows code and looked at it.
KJK, Eric, Filip, Magnus and Marteen had IDA and used it for reverse
engineering. 9 developers, and these are only some cases.*/ Herve too,
sometimes used IDA to verify some flags (I once helped him understand a
weird DEVICE_EXTENSION structure), and Thomas, although against
reverse-engineering, also used IDA to verify some implementations, although
he said he never used it to actually reverse-engineer, and I believe him,
although, once you have seen the taint, it's hard to really psycologically
prove how much you were, or were not influenced by it. /*With more then
2/3rds of the entire developer team having broken the law and/or our IP
policy, I continued my work in the same way.*/
[/quote]
Now the story make sense. The implementation of ReactOS is based on the
leaked windows source code and possible more than the four named developers
had or have access to this code.
[quote="jimtabor"]
As you all can see, things have gone on to this project. Money was the key
word here. Wine, Casper, GvG, hbirr etc,,, mass manipulation to gain from
other peoples work.
[/quote]
And now it makes sense why you accuse some of the developers, which had left
the project, that they have done something for money...
The only developer, which has something to do with money, is Alex. In May he
was bought by Microsoft.
Hi!
When will ROS 0.3.3 comming out?
On July, 21th you anounced 0.3.3 RC1 at
http://www.reactos.org/archives/public/ros-dev/2007-July/009571.html
You have also changed the front-page, that the actual version is 0.3.3 RC1
and on the downloadside there is now also only 0.3.3 RC1.
Will 0.3.3 any time really comming or existing now 0.3.3 RC1 for it instead
and the next one will be 0.3.4 ?
Btw: On the download-side the links to the CD-Booklets don't exists.
It showns now to 0.3.3-RC booklets, but the only one which exists are 0.3.1
booklets.
Greatings
theuserbl
_________________________________________________________________
Sie suchen E-Mails, Dokumente oder Fotos? Die neue MSN Suche Toolbar mit
Windows-Desktopsuche liefert in sekundenschnelle Ergebnisse. Jetzt neu!
http://desktop.msn.de/ Jetzt gratis downloaden!
Hi all,
I wonder if the RosBE-Windows must be the one which removes autogenerated files.
In this case , we have to :
- merge the list into RosBE-Unix
- publish updated versions when the list changes.
- last but not least, the user must have the svn versions of RosBE to get a completely clean tree.
Colin suggested we can put it into the Makefile, which would be simpler and more efficient.
Kind regards,
Sylvain Petreolle (aka Usurp)
--- --- --- --- --- --- --- --- --- --- --- --- ---
Run your favorite Windows apps with free ReactOS : http://www.reactos.org
Listen to non-DRMised Music: http://www.jamendo.com
Hi
is betov are moreon or idot or brian dead person
I can not longer keep my feeling in shape thanks to him
It seam that betov is out damges every good open source
project on the market. Let see now which project he is trying
damges
1.ReactOS
It is well known he dislike us, and my advice we ignore him
it seam he does not known what his is talking about, and
it seam in my eyes his claim is not vaild
2. Sano
ReactOS borro some code from this project
and that code betov trying convice it is illage
3. SDL
Almost same code can be found in SDL
for same part we talking about, the code
are almost same as Sano code. That
mean Betov trying destor this project
as well
4. Nasm32
what he have gone after NASM 32, now
and claim it is illage for they do not ship
the source code in the binary. or the
licen agreemtn, and some other stuff
more we can read about his stupied
http://groups.google.com/group/alt.lang.asm/browse_thread/thread/35cd7e11ff…
it is not wonder people do not take him serius he is like a big moron
and trying sabtages opensource project world wide for people do not
support his rosasm project. And I have follow now his writting for few
month and more I read, more it seam it is something wrong with his
brain. he calling people with bad names and attact people when
they ask him simple question, it mean he socal skill is bad or
is is brain dead, that is my cludtions after reading his vaurs stuff
he writitning on the net. Or even better bethov is getting pay leading
sabtages agaist opensource project that is well known, He maybe getting
pay from MS/DMCA/NOVELL how knowns, but it seam not in this case
it seam he is complete brian dead.
Hello list,
I'm new here, so at first I'd like to greet everyone ;)
second: I had some problems running rbuild on WinXP SP2
self compiled with msvc 8.0 (Express) to produce .vcproj files.
I've found the problem in vcprojmaker.cpp and another thing, which
prevents me from building rbuild in genguid.cpp and I would like to
contribute a patch.
Kind regards,
Michael Sprauer
Fixed in 28257.
WBR,
Aleksey Bragin.
On Aug 9, 2007, at 9:37 AM, James Tabor wrote:
> ./include/internal/kd.h:212:KdpKdbgInit(
>
> obj-i386/ntoskrnl/kd/kdinit.o: In function `KdInitSystem@8':
> /mnt/reactos/fullrel/build/ntoskrnl/kd/kdinit.c:(.data+0x24):
> undefined reference to `_KdpKdbgInit@8'
From the SDK!
Come on! get upto date!
W32KAPI BOOL APIENTRY
NtGdiAlphaBlend(
__in HDC hdcDst,
__in LONG DstX,
__in LONG DstY,
__in LONG DstCx,
__in LONG DstCy,
__in HDC hdcSrc,
__in LONG SrcX,
__in LONG SrcY,
__in LONG SrcCx,
__in LONG SrcCy,
__in BLENDFUNCTION BlendFunction,
__in HANDLE hcmXform // I saw a zero here.
);
We have this in psdk/ntgdi.h
W32KAPI
BOOL
APIENTRY
NtGdiSetIcmMode(
IN HDC hdc,
IN ULONG nCommand, // see below,,,, I saw 1 -> 4 here.
IN ULONG ulMode
);
/* NtGdiSetIcmMode */
#define ICM_SET_MODE 1
#define ICM_SET_CALIBRATE_MODE 2
#define ICM_SET_COLOR_MODE 3
#define ICM_CHECK_COLOR_MODE 4
Using a good hook and compare eax to the list will set you free.
James
After r28205, ntoskrnl/ke/i386/init.S has no more contents and is removed from build.
Remove it from trunk too.
Kind regards,
Sylvain Petreolle (aka Usurp)
--- --- --- --- --- --- --- --- --- --- --- --- ---
Run your favorite Windows apps with free ReactOS : http://www.reactos.org
Listen to non-DRMised Music: http://www.jamendo.com
Yes, the whole issue is at pushing operands to stack, performing well-
documented assembly instructions to perform the asked action (div,
mul, shl, shr, etc), and handling some special, though obvious, cases
(like if you do a shl of some longlong number by more than 64 bits,
you always end up with 0, there is no need to call math instructions
in order to compute this).
I will let you know results when I speak with SDL.
WBR,
Aleksey Bragin.
On Aug 4, 2007, at 8:52 PM, Daniel Hazelton wrote:
> On Saturday 04 August 2007 12:28:09 Aleksey Bragin wrote:
>
> I can't see where that file has anything to do with the functions
> (e.g:
> sqrt()/alldiv()) that Betov claims are duplicated. (I've gone
> through that
> file and can't find any single place where it does any more math than
> controlled bit-shifts. No advanced math or anything.)
>
> While there might be similar code, for, say, memory barriers, that
> codes
> construction would be dictated by the specification of the target
> machine
> (and, to some extent, the OS). If the code for sqrt/alldiv is the same
> between SDL/ROS I don't see a problem - they are both GNU projects
> and "cross
> pollination" like that is legal.
>
> Whats more is that, while assembly is abstract enough to let some
> things be
> done in more than one way, most of the more complex functionality -
> like math
> algorithms - are so limited in the possibilities of variation that
> I can
> easily see two unconnected people arriving at the exact same
> solution. QED:
> Even if the code appears identical (except for things like variable
> names,
> et. al) there is a compelling reason for it and it does not mean
> the code has
> been copied in any way, shape or form. (And if you look at the ROS
> commit
> history I'm sure the code in question existed before MS released
> the SSCLI2.0
> source. Which means that the code can't be an "illegal use of MS
> property" -
> it was around before said property was available).
>
> ...Okay, enough of this outsider sticking his neck out. I've said
> enough and
> it's time to disappear and wait for a really usable version of ROS
> to hit.
> (though I have compared it to XP under Qemu and ROS rocks!)
>
> DRH
Just so people don't build up rumours, this code is located in SSCLI
2.0, in the file clr/src/vm/i386/jithelp.asm . Function names are
different, however assembly code is similar.
License issues are not fully cleared up, so opinions from people
having knowledge in this area are welcome.
WBR,
Aleksey Bragin.
On Aug 4, 2007, at 7:52 PM, Daniel Hazelton wrote:
> On Saturday 04 August 2007 04:32:32 Mike Swanson wrote:
>> On Friday 03 August 2007 16:28:21 Daniel Hazelton wrote:
>>> unless you hold full copyright to the software (ie: you are the
>>> one who
>>> has released it under the GPL) then there is no way you can
>>> distribute it
>>> for commercial purposes. (You can make money to cover
>>> distribution costs
>>> and/or make money from support but not off the software itself.)
>>
Hi,
Recently Betov made some accusations regarding possible usage of MS's
copyrighted code in ReactOS's CRT library (example lib/sdk/libcntpr/
math/i386/sqrt_asm.s, alldiv_asm.s, and other files).
Here is my official statement in regarding to this false accusation:
This source code originally was imported into ReactOS from SanOS
project, where it was said as having GPL license (all original
copyrights are kept). After a lot of complains from Betov (aimed at
getting attention to his own project, not at improving ReactOS),
developers thought it worths looking into the issue deeper.
I performed some investigation, and found that SDL project
(www.libsdl.org) has the same code in trunk and in v1.2 branch
(http://www.libsdl.org/cgi/viewvc.cgi/trunk/SDL/src/stdlib/
SDL_stdlib.c?view=markup).
Everyone can compare asm source code with respective functions found
in MSVC's CRT source code. It matches up to label names, however
numbers have been converted from dec to hex representation. The code
in SDL project is marked as "GPL" and author is stated as "Sam
Lantinga".
It may look like a serious problem, but in reality, the source code
of these functions is released by Microsoft in SSCLI 2.0, with a
license which allows GPLing of the source code, with one restriction:
"You may not use or distribute this Software and any derivative works
in any form for commercial purposes.".
SSCLI 2.0 can be freely downloaded by everyone, license is also
certainly available to read.
I'm going to communicate with SDL about this issue, but since ReactOS
is not used commercially, it's not a problem for ReactOS now. We are
ready to collaborate with SDL on removing this issue, if it's
considered a real problem.
With the best regards,
Aleksey Bragin.
I was finally able to compile and build the boot cd, but setup hangs when doing "Importing hivesys.inf..."
But this is another trouble, different from previous one.
And I did a complete clean before compiling.
Sincerely,
Carlo Bramini
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ros-dev" ros-dev(a)reactos.org
Cc :
Date : Fri, 3 Aug 2007 18:21:36 +0200
Subject : Re: [ros-dev] ERROR when compiling ROS
> It seems that the very last change fixed my problem.
>
> C:\RosBE>svn up
> U tools\rbuild\wineresource.cpp
> Aggiornato alla revisione 28138.
>
> Sincerely,
>
> Carlo Bramini
>
> ---------- Initial Header -----------
>
> >From : ros-dev-bounces(a)reactos.org
> To : "ReactOS Development List" ros-dev(a)reactos.org
> Cc :
> Date : Fri, 3 Aug 2007 17:55:10 +0200
> Subject : Re: [ros-dev] ERROR when compiling ROS
>
> > Hi,
> >
> > There were some changes in the build system today.
> > Please first try to update to *latest* trunk and then do a complete clean
> > build.
> >
> > If this doesn't help, you can either try to delete all autogenerated files
> > yourself, which were not deleted by the "clean" script or get a complete new
> > checkout.
> >
> > I can build recent trunk (r28138) and our BuildBot has no problems as well
> > now.
> >
> > Regards,
> >
> > Colin
> >
> >
> > > -----Original Message-----
> > > From: ros-dev-bounces(a)reactos.org
> > > [mailto:ros-dev-bounces@reactos.org] On Behalf Of carlo.bramix
> > > Sent: Friday, August 03, 2007 5:32 PM
> > > To: ros-dev
> > > Subject: [ros-dev] ERROR when compiling ROS
> > >
> > > Hello,
> > > Today I wasn't able to compile ROS.
> > > I got this error:
> > >
> > > [RBUILD] makefile.auto
> > > Processing failed: No such file or directory
> > >
> > > Sincerely,
> > >
> > > Carlo Bramini
> > >
> > >
> > >
> > > ------------------------------------------------------
> > > Scegli infostrada: ADSL gratis per tutta l'estate e telefoni
> > > senza canone Telecom
> > > http://click.libero.it/infostrada
> > >
> > >
> > > _______________________________________________
> > > Ros-dev mailing list
> > > Ros-dev(a)reactos.org
> > > http://www.reactos.org/mailman/listinfo/ros-dev
> >
> > _______________________________________________
> > Ros-dev mailing list
> > Ros-dev(a)reactos.org
> > http://www.reactos.org/mailman/listinfo/ros-dev
> >
>
>
> ------------------------------------------------------
> Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
> http://click.libero.it/infostrada
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
http://click.libero.it/infostrada
It seems that the very last change fixed my problem.
C:\RosBE>svn up
U tools\rbuild\wineresource.cpp
Aggiornato alla revisione 28138.
Sincerely,
Carlo Bramini
---------- Initial Header -----------
>From : ros-dev-bounces(a)reactos.org
To : "ReactOS Development List" ros-dev(a)reactos.org
Cc :
Date : Fri, 3 Aug 2007 17:55:10 +0200
Subject : Re: [ros-dev] ERROR when compiling ROS
> Hi,
>
> There were some changes in the build system today.
> Please first try to update to *latest* trunk and then do a complete clean
> build.
>
> If this doesn't help, you can either try to delete all autogenerated files
> yourself, which were not deleted by the "clean" script or get a complete new
> checkout.
>
> I can build recent trunk (r28138) and our BuildBot has no problems as well
> now.
>
> Regards,
>
> Colin
>
>
> > -----Original Message-----
> > From: ros-dev-bounces(a)reactos.org
> > [mailto:ros-dev-bounces@reactos.org] On Behalf Of carlo.bramix
> > Sent: Friday, August 03, 2007 5:32 PM
> > To: ros-dev
> > Subject: [ros-dev] ERROR when compiling ROS
> >
> > Hello,
> > Today I wasn't able to compile ROS.
> > I got this error:
> >
> > [RBUILD] makefile.auto
> > Processing failed: No such file or directory
> >
> > Sincerely,
> >
> > Carlo Bramini
> >
> >
> >
> > ------------------------------------------------------
> > Scegli infostrada: ADSL gratis per tutta l'estate e telefoni
> > senza canone Telecom
> > http://click.libero.it/infostrada
> >
> >
> > _______________________________________________
> > Ros-dev mailing list
> > Ros-dev(a)reactos.org
> > http://www.reactos.org/mailman/listinfo/ros-dev
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
http://click.libero.it/infostrada
Hello,
Today I wasn't able to compile ROS.
I got this error:
[RBUILD] makefile.auto
Processing failed: No such file or directory
Sincerely,
Carlo Bramini
------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
http://click.libero.it/infostrada
The patch (attached into that bug) fixes the signaled defect.
Sincerely,
Carlo Bramini.
------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
http://click.libero.it/infostrada
On Tue, 31 Jul 2007 05:47:22 +0100 (BST), "CK Raju"
<ckraju68(a)yahoo.co.in> said:
> But is the process of recognising other partitions
> stable ? Can ReactOS be installed in extended
> partitions ? Does it recognise extended partitions now
> ? These are the questions that will be eliminated with
> adoption of a cross-installer.
It did break the partition table I had the 2 times I have tried on real
hardware.
The two times, I had Ubuntu installed in logical partitions.
Each times, it see my 10Gb as 4Gb, and give a warning it does not
understand correctly
my partition table.
First time, it did seems to see some unused space (there was probably
none in reality) and
I let it installed there, stopping just before installing the boot
loader (I wanted to use
grub to start it). But when I tried to reboot, computer was unable to
boot, not even go to
the BIOS. Reinitializing CMOS or reflashing BIOS did not help. Finally
discover that
unplugging the HD fixed the BIOS. Probably a BIOS bug, expecting a
correct MBR and partition
table.
Next time (about 1 week ago), I had made a primary partition for it, and
still have Linux
on logical one. But it seems to have break the partition table once
again (not sure how
I convinced myself of that however, I think because I was not able to
search for
/boot/grub/menu.lst from grub on hd0).
I was given on a link in IRC about an unfinished patch on
hyperheterodyne, or superheterodyne...
that was about the partition manager. Was 1 or 2 years old however.
I read it a bit, patch and code for usetup?, but not good enough yet to
really understand.
So I consider the installer very dangerous right now.
--
http://www.fastmail.fm - Send your email first class
Let's try to calm down the emotions, otherwise people may be
offended :-)
I know Jim is the one who, I think, *never* commited a patch that
breaks something (testing a patch before commiting for one week -
easy), but we have to tolerate that other people (including myself)
tend to do mistakes from time to time.
WBR,
Aleksey Bragin.
On Aug 1, 2007, at 11:38 PM, Ged wrote:
> James Tabor wrote:
>> Man! You are right! The newbies are creating more work for me at
>> every
>> turn! I wish they would stop committing on crack!
>>
>> Thank you for the extra work!
>>
>
> That's rather harsh and partonising!
> These so called 'newbies' have done a great deal of good work
> recently.
>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
Thanks for all wishes, I really had a nice vacation in Montenegro
(I'll maybe post some photos soon).
Great work on the reactos tree, ros-diffs sounds very promising. I'm
fully back into ReactOS by tomorrow.
WBR,
Aleksey Bragin.
On Jul 24, 2007, at 10:08 PM, Aleksey Bragin wrote:
> Hello,
> I'll be on vacation, starting from tomorrow (25th of July) and
> lasting till 1st of August.
>
>
>
> Have fun with development while I'm away!
>
> WBR,
> Aleksey Bragin.
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
So, is it reverted?
iirc, I even marked those files as "shared with Wine" in the
README.WINE file. I did the merging of Wine changes once or twice
there, and it's not a big fun to go change-by-change, trace revision
when it was changed, look up why and was it a necessary change or not.
WBR,
Aleksey Bragin.
On Aug 1, 2007, at 11:05 AM, Thomas Weidenmueller wrote:
> No it's not worth the hazzle because those changes result in *NO*
> optimizations anyway. The code that was changed were calls to
> InvalidateRect to NtUserInvalidateRect. Since InvalidateRect is
> already
> forwarded to NtUserInvalidateRect this doesn't really improve
> anything,
> it's the same overhead. These changes should be reverted, not just
> because it makes no sense to optimize these function calls even more
> because they're absolutely not time-critical.
>
> Please revert.
>
> - Thomas
>
> Steven Edwards wrote:
>> On 7/31/07, greatlrd(a)svn.reactos.org <greatlrd(a)svn.reactos.org>
>> wrote:
>>> user32 cleanup lite
>>> redirect the InvalidateRect@12 to NtUserInvalidateRect@12 in the
>>> def file
>>
>>> Modified:
>>> trunk/reactos/dll/win32/user32/controls/button.c
>>> trunk/reactos/dll/win32/user32/controls/combo.c
>>
On 7/31/07, greatlrd(a)svn.reactos.org <greatlrd(a)svn.reactos.org> wrote:
> user32 cleanup lite
> redirect the InvalidateRect@12 to NtUserInvalidateRect@12 in the def file
> Modified:
> trunk/reactos/dll/win32/user32/controls/button.c
> trunk/reactos/dll/win32/user32/controls/combo.c
Is it really worth the merge hassle to change it in these two files?
They are almost 100% shared with Wine and I doubt the overhead in
calling InvalidateRect vs NtUserInvalidateRect is worth the hassle on
whoever the maintainer is going to be....
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo
Hello.
This bug contains an useful patch that removes a large amount of duplicated code from taskmgr.
Sincerely,
Carlo Bramini
------------------------------------------------------
Scegli infostrada: ADSL gratis per tutta lestate e telefoni senza canone Telecom
http://click.libero.it/infostrada
There was a patch on bugzilla replacing some of the greyscale images
from wine's card.dll with colored ones.
http://www.reactos.org/bugzilla/show_bug.cgi?id=2476
Ged noticed that they looked exactly like windows images. The wine
images seem to be windows images converted to greyscale.
Maybe we should replace these images. I have found an opensource project
with nice images: MacSolitaire
http://sourceforge.net/projects/macsolitairex