Hartmut Birr wrote:
CVSROOT: /CVS/ReactOS Module name: reactos Repository: reactos/ntoskrnl/include/internal/i386/ Changes by: hbirr@mok.osexperts.com 04/10/17 03:53:08
Modified files: reactos/ntoskrnl/include/internal/i386/: ps.h
Log message:
- Fixed the definition KPCR_SELF and KeGetCurrentKPCR.
Ros-cvs mailing list Ros-cvs@reactos.com http://reactos.com/mailman/listinfo/ros-cvs
Is that really right? I can swear fs:18h was still used until NT 5.2. Also, it would be of critical importance to: 1) Change the hardcoded offsets to FIELD_OFFSET(...,...) 2) Make the ASM use the defines instead of hardcoding 1Ch/18h
Best regards, Alex Ionescu
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Alex Ionescu Sent: Sunday, October 17, 2004 2:51 PM To: ros-dev@reactos.com; hbirr@osexperts.com Subject: [ros-dev] Re: [ros-cvs] CVS Update: reactos
Modified files: reactos/ntoskrnl/include/internal/i386/: ps.h
Log message:
- Fixed the definition KPCR_SELF and KeGetCurrentKPCR.
Is that really right? I can swear fs:18h was still used until NT 5.2.
I think that is correct. Previous your last changes the offset to KPCR->Self was 0x18. After your changes the offset is 0x1c. The offset 0x18 does point to KPCR->Tib.Self. Win2K and WinXP (UP version) doesn't use the value at offset 0x18. This value is always 0.
Also, it would be of critical importance to: 1) Change the hardcoded offsets to FIELD_OFFSET(...,...)
The assembler doesn't like the C definition for FIELD_OFFSET.
2) Make the ASM use the defines instead of hardcoding 1Ch/18h
The inline assembler doesn't like the definition for KPCR_SELF. The assembler interprets KPCR_SELF as symbol at this point.
I've changed KPCR_SELF from 0x18 to 0x1c, because ros asserts in main.c line #309.
- Hartmut
Hartmut Birr wrote:
-----Original Message----- From: ros-dev-bounces@reactos.com [mailto:ros-dev-bounces@reactos.com] On Behalf Of Alex Ionescu Sent: Sunday, October 17, 2004 2:51 PM To: ros-dev@reactos.com; hbirr@osexperts.com Subject: [ros-dev] Re: [ros-cvs] CVS Update: reactos
Modified files: reactos/ntoskrnl/include/internal/i386/: ps.h
Log message:
- Fixed the definition KPCR_SELF and KeGetCurrentKPCR.
Is that really right? I can swear fs:18h was still used until NT 5.2.
I think that is correct. Previous your last changes the offset to KPCR->Self was 0x18. After your changes the offset is 0x1c. The offset 0x18 does point to KPCR->Tib.Self. Win2K and WinXP (UP version) doesn't use the value at offset 0x18. This value is always 0.
You're right... I was led to believe this only happened in Win2K3. Thanks for letting me know.
Also, it would be of critical importance to:
- Change the hardcoded offsets to FIELD_OFFSET(...,...)
The assembler doesn't like the C definition for FIELD_OFFSET.
Is there any way to make it work? My MSVC inline assembler usually didn't mind C macros, I don't know what's the case for GNU Assembler files.
- Make the ASM use the defines instead of hardcoding 1Ch/18h
The inline assembler doesn't like the definition for KPCR_SELF. The assembler interprets KPCR_SELF as symbol at this point.
I've changed KPCR_SELF from 0x18 to 0x1c, because ros asserts in main.c line #309.
Thanks, I had missed that one too. Once again shows the importance of being able to use FIELD_OFFSET.
- Hartmut
Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev
Many thanks again!
Best regards, Alex Ionescu