Re: [ros-dev] The ReactOS Project at FOSDEM 2015

2015-02-06 Thread Pierre Schweitzer
As a side note, it was interesting to note that the way people look at
ReactOS changed a bit. Cannot say why though. We're still a hobby
project for many, but some start thinking about things they could do
with ReactOS.

One project is considering shipping ReactOS as a LiveCD to allow their
users to flash their USB devices without using Windows.
I won't give name here, I let them study how suitable ReactOS is for
their needs, and come back at us/release if that's OK.

If I've got more news on this, I'll forward.

On 02/06/2015 12:06 AM, Colin Finck wrote:
 Hi all,
 
 FOSDEM 2015 has ended some days ago. After five years of absence, the
 ReactOS Project was finally represented with a stand again, maintained
 by Aleksey Bragin, Giannis Adamopoulos, Pierre Schweitzer and me.
 Turns out that FOSDEM has significantly grown over the recent years,
 so our experiences really deserve a report - and should motivate
 others to join us next time! :)
 
 Our stand was born around 11 o'clock on Saturday when I arrived at the
 AW building. After walking several rounds in the building and neither
 finding known people nor a free table, it turned out that the coreboot
 guys next to us had tried to expand their presence a bit ;)
 Reclaiming our booth was a matter of a few words though, and soon we
 had a sweet spot in the building with enough space for the upcoming
 crowd. With Aleksey arriving shortly after that, along with several
 flags and pins, our empire was finally alive and marked! Giannis and
 Pierre arrived in the course of the day, right in time for the
 afternoon rush hour with lots of people interested in ReactOS. Our
 four person booth staff was really overwhelmed in these times. But
 let's see, maybe we even got new developers through this :)
 
 Our stock of 100 ReactOS demonstration CDs prepared by Hermès
 Bélusca-Maito and me already ran out during the first day. Given our
 experiences at other exhibitions and the general phase-out of CDs
 these days, this came totally unexpected. But it wouldn't be the
 ReactOS Project if we had no solution to the problem. On the same
 Saturday evening, Pierre and me went out on a little adventure into
 downtown Brussels in the hope of finding open stores that sell all we
 needed: Blank CDs, labels and paper sleeves. And we were successful!
 Returning with another 100 CDs, all disc drives of our laptops were
 working that evening and the full other day, busy with burning new
 ReactOS CDs. FOSDEM staff was kind enough to offer one of their
 printers for getting the additional labels done. And our booth on
 Sunday had partly turned into a CD manufacturing plant. With the
 consequence of people sometimes grabbing the CD labels and trying to
 read them before being presented with our real flyers :)
 At the end of the conference, around 170 ReactOS CDs were in the wild.
 Definitely much more than what we expected!
 
 Of course, the culinary supply also didn't come too short in the
 capital of Belgium. On Saturday evening, we met up with our friend
 Nuno Brito, who had already reserved a nice restaurant for us.
 Obviously, he had learned from last year! I well remember the evening,
 when five hungry geeks walked for half an hour through the city,
 trying to beat the unsolvable problem of finding the best restaurant
 for all of us.
 
 I've put up some of Aleksey's and my photos here:
 https://www.flickr.com/photos/colinfinck/sets/72157650656130121/
 Maybe more to come in the next few days!
 
 I hope you're now all eager to join us next time to this wonderful event!
 
 
 Cheers,
 
 Colin
 
 P.S.: Feel free to use this for a news article about FOSDEM on our website
 
 ___
 Ros-dev mailing list
 Ros-dev@reactos.org
 http://www.reactos.org/mailman/listinfo/ros-dev
 


-- 
Pierre Schweitzer pie...@reactos.org
System  Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.



smime.p7s
Description: S/MIME Cryptographic Signature
___
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Re: [ros-dev] [ros-diffs] [jgardou] 66161: [NTDLL] - use the edx register to store the function pointer to the syscall trampoline. This is how google Chrome checks if an exported function is a system

2015-02-06 Thread Timo Kreuzer


But you are aware, that it was you, who wrote the previous code, yes?

http://svn.reactos.org/svn/reactos?view=revisionrevision=13090


Author: ion
Date:   Mon Jan 17 07:10:34 2005 UTC /(10 years ago)/
Changed paths:  *28*
Log Message:

SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and 
svn:ignore fixes. Please read associated Mailing List Post.


44 /*
45 * This stubs calls into KUSER_SHARED_DATA where either a
46 * sysenter or interrupt is performed, depending on CPU support.
47 */
48 #define UserModeStub_x86  movl $0x%x, %%eax\n \
49  movl $KUSER_SHARED_SYSCALL, %%ecx\n \
50  call *%%ecx\n \
51  ret $0x%x\n\n

This must have been shortly before almost a decade now ;-)

Also there is a difference between We must copy these 5 documented asm 
instructions, because we know otherwise app xyz breaks and let's just 
copy this and that and that as well, because there might be an 
application out there that relies on this exact sequence of 
instructions, for whatever reason that we cannot even imagine



