Hi Martin:
Last time I saw it no I haven't checked in a while), but I guess my answer should be not yet since I have not seen any discussion about that on the list until now that you ask. If you want to be sure check ntdll (the interface is machine generated so you need to check the program that builds it, what I remember is that it generated an .asm, you can also check the asm after you build the system). Also the ROS build system needs sub architectures configurable to use this one since this instruction is PII+ hey I bet we all know we are missing a lot of great stuff only implemented in more recent processors, SYSCALL is only one of them. Another thing that could be done is to detect the CPU at some time during initialization and use one of two ntdll (on with SYSCALL an another without it). The question is: should an installed ReactOS resist a CPU downgrade? Probably yes but most of the times is just a waste.
regards Waldo
________________________________
From: ros-dev-bounces@reactos.com on behalf of Maritn "E.T." Misuth Sent: Wed 12/22/2004 5:10 PM To: ReactOS Development List Subject: [ros-dev] SYSCALL instruction
Does ReactOS use optimized SYSCALL instruction on modern processors when invoking kernel functions? _______________________________________________ Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev
Waldo Alvarez Cañizares wrote:
Another thing that could be done is to detect the CPU at some time during initialization and use one of two ntdll (on with SYSCALL an another without it).
It's implemented in WinXP much easier than that. On startup it's detected if the processor supports SYSCALL and the appropriate code is sticked into the user shared page. The user mode code then just does jmp at the place in user shared page and it uses the correct code. Easy ;-)
- Filip
Filip Navara wrote:
Waldo Alvarez Cañizares wrote:
Another thing that could be done is to detect the CPU at some time during initialization and use one of two ntdll (on with SYSCALL an another without it).
It's implemented in WinXP much easier than that. On startup it's detected if the processor supports SYSCALL and the appropriate code is sticked into the user shared page. The user mode code then just does jmp at the place in user shared page and it uses the correct code. Easy ;-)
- Filip
Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev
Please check my blog on the current status of SYSCALL on ReactOS. I posed a quite extensive overview of what has to be done. I will probably finish the implementation once my current work is done.
Btw, Filip, they've changed it again. Instead of being code in KUSER_SHARED_DATA, it's now a pointer (so it's call [edx] instead of call edx). This makes user-mode hooking of syscalls possible btw, and is really cool.
Best regards, Alex Ionescu