Hi,
sir_richard wrote:
> * We really have to get a good DS/ES first before touching any data.
> *
> * These two reads will either go in a register (with optimizations ON) or
> * a stack variable (which is on SS:ESP, guaranteed to be good/valid).
> *
> * Because the assembly is marked volatile, the order of instructions is
> * as-is, otherwise the optimizer could simply get rid of our DS/ES.
Timo Kreuzer wrote:
> 2.) Segements should be fixed up before entering C code, as not doing so
> may introduce possible compiler dependend breakages. It's also much
> cleaner and there's no reason to do the same stuff later in inline assembly
> instead of direcly in the asm entry point.
Ros Arm wrote:
> Regarding #2, I unfortunately do not see the need to add more assembly
> when it is not needed. There are no subtle compiler breakages involved,
> since it is impossible for the compiler to add a DS/ES access for no reason
> at all (can you come up with an example?), this is part of the contract the
> compiler has to make (if compilers did this, it would break a whole class of
> embedded and real-mode software). Because the stack is safe, I think it's
> worth avoiding the extra lines of assembly. The C inlines will produce
> exactly the same code anyway.
Not as a guide to action, simply to note — there is no guarantee that
volatile asm statements (and code around them) will never be
reordered. As only two registers are needed to keep Ds and Es, it
seems to work there. But in a general case, GCC does not hesitate to
rearrange such stuff…
Hi,
I am interested to work on reactos developement. I want to take my work on reactos as a credit in my university. I spoke toAleksey Bragin (Fireball) regarding this. He asked me to mail to the developer mailing list. I need some concrete work to work for like five months or more so that I can show to professor to get his acceptance. My skills involve mostly on developing .I am mostly a C++ programmer with some experience in assembly language. I have some prior experience on filesystems and kernel but mostly linux. I have some experience on windows drivers too. By the way I am a masters student in computer science from US.
Thanks & Regards,
sudhir.
.
@Sir Richard,
While fixing trunk breakage, I also fixed another bug in
KiTrap0DHandler, which was always only checking one prefix.
I attached the patch.
Regards,
Timo
Index: traphdlr.c
===================================================================
--- traphdlr.c (Revision 45057)
+++ traphdlr.c (Arbeitskopie)
@@ -1103,19 +1103,23 @@
/* Skip prefix instructions */
for (j = 0; j < sizeof(KiTrapPrefixTable); j++)
{
- /* Is this NOT a prefix instruction? */
- if (Instructions[i] != KiTrapPrefixTable[j])
+ /* Is this a prefix instruction? */
+ if (Instructions[i] == KiTrapPrefixTable[j])
{
- /* We can go ahead and handle the fault now */
- Instruction = Instructions[i];
+ /* Stop looking */
break;
}
}
- /* Do we need to keep looking? */
- if (Instruction) break;
+ /* Is this NOT any prefix instruction? */
+ if (Instructions[i] != KiTrapPrefixTable[j])
+ {
+ /* We can go ahead and handle the fault now */
+ Instruction = Instructions[i];
+ break;
+ }
}
-
+
/* If all we found was prefixes, then this instruction is too long */
if (!Instruction)
{
:)
Begin forwarded message:
> From: Max Winter <maxwinter2001(a)yahoo.com>
> Date: January 13, 2010 1:26:11 AM GMT+03:00
> To: xxxxxxx(a)reactos.org
> Subject: removing ReactOS
>
> How do I get ReactOS off my computer? I downloaded a third of it
> and for various reasons stopped the download. I want to get it off
> my computer now but it is not giving me delete or cut options.
> This is as bad as malware, or Hotel California, you can check it
> in but you can't check out.
>
> M
>
Go into ntoskrnl and svn up -r 45013 should take care of it.......
On Wed, Jan 13, 2010 at 3:31 AM, Ged Murphy <gedmurphy(a)gmail.com> wrote:
> sir_richard,
>
> Trunk is still broken and is causing issues for some of the dev team.
>
> You can see the problems in our buildbot test machine:
> - Go to the following address : http://build.reactos.org:8010
> - under the x86_(Test) machine, click on the stdio for the 'test' stage.
> - You'll see stage 1 complete, the stage 2 bugchecks.
>
> Could you please address this problem before continuing your work as it's ruining the test system.
> The problem is that because our test machine can't run we aren't able to monitor other commits in other areas, meaning we're potentially introducing other bugs that we're now missing.
> According to our policy, failure to fix this soon (it's normally 24 hours) will result in us having to freeze development on trunk until the bug is fixed. If we're unable to fix it in a reasonable amount of time then the changes need to be reverted until we have a bootable OS again.
>
> Regards,
> Ged Murphy.
>
>
>
Hi,
I suggest the following changes to the current implementation:
1.) Replace the PUSHA in the trap entry code, by a series of MOVs to the
correct stack positions. The same for the trap exit code.
KiTrapFrameFromPushaStack can be removed then. This would result in more
clear, less complex and faster code, with only a few additional
assembly instructions in the trap entry macro. The exit could be done
either by normal call/return or by a jmp to an exit handler.
2.) Segements should be fixed up before entering C code, as not doing so
may introduce possible compiler dependend breakages. It's also much
cleaner and there's no reason to do the same stuff later in inline
assembly instead of direcly in the asm entry point.
The resulting code might looks something like this:
/* Allocate KTRAP_FRAME */
sub esp, KTRAP_FRAME_LENGTH - 10 * 4
/* Save integer registers */
mov [esp + KTRAP_FRAME_EBP], ebp
mov [esp + KTRAP_FRAME_EBX], ebx
mov [esp + KTRAP_FRAME_ESI], esi
mov [esp + KTRAP_FRAME_EDI], edi
mov [esp + KTRAP_FRAME_EAX], eax
mov [esp + KTRAP_FRAME_ECX], ecx
mov [esp + KTRAP_FRAME_EDX], edx
mov [esp + KTRAP_FRAME_EBX], ebx
/* Save segment regs */
mov [esp + KTRAP_FRAME_SEGDS], ds
mov [esp + KTRAP_FRAME_SEGES], es
/* Fixup segment regs */
mov ax, KGDT_R3_DATA | RPL_MASK
mov ds, ax
mov es, ax
Timo
dreimer(a)svn.reactos.org wrote:
> URL: http://svn.reactos.org/svn/reactos?rev=45050&view=rev
FYI, I already have a change like this ready for some months, see
http://reactos.colinfinck.de/files/Other_Stuff/Clean.cmd
I won't commit it though, because after a suggestion from KJK, I agree that
it would be the best if RosBE's basic clean logic goes into the Makefile
itself and RosBE's clean scripts only call "make rosbe-clean" (or whatever
it'll be called) afterwards.
Then no RosBE clean script would ever need to care about the environment
variables for object and output pathes again. We would stop duplicating
logic in the Makefile and in RosBE and a simple "clean" would always operate
on the same tree as a "make" by design.
This is another change that should be finished before we release RosBE 1.5,
because it'll break compatibility with older revisions (just like the new
toolchain will do), and I want to avoid doing this too often.
Best regards,
Colin
\o/
<3 <3 <3
dreimer(a)svn.reactos.org schrieb:
> Author: dreimer
> Date: Mon Jan 11 22:22:52 2010
> New Revision: 45050
>
> URL: http://svn.reactos.org/svn/reactos?rev=45050&view=rev
> Log:
> Ok, last time I delete my built main tree while playing with clean in a branch!
> Now clean cleans the branch you are in!
>
>
What do you all think about developer's email in source code? Is
there a need for it at all there?
WBR,
Aleksey.
On Jan 10, 2010, at 1:43 AM, ekohl(a)svn.reactos.org wrote:
> Author: ekohl
> Date: Sat Jan 9 23:43:16 2010
> New Revision: 45020
>
> URL: http://svn.reactos.org/svn/reactos?rev=45020&view=rev
> Log:
> Removed outdated email addresses.
> Modified: trunk/reactos/ntoskrnl/ke/queue.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/
> queue.c?rev=45020&r1=45019&r2=45020&view=diff
> ======================================================================
> ========
> --- trunk/reactos/ntoskrnl/ke/queue.c [iso-8859-1] (original)
> +++ trunk/reactos/ntoskrnl/ke/queue.c [iso-8859-1] Sat Jan 9
> 23:43:16 2010
> @@ -5,7 +5,7 @@
> * PURPOSE: Implements kernel queues
> * PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
> * Gunnar Dalsnes
> - * Eric Kohl (ekohl(a)rz-online.de)
> + * Eric Kohl
> */
On 21:03 Fri 01 Jan , ros-arm-bringup(a)svn.reactos.org wrote:
> Author: ros-arm-bringup
> Date: Fri Jan 1 22:03:22 2010
> New Revision: 44861
>
> Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
> @@ -87,18 +87,47 @@
> //
> // @name UNHANDLED_PATH
> //
> -// This macro TODO
> +// This macro prints out that the current code path is not expected yet
> //
> // @param None
> //
> // @remark None.
> //
> -.macro UNHANDLED_PATH
> +.macro UNHANDLED_PATH Reason
> +
> + /* Push reason */
> + push offset 1f
> +
> /* Get EIP */
> call $+5
>
> /* Print debug message */
> push offset _UnhandledMsg
> + call _DbgPrint
> + add esp, 12
> +
> + /* Loop indefinitely */
> + jmp $
> +
> +1:
> + .asciz \Reason
I think, this should be:
.asciz "\Reason"
I don't know why, but this line (both variants) doesn't compile for me
with RosBE 1.4.2 (Linux):
ntoskrnl/ke/i386/trap.s: Assembler messages:
ntoskrnl/ke/i386/trap.s:290: Error: junk at end of line, first unrecognized character is `o'
ntoskrnl/ke/i386/trap.s:290: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:290: Error: junk at end of line, first unrecognized character is `o'
ntoskrnl/ke/i386/trap.s:425: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:425: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:425: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:439: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:439: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:439: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:467: Error: junk at end of line, first unrecognized character is `A'
ntoskrnl/ke/i386/trap.s:1677: Error: junk at end of line, first unrecognized character is `R'
ntoskrnl/ke/i386/trap.s:1677: Error: junk at end of line, first unrecognized character is `j'
ntoskrnl/ke/i386/trap.s:1677: Error: junk at end of line, first unrecognized character is `R'
ntoskrnl/ke/i386/trap.s:2415: Error: junk at end of line, first unrecognized character is `c'
ntoskrnl/ke/i386/trap.s:2594: Error: junk at end of line, first unrecognized character is `m'
make: *** [obj-i386/ntoskrnl/ke/i386/trap_ntoskrnl.o] Error 1
--
Alexander Potashev
Public Notice:
First and last warning! You do not have my permission to switch from
GPL unless it is LGPL! I've coded most of all parts of the project and
hold the copyrights with other developers from this project. We have a
primary copyright to GPL, take it or leave it! I've imported other
projects code into ReactOS and kept and respected their copyrights!
Flamed baited by wine for forgetting to pass on copyrights as well and
having to recommit them back into code! If it is good for me it is
good for you!
If you have a problem with this I will have my people contact your
people! You have my email address!
James
martinf(a)svn.reactos.org wrote:
> -#if defined(__STDC_WANT_SECURE_LIB__) && defined(_MS_VER) // secure CRT functions using VS 2005
> +#ifdef __STDC_WANT_SECURE_LIB__
> if (_tfopen_s(&_pfile, path, mode) != 0)
Hi Martin,
This change will break the build, reactos now has partial but not full support for secure CRT functions.
__STDC_WANT_SECURE_LIB__ is now defined in our build headers, but some areas are missing, _wfopen_s being one of these.
I added the '&& defined(_MS_VER)' check to get around this for our build env until we support it.
Regards,
Ged.
And now we all get back to a polite discussion about this topic and stop
comparing the lengths of our wieners, ok? I hate the way all this goes
to... last time we came to that point in the past, we lost some long
term devs and put the whole project into a big crisis. So PLEASE, I just
expect a mature talk and no kindergarten from you all. (OK, its a bit
funny that I say something like that :-P )
Ros Arm Devs: I understand that you don't wanna tell us who exactly you
are are, whatever your reasons are and I accept that, but you have to
understand that some here fear harm for the project if ppl noone ever
saw write risky components with the highest possibility to copyright
problems. Almost every kernel dev in here was suspected to write tainted
code at least once in their whole time here. That's the result of some
big crisis we had in the past, we became a bit afraid of great code
outta nowhere which just works. So don't take it personally, plz.
*fearabigdramacoming* Regarding the Devs in the header and the license.
Why not just readd the ppl if some of their code still exists in the
file? Noone would have any harm if there's one more guy in this list.
Lets discuss the relicense after the guys are in the headers again. But,
and this goes out to all ppl, in a kind and mature way.
You all, forget your "He stepped on my tail!!" behavior just for a
moment and think about the project we all code for and we try to get
mature. We can talk about anything, but not in this way.
Thank you very much.
Daniel Reimer
Not soo 1337 ReactOS Dev
"You may relicense my code as BSD" != "You make strip away copyright/ownership of my code".
Revert this.
On 2009-12-31, at 6:51 PM, ros-arm-bringup(a)svn.reactos.org wrote:
>
> - * PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
> + * PROGRAMMERS: ReactOS Portable Systems Group
Best regards,
Alex Ionescu
On Jan 6, 2010, at 2:44 PM, dgorbachev(a)svn.reactos.org wrote:
> - // Always contigiously map low 1Mb of memory
> + // Always contiguously map low 1Mb of memory
Thanks for fixing my typos ;)
Hi,
I'm trying to compile React OS, however I encountered this error when I'm trying to compile:
[HOST-CC] lib/inflib/infcore.c
lib/inflib/infcore.c: In function `InfpAddSection':
lib/inflib/infcore.c:184: warning: implicit declaration of function `__builtin_offsetof'
lib/inflib/infcore.c:184: error: parse error before "INFCACHESECTION"
lib/inflib/infcore.c:184: error: parse error before ']' token
lib/inflib/infcore.c: In function `InfpAddFieldToLine':
lib/inflib/infcore.c:289: error: parse error before "INFCACHEFIELD"
lib/inflib/infcore.c:289: error: parse error before ']' token
make: *** No rule to make target `makefile.auto', needed by `all'. Stop.
Please help me, thanks.
Evans
Get your new Email address!
Grab the Email name you've always wanted before someone else does!
http://mail.promotions.yahoo.com/newdomains/aa/
I <3 this commit.
--
Matthieu Suiche
On Fri, Jan 1, 2010 at 6:31 PM, Alex Ionescu <ionucu(a)videotron.ca> wrote:
> "You may relicense my code as BSD" != "You make strip away
> copyright/ownership of my code".
> Revert this.
> On 2009-12-31, at 6:51 PM, ros-arm-bringup(a)svn.reactos.org wrote:
>
> - * PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
> + * PROGRAMMERS: ReactOS Portable Systems Group
>
> Best regards,
> Alex Ionescu
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
To slow things down. ATM there is a fault created when the mouse moves
with updates, creates and destroying region handles. The kernel fault
occurs inside SEH which should not happen right?
What we need is a semaphore that is used for the whole handle manager.
This is my point over the years about the stability inside win32k. It
running full bore, spinning out of control. Surprised it still works
after turning everything on in my tree.
On Sun, Jan 3, 2010 at 3:26 AM, Timo Kreuzer <timo.kreuzer(a)web.de> wrote:
>
> Why the KeEnterCriticalRegion?
>
> jimtabor(a)svn.reactos.org wrote:
>> - if (pAttr) FreeObjectAttr(pAttr);
>> + if (pAttr)
>> + {
>> + KeEnterCriticalRegion();
>> + FreeObjectAttr(pAttr);
>> + KeLeaveCriticalRegion();
>> + }
>> break;
>>
>