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