Am 06.02.2015 um 07:00 schrieb Alex Ionescu:
Wow, it almost sounds like... we have to copy the exact same assembly 
code from Microsoft... instead of being more efficient or doing it 
our way because there's no point in copying such minute details. 
It..almost sounds like... something some developer was saying for 
almost a decade now? No, I must be imagining things...


Best regards,
Alex Ionescu

On Wed, Feb 4, 2015 at 8:58 AM, jgar...@svn.reactos.org 
mailto:jgar...@svn.reactos.org wrote:


Author: jgardou
Date: Wed Feb  4 16:58:41 2015
New Revision: 66161

URL: http://svn.reactos.org/svn/reactos?rev=66161view=rev
Log:
[NTDLL]
 - use the edx register to store the function pointer to the
syscall trampoline.
This is how google Chrome checks if an exported function is a
system call or not.
See

https://chromium.googlesource.com/chromium/src.git/+/master/sandbox/win/src/service_resolver_32.cc
and https://bugs.winehq.org/show_bug.cgi?id=21232 for details

Modified:
trunk/reactos/include/asm/syscalls.inc

Modified: trunk/reactos/include/asm/syscalls.inc
URL:

http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/syscalls.inc?rev=66161r1=66160r2=66161view=diff

==
--- trunk/reactos/include/asm/syscalls.inc  [iso-8859-1]
(original)
+++ trunk/reactos/include/asm/syscalls.inc  [iso-8859-1] Wed
Feb  4 16:58:41 2015
@@ -1,109 +1,109 @@
-
-#ifdef _M_IX86
-#define KUSER_SHARED_SYSCALL HEX(7ffe0300)
-#define KGDT_R0_CODE 8
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-StackBytes = 4 * ArgCount
-FPO 0, 0, 0, 0, 0, FRAME_FPO
-mov eax, SyscallId
-mov ecx, KUSER_SHARED_SYSCALL
-call dword ptr [ecx]
-ret StackBytes
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-StackBytes = 4 * ArgCount
-FPO 0, 0, 0, 0, 0, FRAME_FPO
-mov eax, SyscallId
-lea edx, [esp + 4]
-pushfd
-push KGDT_R0_CODE
-call _KiSystemService
-ret StackBytes
-ENDM
-#elif defined(_M_AMD64)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-.ENDPROLOG
-mov eax, SyscallId
-mov r10, rcx
-syscall
-ret
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-.ENDPROLOG
-EXTERN NtName:PROC
-lea rax, NtName[rip]
-mov r10, ArgCount * 8
-jmp KiZwSystemService
-ENDM
-#elif defined(_M_ARM)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-swi #SyscallId
-bx lr
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-mov ip, lr
-swi #SyscallId
-bx ip
-ENDM
-#elif defined(_M_PPC)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-stwu 1,-16(1)
-mflr 0
-stw  0,0(1)
-li   0, SyscallId
-sc
-lwz 0,0(1)
-mtlr 0
-addi 1,1,16
-blr
-ENDM
-#define STUBCODE_K STUBCODE_U
-#elif defined(_M_MIPS)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-li $8, KUSER_SHARED_SYSCALL
-lw $8,0($8)
-j $8
-nop
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-j KiSystemService
-nop
-ENDM
-#else
-#error unsupported architecture
-#endif
-
-#ifdef _M_IX86
-MACRO(MAKE_LABEL, Name, StackBytes)
-PUBLIC _Name@StackBytes
-_Name@StackBytes:
-ENDM
-MACRO(START_PROC, Name, StackBytes)
-PUBLIC _Name@StackBytes
-.PROC _Name@StackBytes
-ENDM
-#else
-MACRO(MAKE_LABEL, Name, StackBytes)
-PUBLIC Name
-Name:
-ENDM
-MACRO(START_PROC, Name, StackBytes)
-PUBLIC Name
-.PROC Name
-ENDM
-#endif
-

Re: [ros-dev] [ros-diffs] [jgardou] 66161: [NTDLL] - use the edx register to store the function pointer to the syscall trampoline. This is how google Chrome checks if an exported function is a system

2015-02-06 Thread Hermès BÉLUSCA - MAÏTO
Accidentally exactly 1 year after this commit, somebody from ROS claimed we
had copied some ASM from Windows…:
http://www.reactos.org/archives/public/ros-dev/2006-January/007389.html

 

De : Ros-dev [mailto:ros-dev-boun...@reactos.org] De la part de Timo Kreuzer
Envoyé : vendredi 6 février 2015 10:46
À : ReactOS Development List
Objet : Re: [ros-dev] [ros-diffs] [jgardou] 66161: [NTDLL] - use the edx
register to store the function pointer to the syscall trampoline. This is
how google Chrome checks if an exported function is a system call or not.
See https:...

 


