I've been doing some looking at why winext2fsd doesn't work on reactos.
This has been a pet project of mine for a while, but sadly I'm not very
skilled in the parts of reactos that it touches.
On the ext2 branch, I've got filips changes and some small changes of
my own so that I can make a bootcd that will try to install reactos on
a fresh ext2 partition.
ext2 starts writing the first file to the empty filesystem but stalls
when a call to WriteCacheSegment causes ext2 to do a paging write of
several pages to class2, which uses ScsiClassSplitRequests to send
several blocks to scsiport for writing. The interesting thing is, in
the case where my diff prints DEADLY WAIT, SpiProcessRequests receives
the IRPs but does not enter the while loop that would process them,
nor receive any further completions. At this point i'm totally stuck
and so I'll try to isolate the relevant debug output.
If somebody is interested and has some spare time I'd appreciate a
bit of wisdom about how the DeviceExtension->Flags, NextIrp,
ActiveIrpCount and PendingIrpCount fit together. I think that if
the IRPs are completed then the rest will work, since the split
IRP code in class2 seems reasonable.
http://64.81.145.152/~arty/ext2.diff <-- Lots of annotation
http://64.81.145.152/~arty/ext2.log <-- Last part of execution
http://64.81.145.152/~arty/rosbin.zip <-- Binaries from my tree
In the log it is writing atapi.sys to \ReactOS\system32\drivers on the
disk. DEADLY WAIT(0) is the place where ext2 can't progress from. It's
at line 200 or so in drivers/fs/ext2/src/io.c.
The fatal invocation of SpiProcessRequest looks like this before the
while loop:
(scsiport.c:2864) DeviceExtension->Flags & IRP_FLAG_COMPLETE 0
(scsiport.c:2866) DeviceExtension->SrbExtensionSize 0
(scsiport.c:2869) DeviceExtension->CurrentSrbExtensions 0 Max 0
(scsiport.c:2871) DeviceExtension->PendingIrpCount 4
(scsiport.c:2873) DeviceExtension->Flags & (N|NLU) 0
(scsiport.c:2875) DeviceExtension->NextIrp c0457db0
The wierd thing is that it seems that atapi relies on the ide controller
raising an interrupt after IDEWriteBlock, which never happens for me
under qemu after this point. This is where I get totally lost
unfortunately.
I'll try to learn more as I go but any help understanding scsiport is
appreciated.
Art
--
Here's a simple experiment. Stand on a train track between two locomotives
which are pushing on you with equal force in opposite directions. You will
exhibit no net motion. None the less, you may soon begin to notice that
something important is happening.
-- Robert Stirniman
The magic number 1 may be obvious to some, but it isn't to all.
It should be true/false, yes/no or all of the above.
Casper
________________________________
From: ros-diffs-bounces(a)reactos.com [mailto:ros-diffs-bounces@reactos.com] On Behalf Of royce(a)svn.reactos.com
Sent: 20. januar 2005 07:37
To: ros-diffs(a)reactos.com
Subject: [Spam] [ros-diffs] [royce] 13154: require attributes to have values
require attributes to have values
Modified: branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/XML.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
________________________________
Modified: branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml
--- branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml 2005-01-20 06:29:08 UTC (rev 13153)
+++ branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml 2005-01-20 06:36:37 UTC (rev 13154)
@@ -29,7 +29,7 @@
<directory name="ke">
<if property="ARCH" value="i386">
<directory name="i386">
- <file first>multiboot.S</file>
+ <file first="1">multiboot.S</file>
<file>bios.c</file>
<file>brkpoint.c</file>
<file>bthread.S</file>
I'm re setting up my ROS dev environment, after a format/reinstall, and
i'm encountering the following problem under both QEMU and ReactOS:
While booting from the livecd or the bootcd i get an inaccessible boot
device error. The HD partition on VMWare is a FAT32 partition formatted
in win98, the partition in QEMU is an unformatted partition.
Any idea on how to fix this?
Since binutils-2.15.90 (which you need to build a bootable ReactOS) is no
longer available from the MinGW download pages, I put it on the ReactOS
download page on SourceForge:
http://sourceforge.net/project/showfiles.php?group_id=6553
Gé van Geldorp.
Hi,
currently our Zw functions for kernel mode are implemented by an
parameter wrapper and an int 0x2e instruction. The only reason for using
the Zw functions in kernel mode is to bypass the buffer check. Can we
implement the Zw functions by saving/changing/restoring the previous
mode and calling the equal Nt function?
- Hartmut
Currently the resource files in comdlg contain a listbox entry similar
to below:
LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT |
LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE
shouldn't it be
LISTBOX IDC_SHELLSTATIC,4,20,272,85, LBS_SORT |
LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL
the NOT WS_VISIBLE causes windres errors (windres doesn't recognize NOT,
and even if it did, saying NOT WS_VISIBLE instead of just not |
WS_VISIBLE is redundant.), which causes the DLL to fail to build. While
this appears to be merely a goofup, figured i'd ask about it in the list
before i make any changes to the tree in case this is there for a reason.
Richard
royce(a)svn.reactos.com wrote:
> added 'first' attribute to <file>
> Modified: branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml
...
> + <file first>multiboot.S</file>
According to the XML spec, all attributes must have a value. [1]
So, the above line must be written like this:
<file first="true">multiboot.S</file>
[1] http://www.w3.org/TR/REC-xml/#NT-Attribute
--
d_layer
That should be:
<file first="yes">multiboot.S</file>
or similar.
Modified: branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml
--- branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml 2005-01-19 01:11:43 UTC (rev 13128)
+++ branches/xmlbuildsystem/reactos/ntoskrnl/ntoskrnl.xml 2005-01-19 01:37:35 UTC (rev 13129)
@@ -26,10 +26,10 @@
</output>
</invoke>
- <directory name="ke"> <!-- leave this at the top -->
+ <directory name="ke">
<if property="ARCH" value="i386">
<directory name="i386">
- <file>multiboot.S</file> <!-- leave this at the top -->
+ <file first>multiboot.S</file>
<file>bios.c</file>
<file>brkpoint.c</file>
<file>bthread.S</file>
hbirr(a)svn.reactos.com wrote:
>- Set the limit of the user mode code/data segment back to 4GB.
>
>
>
>Updated files:
>trunk/reactos/ntoskrnl/ke/i386/gdt.c
>
>
>
Thanks!
Do you know however if any of ROS Kernel depends on the old GDT? There
are two weird issues with SYSEXIT:
1) GvG reported that FPU is broken
2) Explorer now crashes in shlwapi when clicking on a disk.
Best regards,
Alex Ionescu
> From: hbirr(a)svn.reactos.com
>
> - Fixed the disabling of interrupts on the stack before sysexit.
Only good news left: no more fpu crashes. All your base now belong to
Hartmut!
Gé van Geldorp.