Since revisions 37313-37314 i observe repetitive problems with WIDL. Every
time WIDL is called by our BE, it throws an exception:
Faulting application widl.exe, version 0.0.0.0, time stamp 0x491c610d,
faulting module widl.exe, version 0.0.0.0, time stamp 0x491c610d, exception
code 0xc0000005, fault offset 0x00005f0a, process id 0x17f8, application
start time 0x01c945b3aefa8530.
> [WIDL] obj-i386\include\reactos\idl\svcctl_s.c
> [WIDL] obj-i386\include\reactos\idl\svcctl_s.h
> mingw32-make: *** Waiting for unfinished jobs....
> mingw32-make: *** [obj-i386\include\reactos\idl\svcctl_s.h] Error
-1073741819 (0xC0000005)
> mingw32-make: *** [obj-i386\include\reactos\idl\svcctl_s.c] Error
-1073741819 (0xC0000005)
Reverting revisions 37313 and 37314 fixes this problem. Apart from me, this
issue been noted by dreimer, encoded and Christoph_vW. Dunno about
Christoph, but me, dreimer and encoded are using Vista/2008. I couldnt
replicate this issue on XP/2003 though.
Hi folks,
during the development of the 1st-stage-GUI-setup I experienced some problems
with physical drive detection with reactos api (because it's fairly
incomplete - it works under windows). To continue the development and to
bring more benefits I want to make following suggestion. Sooner or later we
need a drive/volume/partition management tool, so i will continue with this
basing on the usetup code and replaced later by working reactos api calls.
So we can use this tool to determine the current harddisk(s) layout(s),
create/delete partitions, format with different file systems and
show/install/configure the current boot loader. Later I can use this
functions to handle the drives during installation process in a similiar way.
What do you think about this plan?
Matt
--
Matthias Kupfer Telefon +49 (0) 371 236 46 52
Wilhelm-Firl-Straße 21 Mobil +49 (0) 160 859 43 54
09122 Chemnitz
Hi,
> Todo: Get it at the end of the executable, so we can safely remove it.
I think it can be safely removed from inside of the executable — just
wasting some address space.
On Mon, Nov 10, 2008 at 9:25 AM, <gschneider(a)svn.reactos.org> wrote:
> Author: gschneider
> Date: Mon Nov 10 08:25:24 2008
> New Revision: 37281
>
> URL: http://svn.reactos.org/svn/reactos?rev=37281&view=rev
> Log:
> Implement ConvertSecurityDescriptorToStringSecurityDescriptorW based on Wine code.
Please add the appropriate copyright headers to the source file
stating the original author when implementing code based on third
party sources.
--
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 have recently been working on getting SEH into the x64 port. This
covers several parts. One of them is compiler support.
On x64 SEH is table based rather than code based, that means it needs
tables of unwind data. These can be generated from DWARF unwind info -
which gcc generates - and that's what I'm working on.
The x64 version of rsym shall parse the DWARF unwind data and convert it
into Windows compatible unwind data.
Now there is a problem. While older versions of mingw64 used the
".debug_frame" section, the newer versions use the ".eh_frame" section.
That is good and bad at the same time. What does that mean? What's the
difference?
The .eh_frame section isn't part of the DWARF 2 or 3 specification, it's
a GNU extension / part of the LSB-Core specification. Documentation was
hard to find, but google is your friend and it seems there's only one
major difference to the debug_frame section and that is relative
addressing rather than absolute. This is actually very good and saves
the day for all modules that live in kernel space, because the addresses
are only 32 bits.
There is still a problem left. While the .debug_frame section is by
default put into the output executable as a seperate section, the
.eh_frame section isn't. The default linker script puts it into the
".rdata" section. But there it's kinda lost and I don't want to keep it
anyway.
With ntoskrnl there's no problem as it uses it's own linker script
anyway. I can change it, so the .eh_frame section is put at the end of
the executable. But how do I do this for the other modules? Do i need to
provide a new default linkerscript for all other modules? Can I "fix"
this behavior in RosBE64 (the files in lib/ldscripts seem to be unused)?
Or does anyone know a command line option to change this default behavior?
Regards,
Timo
On Nov 7, 2008, at 11:31 PM, cgutman(a)svn.reactos.org wrote:
> Author: cgutman
> Date: Fri Nov 7 14:31:34 2008
> New Revision: 37248
>
> URL: http://svn.reactos.org/svn/reactos?rev=37248&view=rev
> Log:
> - Check the status of IPSendDatagram
> - Validate the protocol
> - Use the hash value of the NCE address to get the lock
> - Simplify TCPAbortListenForSocket
> - Hardcode the length of the array
>
> + HashValue = *(PULONG)(&NCE->Address.Address);
> + HashValue ^= HashValue >> 16;
> + HashValue ^= HashValue >> 8;
> + HashValue ^= HashValue >> 4;
> + HashValue &= NB_HASHMASK;
It's used at least three times in the source code, I would do an
inline hash-calculating function for that.
On Fri, Nov 7, 2008 at 4:54 AM, Aleksey Bragin <aleksey(a)reactos.org> wrote:
> I highly doubt they work, in fact I'm sure they won't work at all.
> But their only duty is to allow building unmodified rpcrt4 from Wine.
> I still have a hope, somewhere very very deep in my soul, that Wine
> will stop using linux-specific APIs in DLLs.
You can hope and dream.
One of the problems we saw, such as in the case of wininet, using unix
sockets instead of winsock gave something like a 20% speedup in
performance. Another issue was that select on linux (thanks to glibc)
fixes FD_SETSIZE at 1024 so the solution was to move to using poll().
The poll/select thing is not that big of a deal as it can be wrapped
but fixing the winsock performance issues may require someone to
dedicate a lot of time profiling. If you can fix all of the issues so
that performance will be the same with pure win32, then I am sure
Alexandre will accept 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
Hi,
LOL, Wine code does not work at all.... I tested Area.exe with the
latest head and it dies and the application continues to work with out
drawing the PATH figures.
ReactOS:
(subsystems/win32/win32k/objects/gdiobj.c:544) Object->cExclusiveLock = 1
(subsystems/win32/win32k/objects/path.c:1911) BeginPath 1 0xbc07024b
(subsystems/win32/win32k/objects/path.c:1936) BeginPath 2 h 0xbd07024b
p 0x8d9b4830
(subsystems/win32/win32k/objects/path.c:2022) EndPath 0xbd07024b
(ntoskrnl/mm/rpoolmgr.h:820) Trying to allocate 8192 bytes from paged
pool - nothing suitable found, returning NULL
(subsystems/win32/win32k/objects/path.c:1609) Should never happen
(subsystems/win32/win32k/objects/path.c:1609) Should never happen
(subsystems/win32/win32k/objects/path.c:1609) Should never happen
(subsystems/win32/win32k/objects/path.c:1609) Should never happen
(subsystems/win32/win32k/objects/path.c:1609) Should never happen
(subsystems/win32/win32k/objects/path.c:1612) Got path flag
(ntoskrnl/mm/rpoolmgr.h:820) Trying to allocate 4096 bytes from paged
pool - nothing suitable found, returning NULL
<snip>
(ntoskrnl/mm/rpoolmgr.h:820) Trying to allocate 11264 bytes from paged
pool - nothing suitable found, returning NULL
(subsystems/win32/win32k/objects/gdiobj.c:544) Object->cExclusiveLock = 1
(subsystems/win32/win32k/objects/path.c:1911) BeginPath 1 0xbd07024b
(subsystems/win32/win32k/objects/path.c:1936) BeginPath 2 h 0xbe07024b
p 0x8d9b4830
(subsystems/win32/win32k/objects/path.c:2022) EndPath 0xbe07024b
(ntoskrnl/mm/rpoolmgr.h:820) Trying to allocate 2048 bytes from paged
pool - nothing suitable found, returning NULL
<snip>
(ntoskrnl/mm/rpoolmgr.h:820) Trying to allocate 2400 bytes from paged
pool - nothing suitable found, returning NULL
Entered debugger on last-chance exception (Exception Code: 0xc0000005)
(Page Fault)
Memory at 0x000004B0 could not be written: Page not present.
kdb:> bt
Eip:
<win32k.sys:84c9c (subsystems/win32/win32k/objects/bezier.c:160
(GDI_InternalBezier@20))>
Frames:
<win32k.sys:84dfd (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84deb (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84dfd (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84deb (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84dfd (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84deb (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84deb (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:84dfd (subsystems/win32/win32k/objects/bezier.c:178
(GDI_InternalBezier@20))>
<win32k.sys:85008 (subsystems/win32/win32k/objects/bezier.c:216
(@GDI_Bezier@12))>
<win32k.sys:a1760 (subsystems/win32/win32k/objects/path.c:988
(@PATH_AddFlatBezier@12))>
<win32k.sys:a286a (subsystems/win32/win32k/objects/path.c:1019
(@PATH_FlattenPath@4))>
<win32k.sys:a295e (subsystems/win32/win32k/objects/path.c:1514
(NtGdiWidenPath@4))>
<NTOSKRNL.EXE:a145a (ntoskrnl/ke/i386/trap.s:244 (KiFastCallEntry))>
<ntdll.dll:5f1e>
<Area.exe:35ad>
<04ec8353>
Couldn't access memory at 0x56E58959!
kdb:>
The problem is in IntCreatePolyPolygonRgn, it is based on Xorg
mipolygen.c. The figure is some what complex and this old Xorg code
seems to become over whelmed by it. IntCreatePolyPolygonRgn calles
REGION_InsertionSort hundreds or even thousands of times. Using Qemu
you will sit there all night and that is the reason for using hardware
for this test. The first figure was 3 polygons with a total of 516
points. Question is, why is that so hard to map and sort? I assume the
next three figures have the same or close to the same amount of
points. Since they do look and draw about the same.
The bug report has GDI_InternalBezier faulting out the kernel, well
since there is no more PagedPool available so it returned a NULL
without faulting.
I'm looking into alternative methods that are much simpler than the
Xorg code for mapping and filling regions. My best one is from
Graphapp, it is a modified variation of the same Xorgs poly code. This
means more time I do not have to work out a hypothesise and rewrite
all of the region code.
FYI: Our Xorg code is the same Xorg code that is in wine....... I
assume wine code breaks and bombs out when the memory pool empties.
Which is not avalid excuse not to draw.
Thanks,
James
On Thu, Nov 6, 2008 at 7:05 AM, Aleksey Bragin <aleksey(a)reactos.org> wrote:
> How does this code work in Wine without this change?
>
> WBR,
> Aleksey.
>
How does this code work in Wine without this change?
WBR,
Aleksey.
On Nov 6, 2008, at 2:55 PM, jimtabor(a)svn.reactos.org wrote:
> Author: jimtabor
> Date: Thu Nov 6 05:55:08 2008
> New Revision: 37223
>
> URL: http://svn.reactos.org/svn/reactos?rev=37223&view=rev
> Log:
> - Fix WidenPath. Now Area.exe runs and crashes when using real
> hardware. That is a good thing. We now know our Xorg based region
> code has problems. It allocates all the memory building PolyPolygon
> region data.
Hi guys,
After a lot of requests from people in ReactOS, I have decided to
continue my work on USB support, the new bootloader and eventually
Firewire and audio support. Making use of the freedom within the project
I'll use my own, fully spec'ed and documented working methods, attract
devs to work for me when I deem necessary and rally for donations for a
speedy completion of those tasks.
Since there's no roadmap or central goals I'll also set those for myself
and my team(s). I'll provide regular updates on all activities inside
those projects on an as of yet unknown location (ReactOS wiki?) and use
a central repository for all documentation and specification produced by
these projects.
Maya
Hi all,
Fixing GetDeviceCaps exposed a thread process shared memory issue with
WinLogon and Gimp.... Gimp bug, been around and the crash does not
make sense until you see where the fault was located. Where? In client
thread share memory. So, we need help and soon I will revert the hack
in GetDeviceCaps. Maybe we are not passing everything to User32 that
is needed.
Thanks,
James
Gentlemen,
If you don't mind me intruding, I'd like to propose some things I think
may ease life for us poor ROS devs, existing and new ones :)
First of all, I'd like to suggest 'apprenticeship programming', also
known by other names, but which commonly involves having one seasoned
programmer in charge of a particular (sub-)project and one or more
programmers following his lead. These latter programmers would be less
experienced but could work on relatively advanced stuff due to the lead
of the seasoned programmer. This model is commonly used in companies
already and if adapted for ROS it should make it much easier for
'newbie' devs to get started, pick up experience and become seasoned
devs themselves.
My own experience with picking up the USB subproject reflect this as
well. It's hard to get started without much of a lead, especially when
one's experience with the NT subsystems is limited. This is also where
documentation would have helped, bringing me to my second point:
Whenever I start a new project or implementation I first write a
technical specification detailing the exact layout, APIs and
implementation. I've heard that this is common practice in professional
programming as well as other areas. Benefits include having a good
overview of the project before one starts on it, being able to pick out
obvious oversights before writing a single line of code, having a
central place of reference (code does _not_ work for this), allows one
to quickly pick up on things during maintenance sessions (many months
later...). It'd also enable the apprentice programming system and make
it easy for the central project leader(s) to get an overview of the
progress being made.
Documentation and specifications are often ignored by programmers
because they're not deemed 'time-efficient', preferring to start
programming right away instead. In my experience and those of everyone
in high-level jobs involving anything from programming to hardware
design (like my housemate who is a senior engineer in a Dutch company
which designs chips for the telecom industry), specifications and
documentation are the lifeblood of any project.
I have elected to use both the apprentice method as well as the
documentation approach in my work on the new installer, bootloader and
USB stack for ReactOS, attracting two relatively inexperienced but
highly motivated devs for the installer (RI2, or ROSE) project already.
They have expressed interest in helping me with further projects in ROS
as well, even more low-level things. I think that this is a good example
of the future ROS should be heading towards.
So yeah, that's my rant I guess :)
*ducks and runs for cover*
Maya Posch
You're obliged to keep it up-to-date now :-), so it doesn't become
like VFAT "documentation".
On Oct 31, 2008, at 2:26 PM, janderwald(a)svn.reactos.org wrote:
> Author: janderwald
> Date: Fri Oct 31 06:26:23 2008
> New Revision: 37110
>
> URL: http://svn.reactos.org/svn/reactos?rev=37110&view=rev
> Log:
> - Add Documentation for netshell
>
> Added:
> trunk/reactos/dll/win32/netshell/README (with props)
On Wed, Oct 29, 2008 at 9:19 AM, <hyperion(a)svn.reactos.org> wrote:
> Author: hyperion
> Date: Wed Oct 29 08:19:21 2008
> New Revision: 37054
>
> URL: http://svn.reactos.org/svn/reactos?rev=37054&view=rev
> Log:
> deleted wine/mmsystem.h
> deleted wine/prsht.h
> deleted wine/winbase.h
> deleted wine/winnetwk.h
> deleted wine/winnt.h
> deleted wine/winuser.h
> Our SDK is in good enough shape to compile Wine: drop the #include_next hacks
> Wine compatibility fixes should go either in the SDK headers themselves or in the Wine porting SDK
This is a little late but I wanted to let you know that I love you and
want to bear your children!
--
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,
On Thu, Oct 30, 2008 at 9:33 AM, <jimtabor(a)svn.reactos.org> wrote:
> URL: http://svn.reactos.org/svn/reactos?rev=37099&view=rev
> Log:
> Implement GetFontUnicodeRanges, port from wine. Tested with wine gdi32 font crosstests.
If your using enough of the original implementation to credit Wine
then to me that means someone else at least partly own copyright to
these functions. Could you please use git blame or git web and see who
the author was of the original implementation from Wine and credit
them appropriately in the header? From time to time when someone says
'foo from wine' I get pinged from wine developers who's code is
appropriated and they ask for proper attribution. If we don't do it
right the first time, then at some point another audit of each commit
from SVN will have to happen and we will have to go back and add those
copyright holders to the files license header.
--
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,
I would like to create a /media/graphics directory in trunk to store the
template files for graphics we want to use in altered versions or different
resolutions. I start with the replacement for the explorere shutdown icon and
a question mark for message dialogs. Due to problems with drawing this icons
at the moment I store the templates only, later we can create the icons from
the templates and include in the resource files.
I suggest to store all selfmade graphics (in alterable formats, e.g. svg) in
this directory (if there is no other source).
What do you think about the change of the message dialogs icons to the tango
project icons and the question mark icon i provide, instead of the current
icon set?
Matthias
--
Matthias Kupfer Telefon +49 (0) 371 236 46 52
Wilhelm-Firl-Straße 21 Mobil +49 (0) 160 859 43 54
09122 Chemnitz
Hello,
trunk has been frozen until 0.3.7 blockers are fixed.
Bugfix team having commit access for this freeze: Colin, Herve,
Johannes, me.
With the best regards,
Aleksey Bragin.
Hi,
I've tooled up libm from http://www.netlib.org/fdlibm/ and a hacked
floatlib.c in lib/3rdparty. With -msoft-float added in win32k.rbuild,
it works. I built the lib separate on XP mingw build environment and I
compiled and ran a fp test program (tst-ieee754.c) than compared the
results with standard gcc. The results are almost the same. The thing
even boots and draws okay. Floatlib.c is very old and I will soon
start testing with SoftFloat to replace the gcc soft float math.
So,,,,, is it posiable to build our build environment (RosBE) to
support full soft-float? So we can avoid more source in ReactOS.....
Well, except libm.a ~ 93k.
or,,,
Just support the hardware floating point and move on........
Thanks,
James