But you are aware, that it was you, who wrote the previous code, yes?

http://svn.reactos.org/svn/reactos?view=revision
http://svn.reactos.org/svn/reactos?view=revisionrevision=13090
revision=13090




Author:

ion


Date:

Mon Jan 17 07:10:34 2005 UTC (10 years ago)


Changed paths:

28 


Log Message:

SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and
svn:ignore fixes. Please read associated Mailing List Post.


44 /*
45 * This stubs calls into KUSER_SHARED_DATA where either a
46 * sysenter or interrupt is performed, depending on CPU support.
47 */
48 #define UserModeStub_x86  movl $0x%x, %%eax\n \
49  movl $KUSER_SHARED_SYSCALL, %%ecx\n \
50  call *%%ecx\n \
51  ret $0x%x\n\n

This must have been shortly before almost a decade now ;-)

Also there is a difference between We must copy these 5 documented asm
instructions, because we know otherwise app xyz breaks and let's just copy
this and that and that as well, because there might be an application out
there that relies on this exact sequence of instructions, for whatever
reason that we cannot even imagine


Am 06.02.2015 um 07:00 schrieb Alex Ionescu:

Wow, it almost sounds like... we have to copy the exact same assembly code
from Microsoft... instead of being more efficient or doing it our way
because there's no point in copying such minute details. It..almost sounds
like... something some developer was saying for almost a decade now? No, I
must be imagining things...




Best regards,
Alex Ionescu

 

On Wed, Feb 4, 2015 at 8:58 AM, jgar...@svn.reactos.org wrote:

Author: jgardou
Date: Wed Feb  4 16:58:41 2015
New Revision: 66161

URL: http://svn.reactos.org/svn/reactos?rev=66161
http://svn.reactos.org/svn/reactos?rev=66161view=rev view=rev
Log:
[NTDLL]
 - use the edx register to store the function pointer to the syscall
trampoline.
This is how google Chrome checks if an exported function is a system call or
not.
See
https://chromium.googlesource.com/chromium/src.git/+/master/sandbox/win/src/
service_resolver_32.cc and https://bugs.winehq.org/show_bug.cgi?id=21232 for
details

Modified:
trunk/reactos/include/asm/syscalls.inc

Modified: trunk/reactos/include/asm/syscalls.inc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/syscalls.inc?re
v=66161
http://svn.reactos.org/svn/reactos/trunk/reactos/include/asm/syscalls.inc?r
ev=66161r1=66160r2=66161view=diff r1=66160r2=66161view=diff

==
--- trunk/reactos/include/asm/syscalls.inc  [iso-8859-1] (original)
+++ trunk/reactos/include/asm/syscalls.inc  [iso-8859-1] Wed Feb  4
16:58:41 2015
@@ -1,109 +1,109 @@
-
-#ifdef _M_IX86
-#define KUSER_SHARED_SYSCALL HEX(7ffe0300)
-#define KGDT_R0_CODE 8
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-StackBytes = 4 * ArgCount
-FPO 0, 0, 0, 0, 0, FRAME_FPO
-mov eax, SyscallId
-mov ecx, KUSER_SHARED_SYSCALL
-call dword ptr [ecx]
-ret StackBytes
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-StackBytes = 4 * ArgCount
-FPO 0, 0, 0, 0, 0, FRAME_FPO
-mov eax, SyscallId
-lea edx, [esp + 4]
-pushfd
-push KGDT_R0_CODE
-call _KiSystemService
-ret StackBytes
-ENDM
-#elif defined(_M_AMD64)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-.ENDPROLOG
-mov eax, SyscallId
-mov r10, rcx
-syscall
-ret
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-.ENDPROLOG
-EXTERN NtName:PROC
-lea rax, NtName[rip]
-mov r10, ArgCount * 8
-jmp KiZwSystemService
-ENDM
-#elif defined(_M_ARM)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-swi #SyscallId
-bx lr
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-mov ip, lr
-swi #SyscallId
-bx ip
-ENDM
-#elif defined(_M_PPC)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-stwu 1,-16(1)
-mflr 0
-stw  0,0(1)
-li   0, SyscallId
-sc
-lwz 0,0(1)
-mtlr 0
-addi 1,1,16
-blr
-ENDM
-#define STUBCODE_K STUBCODE_U
-#elif defined(_M_MIPS)
-MACRO(STUBCODE_U, Name, SyscallId, ArgCount)
-li $8, KUSER_SHARED_SYSCALL
-lw $8,0($8)
-j $8
-nop
-ENDM
-MACRO(STUBCODE_K, Name, SyscallId, ArgCount)
-j KiSystemService
-nop
-ENDM
-#else
-#error unsupported architecture
-#endif
-
-#ifdef _M_IX86
-MACRO(MAKE_LABEL, Name, StackBytes)
-PUBLIC _Name@StackBytes
-_Name@StackBytes: