ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
March 2008
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
22 participants
269 discussions
Start a n
N
ew thread
[gbrunmar] 32668: * Made IDirect3D9 structure more MS compatible. * Removed duplicate initing of internal structure * Started implementing IDirect3D9::CreateDevice() error return values
by gbrunmar@svn.reactos.org
Author: gbrunmar Date: Wed Mar 12 14:29:10 2008 New Revision: 32668 URL:
http://svn.reactos.org/svn/reactos?rev=3D32668&view=3Drev
Log: * Made IDirect3D9 structure more MS compatible. * Removed duplicate initing of internal structure * Started implementing IDirect3D9::CreateDevice() error return values Modified: trunk/reactos/dll/directx/d3d9/d3d9_caps.c trunk/reactos/dll/directx/d3d9/d3d9_create.c trunk/reactos/dll/directx/d3d9/d3d9_impl.c trunk/reactos/dll/directx/d3d9/d3d9_private.h Modified: trunk/reactos/dll/directx/d3d9/d3d9_caps.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9=
_caps.c?rev=3D32668&r1=3D32667&r2=3D32668&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/directx/d3d9/d3d9_caps.c (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_caps.c Wed Mar 12 14:29:10 2008 @@ -502,6 +502,7 @@ = memcpy(&pDriverCaps->DriverCaps9, &DriverCaps8, sizeof(D3D= CAPS8)); pDriverCaps->DriverCaps9.Caps =3D HalInfo.ddCaps.dwCaps; + pDriverCaps->dwDriverCaps |=3D D3D9_INT_D3DCAPS8_VALID; } } = @@ -524,6 +525,7 @@ = pDriverCaps->DriverCaps9 =3D DriverCaps9; pDriverCaps->DriverCaps9.Caps =3D HalInfo.ddCaps.dwCaps; + pDriverCaps->dwDriverCaps |=3D D3D9_INT_D3DCAPS9_VALID; } = = Modified: trunk/reactos/dll/directx/d3d9/d3d9_create.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9=
_create.c?rev=3D32668&r1=3D32667&r2=3D32668&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/directx/d3d9/d3d9_create.c (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_create.c Wed Mar 12 14:29:10 2008 @@ -177,7 +177,7 @@ = AdapterIndex =3D 0; while (EnumDisplayDevicesA(NULL, AdapterIndex, &DisplayDevice, 0) =3D= =3D TRUE && - pDirect3D9->NumDisplayAdapters < DX_D3D9_MAX_NUM_ADAPTERS) + pDirect3D9->NumDisplayAdapters < D3D9_INT_MAX_NUM_ADAPTERS) { if ((DisplayDevice.StateFlags & (DISPLAY_DEVICE_DISCONNECT | DISPL= AY_DEVICE_MIRRORING_DRIVER)) =3D=3D 0 && (DisplayDevice.StateFlags & (DISPLAY_DEVICE_PRIMARY_DEVICE | D= ISPLAY_DEVICE_ATTACHED_TO_DESKTOP)) !=3D 0) @@ -196,7 +196,7 @@ = AdapterIndex =3D 0; while (EnumDisplayDevicesA(NULL, AdapterIndex, &DisplayDevice, 0) =3D= =3D TRUE && - pDirect3D9->NumDisplayAdapters < DX_D3D9_MAX_NUM_ADAPTERS) + pDirect3D9->NumDisplayAdapters < D3D9_INT_MAX_NUM_ADAPTERS) { if ((DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP= ) !=3D 0 && (DisplayDevice.StateFlags & (DISPLAY_DEVICE_MIRRORING_DRIVER |= DISPLAY_DEVICE_PRIMARY_DEVICE)) =3D=3D 0) @@ -240,13 +240,6 @@ pDirect3D9->dwProcessId =3D GetCurrentThreadId(); pDirect3D9->dwRefCnt =3D 1; = - pDirect3D9->unknown004576 =3D 0; - pDirect3D9->unknown004578 =3D 0; - pDirect3D9->unknown004579 =3D 0; - pDirect3D9->unknown004580 =3D 0; - pDirect3D9->unknown004581 =3D 0; - pDirect3D9->unknown004582 =3D 0; - pDirect3D9->unknown004583 =3D 0; pDirect3D9->SDKVersion =3D SDKVersion; = pDirect3D9->lpInt =3D pDirect3D9; @@ -254,7 +247,6 @@ = InitializeCriticalSection(&pDirect3D9->d3d9_cs); = - memset(pDirect3D9->DisplayAdapters, 0, sizeof(pDirect3D9->DisplayAdapt= ers)); GetDisplayDeviceInfo(pDirect3D9); = *ppDirect3D9 =3D (LPDIRECT3D9)&pDirect3D9->lpVtbl; Modified: trunk/reactos/dll/directx/d3d9/d3d9_impl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9=
_impl.c?rev=3D32668&r1=3D32667&r2=3D32668&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/directx/d3d9/d3d9_impl.c (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_impl.c Wed Mar 12 14:29:10 2008 @@ -881,6 +881,55 @@ D3DPRESENT_PARAMETERS* p= PresentationParameters, struct IDirect3DDevice9*= * ppReturnedDeviceInterface) { + DWORD NumAdaptersToCreate; + + LPDIRECT3D9_INT This =3D impl_from_IDirect3D9(iface); + LOCK_D3D9(); + + if (Adapter >=3D This->NumDisplayAdapters) + { + DPRINT1("Invalid Adapter number specified"); + UNLOCK_D3D9(); + return D3DERR_INVALIDCALL; + } + + if (DeviceType !=3D D3DDEVTYPE_HAL && + DeviceType !=3D D3DDEVTYPE_REF && + DeviceType !=3D D3DDEVTYPE_SW) + { + DPRINT1("Invalid DeviceType specified"); + UNLOCK_D3D9(); + return D3DERR_INVALIDCALL; + } + + if (DeviceType !=3D D3DDEVTYPE_HAL) + { + UNIMPLEMENTED + DPRINT1("Sorry, only D3DDEVTYPE_HAL is implemented at this time...= "); + return D3DERR_INVALIDCALL; + } + + if (hFocusWindow !=3D NULL && FALSE =3D=3D IsWindow(hFocusWindow)) + { + DPRINT1("Invalid hFocusWindow parameter specified"); + UNLOCK_D3D9(); + return D3DERR_INVALIDCALL; + } + + if (IsBadWritePtr(ppReturnedDeviceInterface, sizeof(IDirect3DDevice9*)= )) + { + DPRINT1("Invalid ppReturnedDeviceInterface parameter specified"); + UNLOCK_D3D9(); + return D3DERR_INVALIDCALL; + } + + if ((BehaviourFlags & D3DCREATE_ADAPTERGROUP_DEVICE) !=3D 0) + NumAdaptersToCreate =3D This->DisplayAdapters[Adapter].NumAdapters= InGroup; + else + NumAdaptersToCreate =3D 1; + + *ppReturnedDeviceInterface =3D 0; + UNIMPLEMENTED = return D3D_OK; Modified: trunk/reactos/dll/directx/d3d9/d3d9_private.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/d3d9/d3d9=
_private.h?rev=3D32668&r1=3D32667&r2=3D32668&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/directx/d3d9/d3d9_private.h (original) +++ trunk/reactos/dll/directx/d3d9/d3d9_private.h Wed Mar 12 14:29:10 2008 @@ -11,7 +11,10 @@ #include <windows.h> #include <ddraw.h> = -#define DX_D3D9_MAX_NUM_ADAPTERS 12 +#define D3D9_INT_MAX_NUM_ADAPTERS 12 + +#define D3D9_INT_D3DCAPS8_VALID 1 +#define D3D9_INT_D3DCAPS9_VALID 2 = typedef struct _D3D9Unknown6BC_INT_ { @@ -64,7 +67,7 @@ /* 0x0148 */ DWORD dwSVBCaps; /* 0x014c */ DWORD dwVSBCaps; /* 0x0150 */ DWORD dwSVBCaps2; -/* 0x0154 */ DWORD unknown0085; +/* 0x0154 */ DWORD dwDriverCaps; /* 0x0158 */ DWORD NumSupportedFormatOps; /* 0x015c */ LPDDSURFACEDESC pSupportedFormatOps; /* 0x0160 */ DWORD unknown0088; @@ -162,7 +165,7 @@ /* 0x0024 */ struct _tagDIRECT3D9_INT_ *lpInt; /* 0x0028 */ LONG dwRefCnt; /* Increases and decreases by AddR= ef() and Release() */ /* 0x002c */ UINT NumDisplayAdapters; -/* 0x0030 */ Direct3D9DisplayAdapterInfo_INT DisplayAdapters[DX_D3D9_MA= X_NUM_ADAPTERS]; +/* 0x0030 */ Direct3D9DisplayAdapterInfo_INT DisplayAdapters[D3D9_INT_M= AX_NUM_ADAPTERS]; /* 0x2100 */ DWORD unknown002112; /* 0x2104 */ DWORD unknown002113; /* 0x2108 */ DWORD unknown002114;
16 years, 9 months
1
0
0
0
[fireball] 32667: - Fix build.
by fireball@svn.reactos.org
Author: fireball Date: Wed Mar 12 14:07:32 2008 New Revision: 32667 URL:
http://svn.reactos.org/svn/reactos?rev=3D32667&view=3Drev
Log: - Fix build. Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl-gen=
eric.rbuild?rev=3D32667&r1=3D32666&r2=3D32667&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild (original) +++ trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild Wed Mar 12 14:07:32 2008 @@ -166,7 +166,7 @@ <directory name=3D"i386"> <file>interlck_asm.S</file> <file>fastinterlck_asm.S</file> - <file>ioport.s</file> + <file>ioport.S</file> </directory> </if> <file>atom.c</file> @@ -176,7 +176,7 @@ <file>event.c</file> <file>evtpair.c</file> <file>exintrin.c</file> - <file>fastinterlck.c</file> + <file>fastinterlck.c</file> <file>fmutex.c</file> <file>handle.c</file> <file>harderr.c</file>
16 years, 9 months
1
0
0
0
[ros-arm-bringup] 32666: - We now define a much simpler system call interface -- instead of using interrupt 2E with the system call ID in the ip register, we use the system call ID as the interrupt number! On ARM, all software interrupts have a generic handler, so ANY software interrupt will be a system call, and the interrupt number is the system call ID! - Removed a bunch more i386-only exports from the ARM kernel. - Implemented all the READ/WRITE_REGISTER* routines for ARM/PPC. - Implement ha
by ros-arm-bringup@svn.reactos.org
Author: ros-arm-bringup Date: Wed Mar 12 13:17:55 2008 New Revision: 32666 URL:
http://svn.reactos.org/svn/reactos?rev=3D32666&view=3Drev
Log: - We now define a much simpler system call interface -- instead of using in= terrupt 2E with the system call ID in the ip register, we use the system ca= ll ID as the interrupt number! On ARM, all software interrupts have a gener= ic handler, so ANY software interrupt will be a system call, and the interr= upt number is the system call ID! - Removed a bunch more i386-only exports from the ARM kernel. - Implemented all the READ/WRITE_REGISTER* routines for ARM/PPC. - Implement half of KiSoftwareInterruptException, which calls KiSoftwareInt= erruptHandler, which calls KiSystemService. We now reach the first kernel-m= ode system call! (ZwClose from PspInitPhase0). - Reformat fastinterlck.c and change the way it's included per-architecture. Modified: trunk/reactos/ntoskrnl/ex/exintrin.c trunk/reactos/ntoskrnl/ex/fastinterlck.c trunk/reactos/ntoskrnl/ex/init.c trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/trap.s trunk/reactos/ntoskrnl/ke/arm/trapc.c trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild trunk/reactos/ntoskrnl/ntoskrnl_arm.def trunk/reactos/tools/nci/ncitool.c Modified: trunk/reactos/ntoskrnl/ex/exintrin.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/exintrin.=
c?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ex/exintrin.c (original) +++ trunk/reactos/ntoskrnl/ex/exintrin.c Wed Mar 12 13:17:55 2008 @@ -17,6 +17,11 @@ #undef InterlockedCompareExchange #undef InterlockedExchangeAdd #undef InterlockedExchange + +// +// HAL Port to Inlined Port +// +#define H2I(Port) PtrToUshort(Port) = /* FUNCTIONS *************************************************************= *****/ = Modified: trunk/reactos/ntoskrnl/ex/fastinterlck.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/fastinter=
lck.c?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ex/fastinterlck.c (original) +++ trunk/reactos/ntoskrnl/ex/fastinterlck.c Wed Mar 12 13:17:55 2008 @@ -1,37 +1,49 @@ /* * PROJECT: ReactOS Kernel - * COPYRIGHT: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ex/powerpc/fastinterlck.c - * PURPOSE: Executive Atom Functions - * PROGRAMMERS: Art Yerkes + * LICENSE: GPL - See COPYING in the top level directory + * FILE: ntoskrnl/ex/fastinterlck.c + * PURPOSE: Portable Ex*Interlocked and REGISTER routines for non-= x86 + * PROGRAMMERS: ReactOS Portable Systems Group */ = -/* INCLUDES **************************************************************= ***/ +/* INCLUDES **************************************************************= *****/ + +#if defined(_ARM_) || defined(_PPC_) || defined(NTOS_USE_GENERICS) = #include <ntoskrnl.h> -#include <internal/debug.h> - -NTKERNELAPI +#define NDEBUG +#include <debug.h> + +#undef ExInterlockedPushEntrySList +#undef ExInterlockedPopEntrySList +#undef ExInterlockedAddULong +#undef ExInterlockedIncrementLong +#undef ExInterlockedDecrementLong + +/* FUNCTIONS *************************************************************= *****/ + PSLIST_ENTRY NTAPI InterlockedPushEntrySList(IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry) { = - PSINGLE_LIST_ENTRY FirstEntry, NextEntry, Entry =3D (PVOID)ListEntry, = Head =3D (PVOID)ListHead; + PSINGLE_LIST_ENTRY FirstEntry, NextEntry; + PSINGLE_LIST_ENTRY Entry =3D (PVOID)ListEntry, Head =3D (PVOID)ListHea= d; = FirstEntry =3D Head->Next; do { Entry->Next =3D FirstEntry; NextEntry =3D FirstEntry; - FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, (LO= NG)Entry, (LONG)FirstEntry); + FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, + (LONG)Entry, + (LONG)FirstEntry); } while (FirstEntry !=3D NextEntry); = return FirstEntry; } = -NTKERNELAPI PSLIST_ENTRY NTAPI InterlockedPopEntrySList(IN PSLIST_HEADER ListHead) @@ -44,13 +56,14 @@ if (!FirstEntry) return NULL; = NextEntry =3D FirstEntry; - FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, (LO= NG)FirstEntry->Next, (LONG)FirstEntry); + FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, + (LONG)FirstEntry->= Next, + (LONG)FirstEntry); } while (FirstEntry !=3D NextEntry); = return FirstEntry; = } = -NTKERNELAPI PSINGLE_LIST_ENTRY FASTCALL ExInterlockedFlushSList(IN PSLIST_HEADER ListHead) @@ -58,36 +71,27 @@ return (PVOID)_InterlockedExchange((PLONG)&ListHead->Next.Next, (LONG)= NULL); } = -#undef ExInterlockedPushEntrySList -NTKERNELAPI PSLIST_ENTRY FASTCALL -ExInterlockedPushEntrySList -(IN PSLIST_HEADER ListHead, - IN PSLIST_ENTRY ListEntry) +ExInterlockedPushEntrySList(IN PSLIST_HEADER ListHead, + IN PSLIST_ENTRY ListEntry) { return InterlockedPushEntrySList(ListHead, ListEntry); } = -#undef ExInterlockedPopEntrySList -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntrySList( - IN PSLIST_HEADER ListHead, - IN PKSPIN_LOCK Lock) +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPopEntrySList(IN PSLIST_HEADER ListHead, + IN PKSPIN_LOCK Lock) { return InterlockedPopEntrySList(ListHead); } = -#undef ExInterlockedAddULong -NTKERNELAPI ULONG NTAPI -ExfInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) +ExfInterlockedAddUlong(IN PULONG Addend, + IN ULONG Increment, + PKSPIN_LOCK Lock) { KIRQL OldIrql; KeAcquireSpinLock(Lock, &OldIrql); @@ -96,13 +100,11 @@ return *Addend; } = -NTKERNELAPI LONGLONG FASTCALL -ExfInterlockedCompareExchange64( - IN OUT LONGLONG volatile *Destination, - IN PLONGLONG Exchange, - IN PLONGLONG Comperand) +ExfInterlockedCompareExchange64(IN OUT LONGLONG volatile *Destination, + IN PLONGLONG Exchange, + IN PLONGLONG Comperand) { LONGLONG Result; = @@ -111,13 +113,11 @@ return Result; } = -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +FASTCALL +ExfInterlockedInsertHeadList(IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PLIST_ENTRY OldHead =3D NULL; @@ -128,13 +128,11 @@ return OldHead; } = -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +FASTCALL +ExfInterlockedInsertTailList(IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PLIST_ENTRY OldHead =3D NULL; @@ -145,129 +143,83 @@ return OldHead; } = -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ +PSINGLE_LIST_ENTRY +FASTCALL +ExfInterlockedPopEntryList(IN PSINGLE_LIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) +{ + UNIMPLEMENTED; return NULL; } = -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ +PSINGLE_LIST_ENTRY +FASTCALL +ExfInterlockedPushEntryList(IN PSINGLE_LIST_ENTRY ListHead, + IN PSINGLE_LIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + UNIMPLEMENTED; return NULL; } = -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +FASTCALL +ExfInterlockedRemoveHeadList(IN PLIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) { return ExInterlockedRemoveHeadList(ListHead, Lock); } = -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedIncrementLong( - IN PLONG Addend) -{ - return InterlockedIncrement(Addend); -} - -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedDecrementLong( - IN PLONG Addend) -{ - return InterlockedDecrement(Addend); -} - -NTKERNELAPI -ULONG -FASTCALL -Exfi386InterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value) -{ - return (ULONG)_InterlockedExchange((PLONG)Target, Value); -} - -NTKERNELAPI LARGE_INTEGER NTAPI -ExInterlockedAddLargeInteger( - IN PLARGE_INTEGER Addend, - IN LARGE_INTEGER Increment, - IN PKSPIN_LOCK Lock) +ExInterlockedAddLargeInteger(IN PLARGE_INTEGER Addend, + IN LARGE_INTEGER Increment, + IN PKSPIN_LOCK Lock) { LARGE_INTEGER Integer =3D {{0}}; UNIMPLEMENTED; return Integer; } = -NTKERNELAPI ULONG NTAPI -ExInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) +ExInterlockedAddUlong(IN PULONG Addend, + IN ULONG Increment, + PKSPIN_LOCK Lock) { return (ULONG)_InterlockedExchangeAdd((PLONG)Addend, Increment); } = -#undef ExInterlockedIncrementLong -NTKERNELAPI INTERLOCKED_RESULT NTAPI -ExInterlockedIncrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) +ExInterlockedIncrementLong(IN PLONG Addend, + IN PKSPIN_LOCK Lock) { return _InterlockedIncrement(Addend); } = -#undef ExInterlockedDecrementLong -NTKERNELAPI INTERLOCKED_RESULT NTAPI -ExInterlockedDecrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) +ExInterlockedDecrementLong(IN PLONG Addend, + IN PKSPIN_LOCK Lock) { return _InterlockedDecrement(Addend); } = -NTKERNELAPI ULONG NTAPI -ExInterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value, - IN PKSPIN_LOCK Lock) +ExInterlockedExchangeUlong(IN PULONG Target, + IN ULONG Value, + IN PKSPIN_LOCK Lock) { return (ULONG)_InterlockedExchange((PLONG)Target, Value); } = -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +NTAPI +ExInterlockedInsertHeadList(IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PLIST_ENTRY OldHead =3D NULL; @@ -278,13 +230,11 @@ return OldHead; } = -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +NTAPI +ExInterlockedInsertTailList(IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PLIST_ENTRY OldHead =3D NULL; @@ -295,12 +245,10 @@ return OldHead; } = -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPopEntryList(IN PSINGLE_LIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PSINGLE_LIST_ENTRY OldHead =3D NULL; @@ -310,13 +258,11 @@ return OldHead; } = -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPushEntryList(IN PSINGLE_LIST_ENTRY ListHead, + IN PSINGLE_LIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PSINGLE_LIST_ENTRY OldHead =3D NULL; @@ -326,12 +272,10 @@ return OldHead; } = -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) +PLIST_ENTRY +NTAPI +ExInterlockedRemoveHeadList(IN PLIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; PLIST_ENTRY OldHead =3D NULL; @@ -341,23 +285,20 @@ return OldHead; } = -NTKERNELAPI -VOID -FASTCALL -ExInterlockedAddLargeStatistic -(IN PLARGE_INTEGER Addend, - IN ULONG Increment) +VOID +FASTCALL +ExInterlockedAddLargeStatistic(IN PLARGE_INTEGER Addend, + IN ULONG Increment) { UNIMPLEMENTED; } = -NTKERNELAPI LONGLONG FASTCALL -ExInterlockedCompareExchange64(IN OUT PLONGLONG Destination, - IN PLONGLONG Exchange, - IN PLONGLONG Comparand, - IN PKSPIN_LOCK Lock) +ExInterlockedCompareExchange64(IN OUT PLONGLONG Destination, + IN PLONGLONG Exchange, + IN PLONGLONG Comparand, + IN PKSPIN_LOCK Lock) { KIRQL OldIrql; LONGLONG Result; @@ -368,3 +309,149 @@ KeReleaseSpinLock(Lock, OldIrql); return Result; } + +VOID +NTAPI +READ_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, + IN PUCHAR Buffer, + IN ULONG Count) +{ + PUCHAR registerBuffer =3D Register; + PUCHAR readBuffer =3D Buffer; + ULONG readCount; + = + for (readCount =3D Count; readCount--; readBuffer++, registerBuffer++) + { + *readBuffer =3D *(volatile UCHAR * const)registerBuffer; + } +} + +VOID +NTAPI +READ_REGISTER_BUFFER_ULONG(IN PULONG Register, + IN PULONG Buffer, + IN ULONG Count) +{ + PULONG registerBuffer =3D Register; + PULONG readBuffer =3D Buffer; + ULONG readCount; + = + for (readCount =3D Count; readCount--; readBuffer++, registerBuffer++) + { + *readBuffer =3D *(volatile ULONG * const)registerBuffer; + } +} + +VOID +NTAPI +READ_REGISTER_BUFFER_USHORT(IN PUSHORT Register, + IN PUSHORT Buffer, + IN ULONG Count) +{ + PUSHORT registerBuffer =3D Register; + PUSHORT readBuffer =3D Buffer; + ULONG readCount; + = + for (readCount =3D Count; readCount--; readBuffer++, registerBuffer++) + { + *readBuffer =3D *(volatile USHORT * const)registerBuffer; + } +} + +UCHAR +NTAPI +READ_REGISTER_UCHAR(IN PUCHAR Register) +{ + return *(volatile UCHAR * const)Register; +} + +ULONG +NTAPI +READ_REGISTER_ULONG(IN PULONG Register) +{ + return *(volatile ULONG * const)Register; +} + +USHORT +NTAPI +READ_REGISTER_USHORT(IN PUSHORT Register) +{ + return *(volatile USHORT * const)Register; = +} + +VOID +NTAPI +WRITE_REGISTER_BUFFER_UCHAR(IN PUCHAR Register, + IN PUCHAR Buffer, + IN ULONG Count) +{ + PUCHAR registerBuffer =3D Register; + PUCHAR writeBuffer =3D Buffer; + ULONG writeCount; + for (writeCount =3D Count; writeCount--; writeBuffer++, registerBuffer= ++) + { + *(volatile UCHAR * const)registerBuffer =3D *writeBuffer; + } + KeFlushWriteBuffer(); +} + +VOID +NTAPI +WRITE_REGISTER_BUFFER_ULONG(IN PULONG Register, + IN PULONG Buffer, + IN ULONG Count) +{ + PULONG registerBuffer =3D Register; + PULONG writeBuffer =3D Buffer; + ULONG writeCount; + for (writeCount =3D Count; writeCount--; writeBuffer++, registerBuffer= ++) + { + *(volatile ULONG * const)registerBuffer =3D *writeBuffer; + } + KeFlushWriteBuffer(); +} + +VOID +NTAPI +WRITE_REGISTER_BUFFER_USHORT(IN PUSHORT Register, + IN PUSHORT Buffer, + IN ULONG Count) +{ + PUSHORT registerBuffer =3D Register; + PUSHORT writeBuffer =3D Buffer; + ULONG writeCount; + for (writeCount =3D Count; writeCount--; writeBuffer++, registerBuffer= ++) + { + *(volatile USHORT * const)registerBuffer =3D *writeBuffer; + } + KeFlushWriteBuffer(); +} + +VOID +NTAPI +WRITE_REGISTER_UCHAR(IN PUCHAR Register, + IN UCHAR Value) +{ + *(volatile UCHAR * const)Register =3D Value; + KeFlushWriteBuffer(); = +} + +VOID +NTAPI +WRITE_REGISTER_ULONG(IN PULONG Register, + IN ULONG Value) +{ + *(volatile ULONG * const)Register =3D Value; + KeFlushWriteBuffer(); = +} + +VOID +NTAPI +WRITE_REGISTER_USHORT(IN PUSHORT Register, + IN USHORT Value) +{ + *(volatile USHORT * const)Register =3D Value; + KeFlushWriteBuffer(); = +} + +#endif Modified: trunk/reactos/ntoskrnl/ex/init.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?re=
v=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ex/init.c (original) +++ trunk/reactos/ntoskrnl/ex/init.c Wed Mar 12 13:17:55 2008 @@ -1841,7 +1841,9 @@ InbvUpdateProgressBar(80); = /* Initialize VDM support */ +#ifdef i386 KeI386VdmInitialize(); +#endif = /* Initialize Power Subsystem in Phase 1*/ if (!PoInitSystem(1, AcpiTableDetected)) KeBugCheck(INTERNAL_POWER_ERR= OR); Modified: trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/inte=
rnal/arm/ksarm.h?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h (original) +++ trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h Wed Mar 12 13:17:55= 2008 @@ -1,9 +1,20 @@ +/* + * PROJECT: ReactOS Kernel + * LICENSE: GPL - See COPYING in the top level directory + * FILE: ntoskrnl/include/internal/arm/ksarm.h + * PURPOSE: Definitions and offsets for ARM Assembly and C code + * PROGRAMMERS: ReactOS Portable Systems Group + */ + +#ifdef _ASM_ + /* * CPSR Values */ .equ CPSR_THUMB_ENABLE, 0x20 = .equ CPSR_FIQ_DISABLE, 0x40 .equ CPSR_IRQ_DISABLE, 0x80 +.equ CPSR_USER_MODE, 0x10 .equ CPSR_FIQ_MODE, 0x11 .equ CPSR_IRQ_MODE, 0x12 .equ CPSR_SVC_MODE, 0x13 @@ -38,3 +49,21 @@ * PCR */ .equ KiPcr, 0xFFFFF000 + +#else + +/* + * CPSR Values + */ +#define CPSR_THUMB_ENABLE 0x20 = +#define CPSR_FIQ_DISABLE 0x40 +#define CPSR_IRQ_DISABLE 0x80 +#define CPSR_USER_MODE 0x10 +#define CPSR_FIQ_MODE 0x11 +#define CPSR_IRQ_MODE 0x12 +#define CPSR_SVC_MODE 0x13 +#define CPSR_ABORT_MODE 0x17 +#define CPSR_UND_MODE 0x1B +#define CPSR_MODES 0x1F + +#endif Modified: trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/stubs=
_asm.s?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s (original) +++ trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s Wed Mar 12 13:17:55 2008 @@ -1,20 +1,4 @@ #include <internal/arm/asmmacro.S> - -// -// Port I/O and Register Access -// -GENERATE_ARM_STUB READ_REGISTER_BUFFER_UCHAR = -GENERATE_ARM_STUB READ_REGISTER_BUFFER_ULONG = -GENERATE_ARM_STUB READ_REGISTER_BUFFER_USHORT = -GENERATE_ARM_STUB READ_REGISTER_UCHAR = -GENERATE_ARM_STUB READ_REGISTER_ULONG = -GENERATE_ARM_STUB READ_REGISTER_USHORT = -GENERATE_ARM_STUB WRITE_REGISTER_BUFFER_UCHAR = -GENERATE_ARM_STUB WRITE_REGISTER_BUFFER_ULONG = -GENERATE_ARM_STUB WRITE_REGISTER_BUFFER_USHORT = -GENERATE_ARM_STUB WRITE_REGISTER_UCHAR = -GENERATE_ARM_STUB WRITE_REGISTER_ULONG = -GENERATE_ARM_STUB WRITE_REGISTER_USHORT = = // // Exceptions @@ -30,31 +14,22 @@ // GENERATE_ARM_STUB KiSwapContext GENERATE_ARM_STUB DbgBreakPointWithStatus = -GENERATE_ARM_STUB Ke386CallBios = GENERATE_ARM_STUB KeConnectInterrupt = GENERATE_ARM_STUB KeDcacheFlushCount = GENERATE_ARM_STUB KeDisconnectInterrupt = GENERATE_ARM_STUB KeFlushEntireTb = GENERATE_ARM_STUB KeGetRecommendedSharedDataAlignment = -GENERATE_ARM_STUB KeI386AllocateGdtSelectors = -GENERATE_ARM_STUB KeI386FlatToGdtSelector = -GENERATE_ARM_STUB KeI386ReleaseGdtSelectors = GENERATE_ARM_STUB KeIcacheFlushCount = GENERATE_ARM_STUB KeInitializeInterrupt = GENERATE_ARM_STUB KeNumberProcessors = GENERATE_ARM_STUB KeQueryActiveProcessors = GENERATE_ARM_STUB KeRaiseUserException = -GENERATE_ARM_STUB KeRestoreFloatingPointState = -GENERATE_ARM_STUB KeSaveFloatingPointState = GENERATE_ARM_STUB KeSaveStateForHibernate = GENERATE_ARM_STUB KeSetDmaIoCoherency = GENERATE_ARM_STUB KeSynchronizeExecution = GENERATE_ARM_STUB KeUpdateRunTime = GENERATE_ARM_STUB KeUpdateSystemTime = GENERATE_ARM_STUB KeUserModeCallback = -GENERATE_ARM_STUB Kei386EoiHelper = -GENERATE_ARM_STUB KiCoprocessorError = -GENERATE_ARM_STUB KiDispatchInterrupt = GENERATE_ARM_STUB NtSetLdtEntries GENERATE_ARM_STUB NtRaiseException GENERATE_ARM_STUB NtCallbackReturn @@ -66,12 +41,12 @@ // // Internal Ke Arch-Specific Helpers // +GENERATE_ARM_STUB KiDispatchInterrupt GENERATE_ARM_STUB KiSaveProcessorControlState GENERATE_ARM_STUB KiInitializeUserApc GENERATE_ARM_STUB KeDisableInterrupts GENERATE_ARM_STUB KiDispatchException GENERATE_ARM_STUB KiSwapProcess -GENERATE_ARM_STUB KeI386VdmInitialize GENERATE_ARM_STUB KeSwitchKernelStack GENERATE_ARM_STUB KiInitMachineDependent GENERATE_ARM_STUB KiComputeTimerTableIndex Modified: trunk/reactos/ntoskrnl/ke/arm/trap.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trap.=
s?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/trap.s (original) +++ trunk/reactos/ntoskrnl/ke/arm/trap.s Wed Mar 12 13:17:55 2008 @@ -44,10 +44,35 @@ PROLOG_END KiSoftwareInterruptException = // - // FIXME: TODO - // - b . - = + // Save return address + // + str lr, [sp, #-4]! + = + // + // Make space for trap frame + // + sub sp, sp, #(4*17) + = + // + // Save user-mode registers + // + stmia sp, {r0-r12} + add r0, sp, #(4*13) + stmia r0, {r13-r14}^ + mov r0, r0 + = + // + // Save SPSR + // + mrs r0, spsr_all + str r0, [sp, #-4]! + = + // + // Call the C handler + // + mov r0, sp + bl KiSoftwareInterruptHandler + ENTRY_END KiSoftwareInterruptException = NESTED_ENTRY KiPrefetchAbortException @@ -125,6 +150,7 @@ stmia sp, {r0-r12} add r0, sp, #(4*13) stmia r0, {r13-r14}^ + mov r0, r0 = // // Save SPSR Modified: trunk/reactos/ntoskrnl/ke/arm/trapc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trapc=
.c?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/trapc.c (original) +++ trunk/reactos/ntoskrnl/ke/arm/trapc.c Wed Mar 12 13:17:55 2008 @@ -9,10 +9,14 @@ /* INCLUDES **************************************************************= *****/ = #include <ntoskrnl.h> +#include <internal/arm/ksarm.h> #define NDEBUG #include <debug.h> = /* GLOBALS ***************************************************************= *****/ + +#define KiGetPreviousMode(tf) \ + ((tf->Spsr & CPSR_MODES) =3D=3D CPSR_USER_MODE) ? UserMode: KernelMode = /* FUNCTIONS *************************************************************= *****/ = @@ -41,3 +45,60 @@ return STATUS_SUCCESS; } = +NTSTATUS +KiSystemService(IN PKTHREAD Thread, + IN PKTRAP_FRAME TrapFrame, + IN ULONG Instruction) +{ + ULONG Id; + PKPCR Pcr; + = + // + // Increase count of system calls + // + Pcr =3D (PKPCR)KeGetPcr(); + Pcr->Prcb->KeSystemCalls++; + = + // + // Get the system call ID + // + Id =3D Instruction & 0xFFFFF; + DPRINT1("System call (%X) from thread: %p \n", Id, Thread); = + while (TRUE); + return STATUS_SUCCESS; +} + +NTSTATUS +KiSoftwareInterruptHandler(IN PKTRAP_FRAME TrapFrame) +{ + PKTHREAD Thread; + KPROCESSOR_MODE PreviousMode; + ULONG Instruction; + DPRINT1("SWI @ %p %p \n", TrapFrame->Pc, TrapFrame->UserLr); + = + // + // Get the current thread + // + Thread =3D KeGetCurrentThread(); + = + // + // Isolate previous mode + // + PreviousMode =3D KiGetPreviousMode(TrapFrame); + = + // + // Save previous mode and trap frame + // + Thread->TrapFrame =3D TrapFrame; + Thread->PreviousMode =3D PreviousMode; + = + // + // Read the opcode + // + Instruction =3D *(PULONG)(TrapFrame->Pc - sizeof(ULONG)); + = + // + // Call the service call dispatcher + // + return KiSystemService(Thread, TrapFrame, Instruction); +} Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl-gen=
eric.rbuild?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild (original) +++ trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild Wed Mar 12 13:17:55 2008 @@ -166,17 +166,8 @@ <directory name=3D"i386"> <file>interlck_asm.S</file> <file>fastinterlck_asm.S</file> - <file>ioport.S</file> - </directory> - </if> - <if property=3D"ARCH" value=3D"powerpc"> - <directory name=3D"powerpc"> - <file>ioport.s</file> - </directory> - <file>fastinterlck.c</file> - </if> - <if property=3D"ARCH" value=3D"arm"> - <file>fastinterlck.c</file> + <file>ioport.s</file> + </directory> </if> <file>atom.c</file> <file>callback.c</file> @@ -185,6 +176,7 @@ <file>event.c</file> <file>evtpair.c</file> <file>exintrin.c</file> + <file>fastinterlck.c</file> <file>fmutex.c</file> <file>handle.c</file> <file>harderr.c</file> Modified: trunk/reactos/ntoskrnl/ntoskrnl_arm.def URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl_arm=
.def?rev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ntoskrnl_arm.def (original) +++ trunk/reactos/ntoskrnl/ntoskrnl_arm.def Wed Mar 12 13:17:55 2008 @@ -518,7 +518,6 @@ KdPollBreakIn KdPowerTransition KdSystemDebugControl -Ke386CallBios KeAcquireGuardedMutex KeAcquireGuardedMutexUnsafe KeAcquireSpinLockAtDpcLevel @@ -550,16 +549,6 @@ KeGetCurrentThread KeGetPreviousMode KeGetRecommendedSharedDataAlignment -;KeI386AbiosCall -KeI386AllocateGdtSelectors -;KeI386Call16BitCStyleFunction -;KeI386Call16BitFunction -KeI386FlatToGdtSelector -;KeI386GetLid -;KeI386MachineType DATA -KeI386ReleaseGdtSelectors -;KeI386ReleaseLid -;KeI386SetGdtSelector KeIcacheFlushCount DATA KeInitializeApc KeInitializeDeviceQueue @@ -621,10 +610,8 @@ KeRemoveQueueDpc KeRemoveSystemServiceTable KeResetEvent -KeRestoreFloatingPointState KeRevertToUserAffinityThread KeRundownQueue -KeSaveFloatingPointState KeSaveStateForHibernate KeServiceDescriptorTable DATA KeSetAffinityThread @@ -658,13 +645,10 @@ KeWaitForSingleObject KefAcquireSpinLockAtDpcLevel KefReleaseSpinLockFromDpcLevel -Kei386EoiHelper KiAcquireSpinLock ;KiBugCheckData DATA -KiCoprocessorError KiCheckForKernelApcDelivery KiDeliverApc -KiDispatchInterrupt KiEnableTimerWatchdog KiIpiServiceRoutine KiReleaseSpinLock Modified: trunk/reactos/tools/nci/ncitool.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/nci/ncitool.c?r=
ev=3D32666&r1=3D32665&r2=3D32666&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/tools/nci/ncitool.c (original) +++ trunk/reactos/tools/nci/ncitool.c Wed Mar 12 13:17:55 2008 @@ -68,11 +68,7 @@ " j $8\n" \ " nop\n" = -// -// For now, only supports 0-4 arguments -// -#define UserModeStub_arm " ldr r12, =3D%x\n" \ - " swi #0x2E\n" \ +#define UserModeStub_arm " swi #0x%x\n" \ " bx lr\n\n" = #elif defined(_MSC_VER) @@ -104,8 +100,7 @@ #define KernelModeStub_mips " j KiSystemService\n" \ " nop\n" = -#define KernelModeStub_arm " ldr r12, =3D0x%x\n" \ - " swi #0x2E\n" \ +#define KernelModeStub_arm " swi #0x%x\n" \ " bx lr\n\n" = #elif defined(_MSC_VER)
16 years, 9 months
1
0
0
0
[cfinck] 32665: [FORMATTING] Fix indentation
by cfinck@svn.reactos.org
Author: cfinck Date: Wed Mar 12 08:50:30 2008 New Revision: 32665 URL:
http://svn.reactos.org/svn/reactos?rev=3D32665&view=3Drev
Log: [FORMATTING] Fix indentation Modified: trunk/reactos/dll/cpl/input/add.c trunk/reactos/dll/cpl/input/input.c trunk/reactos/dll/cpl/input/settings.c Modified: trunk/reactos/dll/cpl/input/add.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/add.c?r=
ev=3D32665&r1=3D32664&r2=3D32665&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/cpl/input/add.c (original) +++ trunk/reactos/dll/cpl/input/add.c Wed Mar 12 08:50:30 2008 @@ -18,97 +18,97 @@ SelectLayoutByLang(VOID) { TCHAR Layout[MAX_PATH], Lang[MAX_PATH], LangID[MAX_PATH]; - INT iIndex; - LCID Lcid; + INT iIndex; + LCID Lcid; = iIndex =3D SendMessage(hLangList, CB_GETCURSEL, 0, 0); Lcid =3D SendMessage(hLangList, CB_GETITEMDATA, iIndex, 0); = - GetLocaleInfo(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)Lang= , sizeof(Lang)); + GetLocaleInfo(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)L= ang, sizeof(Lang)); = - _stprintf(LangID, _T("0000%s"), Lang); + _stprintf(LangID, _T("0000%s"), Lang); = - if (GetLayoutName(LangID, Layout)) - { - SendMessage(hLayoutList, CB_SELECTSTRING, - (WPARAM) -1, (LPARAM)Layout); - } + if (GetLayoutName(LangID, Layout)) + { + SendMessage(hLayoutList, CB_SELECTSTRING, + (WPARAM) -1, (LPARAM)Layout); + } } = static VOID AddNewLayout(HWND hwndDlg) { - TCHAR Lang[MAX_PATH], LangID[MAX_PATH], LayoutID[MAX_PATH]; - INT iLang, iLayout; - LCID Lcid; + TCHAR Lang[MAX_PATH], LangID[MAX_PATH], LayoutID[MAX_PATH]; + INT iLang, iLayout; + LCID Lcid; = - iLang =3D SendMessage(hLangList, CB_GETCURSEL, 0, 0); - iLayout =3D SendMessage(hLayoutList, CB_GETCURSEL, 0, 0); + iLang =3D SendMessage(hLangList, CB_GETCURSEL, 0, 0); + iLayout =3D SendMessage(hLayoutList, CB_GETCURSEL, 0, 0); = - if ((iLang =3D=3D CB_ERR) || (iLayout =3D=3D CB_ERR)) return; + if ((iLang =3D=3D CB_ERR) || (iLayout =3D=3D CB_ERR)) return; = - Lcid =3D (LCID) SendMessage(hLangList, CB_GETITEMDATA, iLang, 0); - GetLocaleInfo(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)Lang= , sizeof(Lang)); - _stprintf(LangID, _T("0000%s"), Lang); + Lcid =3D (LCID) SendMessage(hLangList, CB_GETITEMDATA, iLang, 0); + GetLocaleInfo(MAKELCID(Lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)L= ang, sizeof(Lang)); + _stprintf(LangID, _T("0000%s"), Lang); = - _tcscpy(LayoutID, (LPTSTR)SendMessage(hLayoutList, CB_GETITEMDATA, iLayou= t, 0)); + _tcscpy(LayoutID, (LPTSTR)SendMessage(hLayoutList, CB_GETITEMDATA, iLa= yout, 0)); = - if (_tcscmp(LangID, LayoutID) =3D=3D 0) - { - MessageBox(0, L"", L"", MB_OK); - HKEY hKey; + if (_tcscmp(LangID, LayoutID) =3D=3D 0) + { + MessageBox(0, L"", L"", MB_OK); + HKEY hKey; = - if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), 0, K= EY_WRITE, &hKey)) - { - = - } - } + if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload")= , 0, KEY_WRITE, &hKey)) + { + = + } + } } = VOID CreateKeyboardLayoutList(VOID) { - HKEY hKey, hSubKey; - TCHAR szBuf[MAX_PATH], KeyName[MAX_PATH]; - LONG Ret; - DWORD dwIndex =3D 0; + HKEY hKey, hSubKey; + TCHAR szBuf[MAX_PATH], KeyName[MAX_PATH]; + LONG Ret; + DWORD dwIndex =3D 0; = - if (RegOpenKey(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Control= \\Keyboard Layouts"), &hKey) =3D=3D ERROR_SUCCESS) - { - Ret =3D RegEnumKey(hKey, dwIndex, szBuf, sizeof(szBuf) / sizeof(TCHAR)); - if (Ret =3D=3D ERROR_SUCCESS) - { - while (Ret =3D=3D ERROR_SUCCESS) - { - _stprintf(KeyName, _T("System\\CurrentControlSet\\Control\\Keyboard La= youts\\%s"), szBuf); - if (RegOpenKey(HKEY_LOCAL_MACHINE, KeyName, &hSubKey) =3D=3D ERROR_SUC= CESS) - { - DWORD Length =3D MAX_PATH; + if (RegOpenKey(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Cont= rol\\Keyboard Layouts"), &hKey) =3D=3D ERROR_SUCCESS) + { + Ret =3D RegEnumKey(hKey, dwIndex, szBuf, sizeof(szBuf) / sizeof(TC= HAR)); + if (Ret =3D=3D ERROR_SUCCESS) + { + while (Ret =3D=3D ERROR_SUCCESS) + { + _stprintf(KeyName, _T("System\\CurrentControlSet\\Control\= \Keyboard Layouts\\%s"), szBuf); + if (RegOpenKey(HKEY_LOCAL_MACHINE, KeyName, &hSubKey) =3D= =3D ERROR_SUCCESS) + { + DWORD Length =3D MAX_PATH; = - if (RegQueryValueEx(hSubKey, _T("Layout Text"), NULL, NULL, (LPBYTE)K= eyName, &Length) =3D=3D ERROR_SUCCESS) - { - UINT iIndex; - iIndex =3D (UINT) SendMessage(hLayoutList, CB_ADDSTRING, 0, (LPARAM)= KeyName); + if (RegQueryValueEx(hSubKey, _T("Layout Text"), NULL, = NULL, (LPBYTE)KeyName, &Length) =3D=3D ERROR_SUCCESS) + { + UINT iIndex; + iIndex =3D (UINT) SendMessage(hLayoutList, CB_ADDS= TRING, 0, (LPARAM)KeyName); = - SendMessage(hLayoutList, CB_SETITEMDATA, iIndex, (LPARAM)szBuf); + SendMessage(hLayoutList, CB_SETITEMDATA, iIndex, (= LPARAM)szBuf); = - // FIXME! - if (_tcscmp(szBuf, _T("00000409")) =3D=3D 0) - { - SendMessage(hLayoutList, CB_SELECTSTRING, (WPARAM) -1, (LPARAM)KeyN= ame); - } + // FIXME! + if (_tcscmp(szBuf, _T("00000409")) =3D=3D 0) + { + SendMessage(hLayoutList, CB_SELECTSTRING, (WPA= RAM) -1, (LPARAM)KeyName); + } = - dwIndex++; - Ret =3D RegEnumKey(hKey, dwIndex, szBuf, sizeof(szBuf) / sizeof(TCHA= R)); - } - } + dwIndex++; + Ret =3D RegEnumKey(hKey, dwIndex, szBuf, sizeof(sz= Buf) / sizeof(TCHAR)); + } + } = - RegCloseKey(hSubKey); - } - } - } + RegCloseKey(hSubKey); + } + } + } = - RegCloseKey(hKey); + RegCloseKey(hKey); } = /* Language enumerate procedure */ @@ -128,12 +128,12 @@ SendMessage(hLangList, CB_SETITEMDATA, Index, (LPARAM)Lcid); = - // FIXME! - if (Lcid =3D=3D 0x0409) - { - SendMessage(hLangList, CB_SELECTSTRING, + // FIXME! + if (Lcid =3D=3D 0x0409) + { + SendMessage(hLangList, CB_SELECTSTRING, (WPARAM) -1, (LPARAM)Lang); - } + } = return TRUE; } @@ -149,42 +149,42 @@ switch (message) { case WM_INITDIALOG: - { - hLangList =3D GetDlgItem(hDlg, IDC_INPUT_LANG_COMBO); - hLayoutList =3D GetDlgItem(hDlg, IDC_KEYBOARD_LO_COMBO); + { + hLangList =3D GetDlgItem(hDlg, IDC_INPUT_LANG_COMBO); + hLayoutList =3D GetDlgItem(hDlg, IDC_KEYBOARD_LO_COMBO); EnumSystemLocales(LanguagesEnumProc, LCID_INSTALLED); CreateKeyboardLayoutList(); - } + } break; = case WM_COMMAND: - { + { switch (LOWORD(wParam)) { case IDC_INPUT_LANG_COMBO: - { + { if (HIWORD(wParam) =3D=3D CBN_SELCHANGE) { SelectLayoutByLang(); } - } + } break; = case IDOK: - { - AddNewLayout(hDlg); - EndDialog(hDlg, LOWORD(wParam)); - } + { + AddNewLayout(hDlg); + EndDialog(hDlg, LOWORD(wParam)); + } break; = case IDCANCEL: - { + { EndDialog(hDlg, LOWORD(wParam)); return TRUE; - } + } } - } - break; + } + break; } = return FALSE; Modified: trunk/reactos/dll/cpl/input/input.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/input.c=
?rev=3D32665&r1=3D32664&r2=3D32665&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/cpl/input/input.c (original) +++ trunk/reactos/dll/cpl/input/input.c Wed Mar 12 08:50:30 2008 @@ -37,7 +37,7 @@ /* Applets */ APPLET Applets[NUM_APPLETS] =3D { - {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApple= t} + {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApp= let} }; = = Modified: trunk/reactos/dll/cpl/input/settings.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/setting=
s.c?rev=3D32665&r1=3D32664&r2=3D32665&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/cpl/input/settings.c (original) +++ trunk/reactos/dll/cpl/input/settings.c Wed Mar 12 08:50:30 2008 @@ -15,12 +15,12 @@ = typedef struct { - LANGID LangId; - TCHAR LangName[MAX_PATH]; - TCHAR LayoutName[MAX_PATH]; - TCHAR ValName[MAX_PATH]; - TCHAR IndName[MAX_PATH]; - TCHAR SubName[MAX_PATH]; + LANGID LangId; + TCHAR LangName[MAX_PATH]; + TCHAR LayoutName[MAX_PATH]; + TCHAR ValName[MAX_PATH]; + TCHAR IndName[MAX_PATH]; + TCHAR SubName[MAX_PATH]; } LAYOUT_ITEM, *LPLAYOUT_ITEM; = BOOL @@ -50,7 +50,7 @@ { LV_COLUMN column; TCHAR szBuf[MAX_PATH]; - HWND hList =3D GetDlgItem(hWnd, IDC_KEYLAYOUT_LIST); + HWND hList =3D GetDlgItem(hWnd, IDC_KEYLAYOUT_LIST); = ZeroMemory(&column, sizeof(LV_COLUMN)); column.mask =3D LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBIT= EM; @@ -67,7 +67,7 @@ column.cx =3D 160; (VOID) ListView_InsertColumn(hList, 1, &column); = - column.fmt =3D LVCFMT_RIGHT; + column.fmt =3D LVCFMT_RIGHT; column.cx =3D 145; column.iSubItem =3D 2; LoadString(hApplet, IDS_LAYOUT, szBuf, sizeof(szBuf) / sizeof(TCHAR)); @@ -78,88 +78,88 @@ static BOOL InitLangList(HWND hWnd) { - HKEY hKey, hSubKey; - TCHAR szBuf[MAX_PATH], szPreload[MAX_PATH], szSub[MAX_PATH]; - LAYOUT_ITEM lItem; - AddListColumn(hWnd); - LONG Ret; - DWORD dwIndex =3D 0, dwType, dwSize; - LV_ITEM item; - HWND hList =3D GetDlgItem(hWnd, IDC_KEYLAYOUT_LIST); - - (VOID) ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT); - = + HKEY hKey, hSubKey; + TCHAR szBuf[MAX_PATH], szPreload[MAX_PATH], szSub[MAX_PATH]; + LAYOUT_ITEM lItem; + AddListColumn(hWnd); + LONG Ret; + DWORD dwIndex =3D 0, dwType, dwSize; + LV_ITEM item; + HWND hList =3D GetDlgItem(hWnd, IDC_KEYLAYOUT_LIST); + + (VOID) ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT); + = if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), - 0, KEY_QUERY_VALUE, &hKey) =3D=3D ERROR_SUCCESS) + 0, KEY_QUERY_VALUE, &hKey) =3D=3D ERROR_SUCCESS) { - dwSize =3D MAX_PATH; - Ret =3D RegEnumValue(hKey, dwIndex, szBuf, &dwSize, NULL, &dwType, NULL,= NULL); - if (Ret =3D=3D ERROR_SUCCESS) - { - while (Ret =3D=3D ERROR_SUCCESS) - { - _tcscpy(lItem.ValName, szBuf); - - dwSize =3D MAX_PATH; - RegQueryValueEx(hKey, szBuf, NULL, NULL, (LPBYTE)szPreload, &dwSize); - - lItem.LangId =3D _tcstoul(szPreload, NULL, 16); - - GetLocaleInfo(lItem.LangId, LOCALE_SISO639LANGNAME, (LPTSTR) szBuf, si= zeof(szBuf)); - _tcscpy(lItem.IndName, _tcsupr(szBuf)); - - GetLocaleInfo(lItem.LangId, LOCALE_SLANGUAGE, (LPTSTR)szBuf, sizeof(sz= Buf)); - _tcscpy(lItem.LangName, szBuf); - = - if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Substitutes"), - 0, KEY_QUERY_VALUE, &hSubKey) =3D=3D ERROR_SUCCESS) - { - dwSize =3D MAX_PATH; - if (RegQueryValueEx(hSubKey, szPreload, NULL, NULL, (LPBYTE)szSub, &d= wSize) =3D=3D ERROR_SUCCESS) - { - _tcscpy(lItem.SubName, szPreload); - if (GetLayoutName(szSub, szBuf)) - { - _tcscpy(lItem.LayoutName, szBuf); - } - } - else - { - _tcscpy(lItem.SubName, _T("")); - } - } - - if (_tcslen(lItem.SubName) < 2) - { - if (GetLayoutName(szPreload, szBuf)) - { - _tcscpy(lItem.LayoutName, szBuf); - } - } - = - ZeroMemory(&item, sizeof(LV_ITEM)); - item.mask =3D LVIF_TEXT | LVIF_PARAM | LVIF_STATE; - item.pszText =3D lItem.IndName; - item.lParam =3D (LPARAM)&lItem; - item.iItem =3D (INT) dwIndex; - INT i =3D ListView_InsertItem(hList, &item); - - ListView_SetItemText(hList, i, 1, lItem.LangName); - ListView_SetItemText(hList, i, 2, lItem.LayoutName); - - dwIndex++; - Ret =3D RegEnumValue(hKey, dwIndex, szBuf, &dwSize, NULL, &dwType, NUL= L, NULL); - RegCloseKey(hSubKey); - - if (_tcscmp(lItem.ValName, _T("1")) =3D=3D 0) - { - (VOID) ListView_SetHotItem(hList, i); - } - } - } - } - - RegCloseKey(hKey); + dwSize =3D MAX_PATH; + Ret =3D RegEnumValue(hKey, dwIndex, szBuf, &dwSize, NULL, &dwType,= NULL, NULL); + if (Ret =3D=3D ERROR_SUCCESS) + { + while (Ret =3D=3D ERROR_SUCCESS) + { + _tcscpy(lItem.ValName, szBuf); + + dwSize =3D MAX_PATH; + RegQueryValueEx(hKey, szBuf, NULL, NULL, (LPBYTE)szPreload= , &dwSize); + + lItem.LangId =3D _tcstoul(szPreload, NULL, 16); + + GetLocaleInfo(lItem.LangId, LOCALE_SISO639LANGNAME, (LPTST= R) szBuf, sizeof(szBuf)); + _tcscpy(lItem.IndName, _tcsupr(szBuf)); + + GetLocaleInfo(lItem.LangId, LOCALE_SLANGUAGE, (LPTSTR)szBu= f, sizeof(szBuf)); + _tcscpy(lItem.LangName, szBuf); + = + if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\S= ubstitutes"), + 0, KEY_QUERY_VALUE, &hSubKey) =3D=3D ERRO= R_SUCCESS) + { + dwSize =3D MAX_PATH; + if (RegQueryValueEx(hSubKey, szPreload, NULL, NULL, (L= PBYTE)szSub, &dwSize) =3D=3D ERROR_SUCCESS) + { + _tcscpy(lItem.SubName, szPreload); + if (GetLayoutName(szSub, szBuf)) + { + _tcscpy(lItem.LayoutName, szBuf); + } + } + else + { + _tcscpy(lItem.SubName, _T("")); + } + } + + if (_tcslen(lItem.SubName) < 2) + { + if (GetLayoutName(szPreload, szBuf)) + { + _tcscpy(lItem.LayoutName, szBuf); + } + } + = + ZeroMemory(&item, sizeof(LV_ITEM)); + item.mask =3D LVIF_TEXT | LVIF_PARAM | LVIF_STATE; + item.pszText =3D lItem.IndName; + item.lParam =3D (LPARAM)&lItem; + item.iItem =3D (INT) dwIndex; + INT i =3D ListView_InsertItem(hList, &item); + + ListView_SetItemText(hList, i, 1, lItem.LangName); + ListView_SetItemText(hList, i, 2, lItem.LayoutName); + + dwIndex++; + Ret =3D RegEnumValue(hKey, dwIndex, szBuf, &dwSize, NULL, = &dwType, NULL, NULL); + RegCloseKey(hSubKey); + + if (_tcscmp(lItem.ValName, _T("1")) =3D=3D 0) + { + (VOID) ListView_SetHotItem(hList, i); + } + } + } + } + + RegCloseKey(hKey); return TRUE; } =
16 years, 9 months
1
0
0
0
[ros-arm-bringup] 32664: - Make another kind of page fault also be handleable by our hacked-up handler: paged pool now fully works. - Current status: we now make it all the way to the first system call at the end of Phase 0! - We now make the IRQL routines modify the IRQL saved in the KPCR, to make some assertions work. - Build mem.c and memgen.c from RTL in order to get non-optimized but portable Rtl*Memory routines and Rtl*Swap routines. - Take the PPC non-optimized but portable Ex*Interlocked
by ros-arm-bringup@svn.reactos.org
Author: ros-arm-bringup Date: Tue Mar 11 19:13:09 2008 New Revision: 32664 URL:
http://svn.reactos.org/svn/reactos?rev=3D32664&view=3Drev
Log: - Make another kind of page fault also be handleable by our hacked-up handl= er: paged pool now fully works. - Current status: we now make it all the way to the first system call at th= e end of Phase 0! - We now make the IRQL routines modify the IRQL saved in the KPCR, to make = some assertions work. - Build mem.c and memgen.c from RTL in order to get non-optimized but porta= ble Rtl*Memory routines and Rtl*Swap routines. - Take the PPC non-optimized but portable Ex*Interlocked* routines and make= them available for ARM as well. Play with the code a bit to get other rout= ines in there too. - Major TODO: Cleanup these routines, re-format them, make them compatible = for all architectures, and later on, provided optimized ARM versions. - Remove _all* _aull* MSVC-i386 helper exports from the kernel, as well as = Exfi386* routines -- they're only for x86 kernels. Added: trunk/reactos/ntoskrnl/ex/fastinterlck.c (contents, props changed) - copied, changed from r32654, trunk/reactos/ntoskrnl/ex/powerpc/fast= interlck.c Removed: trunk/reactos/ntoskrnl/ex/powerpc/fastinterlck.c Modified: trunk/reactos/hal/halarm/generic/hal.c trunk/reactos/lib/rtl/rtl.rbuild trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/thrdini.c trunk/reactos/ntoskrnl/ke/arm/trapc.c trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild trunk/reactos/ntoskrnl/ntoskrnl_arm.def Modified: trunk/reactos/hal/halarm/generic/hal.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halarm/generic/ha=
l.c?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/hal/halarm/generic/hal.c (original) +++ trunk/reactos/hal/halarm/generic/hal.c Tue Mar 11 19:13:09 2008 @@ -769,7 +769,8 @@ KfLowerIrql( KIRQL NewIrql) { - UNIMPLEMENTED; + KeGetPcr()->CurrentIrql =3D NewIrql; + UNIMPLEMENTED; } = = @@ -778,9 +779,11 @@ KfRaiseIrql( KIRQL NewIrql) { - UNIMPLEMENTED; - - return (KIRQL)0; + KIRQL OldIrql =3D KeGetPcr()->CurrentIrql; + KeGetPcr()->CurrentIrql =3D NewIrql; + UNIMPLEMENTED; + + return OldIrql; } = VOID @@ -912,22 +915,28 @@ KIRQL KeSwapIrql(IN KIRQL Irql) { + KIRQL OldIrql =3D KeGetPcr()->CurrentIrql; + KeGetPcr()->CurrentIrql =3D Irql; UNIMPLEMENTED; - return 0; + return OldIrql; } = KIRQL KeRaiseIrqlToDpcLevel(VOID) { + KIRQL OldIrql =3D KeGetPcr()->CurrentIrql; + KeGetPcr()->CurrentIrql =3D SYNCH_LEVEL; UNIMPLEMENTED; - return 0; + return OldIrql; } = KIRQL KeRaiseIrqlToSynchLevel(VOID) { + KIRQL OldIrql =3D KeGetPcr()->CurrentIrql; + KeGetPcr()->CurrentIrql =3D SYNCH_LEVEL; UNIMPLEMENTED; - return 0; + return OldIrql; } = BOOLEAN HalpProcessorIdentified; Modified: trunk/reactos/lib/rtl/rtl.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/rtl.rbuild?re=
v=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/lib/rtl/rtl.rbuild (original) +++ trunk/reactos/lib/rtl/rtl.rbuild Tue Mar 11 19:13:09 2008 @@ -33,6 +33,8 @@ <directory name=3D"arm"> <file>debug_asm.S</file> </directory> + <file>mem.c</file> + <file>memgen.c</file> </if> <directory name=3D"austin"> <file>avl.c</file> Copied: trunk/reactos/ntoskrnl/ex/fastinterlck.c (from r32654, trunk/reacto= s/ntoskrnl/ex/powerpc/fastinterlck.c) URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/fastinter=
lck.c?p2=3Dtrunk/reactos/ntoskrnl/ex/fastinterlck.c&p1=3Dtrunk/reactos/ntos= krnl/ex/powerpc/fastinterlck.c&r1=3D32654&r2=3D32664&rev=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ex/powerpc/fastinterlck.c (original) +++ trunk/reactos/ntoskrnl/ex/fastinterlck.c Tue Mar 11 19:13:09 2008 @@ -1,293 +1,370 @@ -/* - * PROJECT: ReactOS Kernel - * COPYRIGHT: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ex/powerpc/fastinterlck.c - * PURPOSE: Executive Atom Functions - * PROGRAMMERS: Art Yerkes - */ - -/* INCLUDES **************************************************************= ***/ - -#include <ntoskrnl.h> -#include <internal/debug.h> - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExInterlockedFlushSList(IN PSLIST_HEADER ListHead) -{ - PSLIST_ENTRY NewHead =3D NULL; - _InterlockedExchangePointer((PVOID *)&ListHead->Next.Next, &NewHead); - return NewHead; -} - -#undef ExInterlockedPushEntrySList -NTKERNELAPI -PSLIST_ENTRY -FASTCALL -ExInterlockedPushEntrySList -(IN PSLIST_HEADER ListHead, - IN PSLIST_ENTRY ListEntry) -{ - return InterlockedPushEntrySList(ListHead, ListEntry); -} - -#undef ExInterlockedPopEntrySList -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntrySList( - IN PSLIST_HEADER ListHead, - IN PKSPIN_LOCK Lock) -{ - return InterlockedPopEntrySList(ListHead); -} - -#undef ExInterlockedAddULong -NTKERNELAPI -ULONG -NTAPI -ExfInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - KeAcquireSpinLock(Lock, &OldIrql); - *Addend +=3D Increment; - KeReleaseSpinLock(Lock, OldIrql); - return *Addend; -} - -NTKERNELAPI -LONGLONG -FASTCALL -ExfInterlockedCompareExchange64( - IN OUT LONGLONG volatile *Destination, - IN PLONGLONG Exchange, - IN PLONGLONG Comperand) -{ - return _InterlockedCompareExchange64(Destination, *Exchange, *Comperan= d); -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock, &OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; - InsertHeadList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; - InsertTailList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return ExInterlockedRemoveHeadList(ListHead, Lock); -} - -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedIncrementLong( - IN PLONG Addend) -{ - return InterlockedIncrement(Addend); -} - -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedDecrementLong( - IN PLONG Addend) -{ - return InterlockedDecrement(Addend); -} - -NTKERNELAPI -ULONG -FASTCALL -Exfi386InterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value) -{ - return (ULONG)_InterlockedExchange((PLONG)Target, Value); -} - -NTKERNELAPI -LARGE_INTEGER -NTAPI -ExInterlockedAddLargeInteger( - IN PLARGE_INTEGER Addend, - IN LARGE_INTEGER Increment, - IN PKSPIN_LOCK Lock) -{ - LARGE_INTEGER tmp, comp, outnum; - - do { - tmp.QuadPart =3D Addend->QuadPart + Increment.QuadPart; - comp =3D *Addend; - outnum.QuadPart =3D _InterlockedCompareExchange64 - (&Addend->QuadPart, tmp.QuadPart, comp.QuadPart); - } while(outnum.QuadPart !=3D comp.QuadPart); - - return outnum; -} - -NTKERNELAPI -ULONG -NTAPI -ExInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) -{ - return (ULONG)_InterlockedExchangeAdd((PLONG)Addend, Increment); -} - -#undef ExInterlockedIncrementLong -NTKERNELAPI -INTERLOCKED_RESULT -NTAPI -ExInterlockedIncrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) -{ - return _InterlockedIncrement(Addend); -} - -#undef ExInterlockedDecrementLong -NTKERNELAPI -INTERLOCKED_RESULT -NTAPI -ExInterlockedDecrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) -{ - return _InterlockedDecrement(Addend); -} - -NTKERNELAPI -ULONG -NTAPI -ExInterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value, - IN PKSPIN_LOCK Lock) -{ - return (ULONG)_InterlockedExchange((PLONG)Target, Value); -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; - InsertHeadList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; - InsertTailList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} +/* + * PROJECT: ReactOS Kernel + * COPYRIGHT: GPL - See COPYING in the top level directory + * FILE: ntoskrnl/ex/powerpc/fastinterlck.c + * PURPOSE: Executive Atom Functions + * PROGRAMMERS: Art Yerkes + */ + +/* INCLUDES **************************************************************= ***/ + +#include <ntoskrnl.h> +#include <internal/debug.h> + +NTKERNELAPI +PSLIST_ENTRY +NTAPI +InterlockedPushEntrySList(IN PSLIST_HEADER ListHead, + IN PSLIST_ENTRY ListEntry) +{ + = + PSINGLE_LIST_ENTRY FirstEntry, NextEntry, Entry =3D (PVOID)ListEntry, = Head =3D (PVOID)ListHead; + = + FirstEntry =3D Head->Next; + do + { + Entry->Next =3D FirstEntry; + NextEntry =3D FirstEntry; + FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, (LO= NG)Entry, (LONG)FirstEntry); + } while (FirstEntry !=3D NextEntry); + = + return FirstEntry; +} + +NTKERNELAPI +PSLIST_ENTRY +NTAPI +InterlockedPopEntrySList(IN PSLIST_HEADER ListHead) +{ + PSINGLE_LIST_ENTRY FirstEntry, NextEntry, Head =3D (PVOID)ListHead; + = + FirstEntry =3D Head->Next; + do + { + if (!FirstEntry) return NULL; + + NextEntry =3D FirstEntry; + FirstEntry =3D (PVOID)_InterlockedCompareExchange((PLONG)Head, (LO= NG)FirstEntry->Next, (LONG)FirstEntry); + } while (FirstEntry !=3D NextEntry); + + return FirstEntry; = +} + +NTKERNELAPI +PSINGLE_LIST_ENTRY +FASTCALL +ExInterlockedFlushSList(IN PSLIST_HEADER ListHead) +{ + return (PVOID)_InterlockedExchange((PLONG)&ListHead->Next.Next, (LONG)= NULL); +} + +#undef ExInterlockedPushEntrySList +NTKERNELAPI +PSLIST_ENTRY +FASTCALL +ExInterlockedPushEntrySList +(IN PSLIST_HEADER ListHead, + IN PSLIST_ENTRY ListEntry) +{ + return InterlockedPushEntrySList(ListHead, ListEntry); +} + +#undef ExInterlockedPopEntrySList +NTKERNELAPI +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPopEntrySList( + IN PSLIST_HEADER ListHead, + IN PKSPIN_LOCK Lock) +{ + return InterlockedPopEntrySList(ListHead); +} + +#undef ExInterlockedAddULong +NTKERNELAPI +ULONG +NTAPI +ExfInterlockedAddUlong( + IN PULONG Addend, + IN ULONG Increment, + PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + KeAcquireSpinLock(Lock, &OldIrql); + *Addend +=3D Increment; + KeReleaseSpinLock(Lock, OldIrql); + return *Addend; +} + +NTKERNELAPI +LONGLONG +FASTCALL +ExfInterlockedCompareExchange64( + IN OUT LONGLONG volatile *Destination, + IN PLONGLONG Exchange, + IN PLONGLONG Comperand) +{ + LONGLONG Result; + = + Result =3D *Destination; + if (*Destination =3D=3D Result) *Destination =3D *Exchange; + return Result; +} + +NTKERNELAPI +PLIST_ENTRY +FASTCALL +ExfInterlockedInsertHeadList( + IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PLIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock, &OldIrql); + if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; + InsertHeadList(ListHead, ListEntry); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PLIST_ENTRY +FASTCALL +ExfInterlockedInsertTailList( + IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PLIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; + InsertTailList(ListHead, ListEntry); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PSINGLE_LIST_ENTRY +FASTCALL +ExfInterlockedPopEntryList( + IN PSINGLE_LIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) +{ + return NULL; +} + +NTKERNELAPI +PSINGLE_LIST_ENTRY +FASTCALL +ExfInterlockedPushEntryList( + IN PSINGLE_LIST_ENTRY ListHead, + IN PSINGLE_LIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + return NULL; +} + +NTKERNELAPI +PLIST_ENTRY +FASTCALL +ExfInterlockedRemoveHeadList( + IN PLIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) +{ + return ExInterlockedRemoveHeadList(ListHead, Lock); +} + +NTKERNELAPI +INTERLOCKED_RESULT +FASTCALL +Exfi386InterlockedIncrementLong( + IN PLONG Addend) +{ + return InterlockedIncrement(Addend); +} + +NTKERNELAPI +INTERLOCKED_RESULT +FASTCALL +Exfi386InterlockedDecrementLong( + IN PLONG Addend) +{ + return InterlockedDecrement(Addend); +} + +NTKERNELAPI +ULONG +FASTCALL +Exfi386InterlockedExchangeUlong( + IN PULONG Target, + IN ULONG Value) +{ + return (ULONG)_InterlockedExchange((PLONG)Target, Value); +} + +NTKERNELAPI +LARGE_INTEGER +NTAPI +ExInterlockedAddLargeInteger( + IN PLARGE_INTEGER Addend, + IN LARGE_INTEGER Increment, + IN PKSPIN_LOCK Lock) +{ + LARGE_INTEGER Integer =3D {{0}}; + UNIMPLEMENTED; + return Integer; +} + +NTKERNELAPI +ULONG +NTAPI +ExInterlockedAddUlong( + IN PULONG Addend, + IN ULONG Increment, + PKSPIN_LOCK Lock) +{ + return (ULONG)_InterlockedExchangeAdd((PLONG)Addend, Increment); +} + +#undef ExInterlockedIncrementLong +NTKERNELAPI +INTERLOCKED_RESULT +NTAPI +ExInterlockedIncrementLong( + IN PLONG Addend, + IN PKSPIN_LOCK Lock) +{ + return _InterlockedIncrement(Addend); +} + +#undef ExInterlockedDecrementLong +NTKERNELAPI +INTERLOCKED_RESULT +NTAPI +ExInterlockedDecrementLong( + IN PLONG Addend, + IN PKSPIN_LOCK Lock) +{ + return _InterlockedDecrement(Addend); +} + +NTKERNELAPI +ULONG +NTAPI +ExInterlockedExchangeUlong( + IN PULONG Target, + IN ULONG Value, + IN PKSPIN_LOCK Lock) +{ + return (ULONG)_InterlockedExchange((PLONG)Target, Value); +} + +NTKERNELAPI +PLIST_ENTRY +NTAPI +ExInterlockedInsertHeadList( + IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PLIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; + InsertHeadList(ListHead, ListEntry); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PLIST_ENTRY +NTAPI +ExInterlockedInsertTailList( + IN PLIST_ENTRY ListHead, + IN PLIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PLIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; + InsertTailList(ListHead, ListEntry); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPopEntryList( + IN PSINGLE_LIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PSINGLE_LIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + OldHead =3D PopEntryList(ListHead); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PSINGLE_LIST_ENTRY +NTAPI +ExInterlockedPushEntryList( + IN PSINGLE_LIST_ENTRY ListHead, + IN PSINGLE_LIST_ENTRY ListEntry, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PSINGLE_LIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + OldHead =3D PushEntryList(ListHead, ListEntry); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +PLIST_ENTRY +NTAPI +ExInterlockedRemoveHeadList( + IN PLIST_ENTRY ListHead, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + PLIST_ENTRY OldHead =3D NULL; + KeAcquireSpinLock(Lock,&OldIrql); + OldHead =3D RemoveHeadList(ListHead); + KeReleaseSpinLock(Lock, OldIrql); + return OldHead; +} + +NTKERNELAPI +VOID +FASTCALL +ExInterlockedAddLargeStatistic +(IN PLARGE_INTEGER Addend, + IN ULONG Increment) +{ + UNIMPLEMENTED; +} + +NTKERNELAPI +LONGLONG +FASTCALL +ExInterlockedCompareExchange64(IN OUT PLONGLONG Destination, + IN PLONGLONG Exchange, + IN PLONGLONG Comparand, + IN PKSPIN_LOCK Lock) +{ + KIRQL OldIrql; + LONGLONG Result; + = + KeAcquireSpinLock(Lock, &OldIrql); + Result =3D *Destination; + if (*Destination =3D=3D Result) *Destination =3D *Exchange; + KeReleaseSpinLock(Lock, OldIrql); + return Result; +} Propchange: trunk/reactos/ntoskrnl/ex/fastinterlck.c ---------------------------------------------------------------------------= --- svn:eol-style =3D native Propchange: trunk/reactos/ntoskrnl/ex/fastinterlck.c ---------------------------------------------------------------------------= --- svn:mime-type =3D text/plain Removed: trunk/reactos/ntoskrnl/ex/powerpc/fastinterlck.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/powerpc/f=
astinterlck.c?rev=3D32663&view=3Dauto =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ex/powerpc/fastinterlck.c (original) +++ trunk/reactos/ntoskrnl/ex/powerpc/fastinterlck.c (removed) @@ -1,293 +1,0 @@ -/* - * PROJECT: ReactOS Kernel - * COPYRIGHT: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ex/powerpc/fastinterlck.c - * PURPOSE: Executive Atom Functions - * PROGRAMMERS: Art Yerkes - */ - -/* INCLUDES **************************************************************= ***/ - -#include <ntoskrnl.h> -#include <internal/debug.h> - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExInterlockedFlushSList(IN PSLIST_HEADER ListHead) -{ - PSLIST_ENTRY NewHead =3D NULL; - _InterlockedExchangePointer((PVOID *)&ListHead->Next.Next, &NewHead); - return NewHead; -} - -#undef ExInterlockedPushEntrySList -NTKERNELAPI -PSLIST_ENTRY -FASTCALL -ExInterlockedPushEntrySList -(IN PSLIST_HEADER ListHead, - IN PSLIST_ENTRY ListEntry) -{ - return InterlockedPushEntrySList(ListHead, ListEntry); -} - -#undef ExInterlockedPopEntrySList -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntrySList( - IN PSLIST_HEADER ListHead, - IN PKSPIN_LOCK Lock) -{ - return InterlockedPopEntrySList(ListHead); -} - -#undef ExInterlockedAddULong -NTKERNELAPI -ULONG -NTAPI -ExfInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - KeAcquireSpinLock(Lock, &OldIrql); - *Addend +=3D Increment; - KeReleaseSpinLock(Lock, OldIrql); - return *Addend; -} - -NTKERNELAPI -LONGLONG -FASTCALL -ExfInterlockedCompareExchange64( - IN OUT LONGLONG volatile *Destination, - IN PLONGLONG Exchange, - IN PLONGLONG Comperand) -{ - return _InterlockedCompareExchange64(Destination, *Exchange, *Comperan= d); -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock, &OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; - InsertHeadList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; - InsertTailList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -FASTCALL -ExfInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PLIST_ENTRY -FASTCALL -ExfInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return ExInterlockedRemoveHeadList(ListHead, Lock); -} - -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedIncrementLong( - IN PLONG Addend) -{ - return InterlockedIncrement(Addend); -} - -NTKERNELAPI -INTERLOCKED_RESULT -FASTCALL -Exfi386InterlockedDecrementLong( - IN PLONG Addend) -{ - return InterlockedDecrement(Addend); -} - -NTKERNELAPI -ULONG -FASTCALL -Exfi386InterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value) -{ - return (ULONG)_InterlockedExchange((PLONG)Target, Value); -} - -NTKERNELAPI -LARGE_INTEGER -NTAPI -ExInterlockedAddLargeInteger( - IN PLARGE_INTEGER Addend, - IN LARGE_INTEGER Increment, - IN PKSPIN_LOCK Lock) -{ - LARGE_INTEGER tmp, comp, outnum; - - do { - tmp.QuadPart =3D Addend->QuadPart + Increment.QuadPart; - comp =3D *Addend; - outnum.QuadPart =3D _InterlockedCompareExchange64 - (&Addend->QuadPart, tmp.QuadPart, comp.QuadPart); - } while(outnum.QuadPart !=3D comp.QuadPart); - - return outnum; -} - -NTKERNELAPI -ULONG -NTAPI -ExInterlockedAddUlong( - IN PULONG Addend, - IN ULONG Increment, - PKSPIN_LOCK Lock) -{ - return (ULONG)_InterlockedExchangeAdd((PLONG)Addend, Increment); -} - -#undef ExInterlockedIncrementLong -NTKERNELAPI -INTERLOCKED_RESULT -NTAPI -ExInterlockedIncrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) -{ - return _InterlockedIncrement(Addend); -} - -#undef ExInterlockedDecrementLong -NTKERNELAPI -INTERLOCKED_RESULT -NTAPI -ExInterlockedDecrementLong( - IN PLONG Addend, - IN PKSPIN_LOCK Lock) -{ - return _InterlockedDecrement(Addend); -} - -NTKERNELAPI -ULONG -NTAPI -ExInterlockedExchangeUlong( - IN PULONG Target, - IN ULONG Value, - IN PKSPIN_LOCK Lock) -{ - return (ULONG)_InterlockedExchange((PLONG)Target, Value); -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertHeadList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Flink; - InsertHeadList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedInsertTailList( - IN PLIST_ENTRY ListHead, - IN PLIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - KIRQL OldIrql; - PLIST_ENTRY OldHead =3D NULL; - KeAcquireSpinLock(Lock,&OldIrql); - if (!IsListEmpty(ListHead)) OldHead =3D ListEntry->Blink; - InsertTailList(ListHead, ListEntry); - KeReleaseSpinLock(Lock, OldIrql); - return OldHead; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPopEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PSINGLE_LIST_ENTRY -NTAPI -ExInterlockedPushEntryList( - IN PSINGLE_LIST_ENTRY ListHead, - IN PSINGLE_LIST_ENTRY ListEntry, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} - -NTKERNELAPI -PLIST_ENTRY -NTAPI -ExInterlockedRemoveHeadList( - IN PLIST_ENTRY ListHead, - IN PKSPIN_LOCK Lock) -{ - return NULL; -} Modified: trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/stubs=
_asm.s?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s (original) +++ trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s Tue Mar 11 19:13:09 2008 @@ -1,38 +1,4 @@ #include <internal/arm/asmmacro.S> - -// -// Interlocked APIs -// -GENERATE_ARM_STUB ExInterlockedAddLargeInteger = -GENERATE_ARM_STUB ExInterlockedAddLargeStatistic = -GENERATE_ARM_STUB ExInterlockedAddUlong = -GENERATE_ARM_STUB ExInterlockedCompareExchange64 -GENERATE_ARM_STUB ExInterlockedDecrementLong = -GENERATE_ARM_STUB ExInterlockedExchangeUlong = -GENERATE_ARM_STUB ExInterlockedFlushSList = -GENERATE_ARM_STUB ExInterlockedIncrementLong = -GENERATE_ARM_STUB ExInterlockedInsertHeadList = -GENERATE_ARM_STUB ExInterlockedInsertTailList = -GENERATE_ARM_STUB ExInterlockedPopEntryList = -GENERATE_ARM_STUB ExInterlockedPopEntrySList = -GENERATE_ARM_STUB ExInterlockedPushEntryList = -GENERATE_ARM_STUB ExInterlockedPushEntrySList = -GENERATE_ARM_STUB ExInterlockedRemoveHeadList = -GENERATE_ARM_STUB ExfInterlockedAddUlong = -GENERATE_ARM_STUB ExfInterlockedCompareExchange64 -GENERATE_ARM_STUB ExfInterlockedInsertHeadList = -GENERATE_ARM_STUB ExfInterlockedInsertTailList = -GENERATE_ARM_STUB ExfInterlockedPopEntryList = -GENERATE_ARM_STUB ExfInterlockedPushEntryList = -GENERATE_ARM_STUB ExfInterlockedRemoveHeadList = -GENERATE_ARM_STUB Exfi386InterlockedDecrementLong = -GENERATE_ARM_STUB Exfi386InterlockedExchangeUlong = -GENERATE_ARM_STUB Exfi386InterlockedIncrementLong = -GENERATE_ARM_STUB Exi386InterlockedDecrementLong = -GENERATE_ARM_STUB Exi386InterlockedExchangeUlong = -GENERATE_ARM_STUB Exi386InterlockedIncrementLong = -GENERATE_ARM_STUB InterlockedPopEntrySList = -GENERATE_ARM_STUB InterlockedPushEntrySList = = // // Port I/O and Register Access @@ -49,35 +15,6 @@ GENERATE_ARM_STUB WRITE_REGISTER_UCHAR = GENERATE_ARM_STUB WRITE_REGISTER_ULONG = GENERATE_ARM_STUB WRITE_REGISTER_USHORT = - -// -// CRT APIs implemented in ASM -// -GENERATE_ARM_STUB _alldiv = -GENERATE_ARM_STUB _alldvrm = -GENERATE_ARM_STUB _allmul = -GENERATE_ARM_STUB _alloca_probe = -GENERATE_ARM_STUB _allrem = -GENERATE_ARM_STUB _allshl = -GENERATE_ARM_STUB _allshr = -GENERATE_ARM_STUB _aulldiv = -GENERATE_ARM_STUB _aulldvrm = -GENERATE_ARM_STUB _aullrem = -GENERATE_ARM_STUB _aullshr = - -// -// RTL CRT-like APIs implemented in ASM -// -GENERATE_ARM_STUB RtlCompareMemory = -GENERATE_ARM_STUB RtlCompareMemoryUlong = -GENERATE_ARM_STUB RtlFillMemory = -GENERATE_ARM_STUB RtlFillMemoryUlong = -GENERATE_ARM_STUB RtlMoveMemory = -GENERATE_ARM_STUB RtlPrefetchMemoryNonTemporal = -GENERATE_ARM_STUB RtlUlongByteSwap = -GENERATE_ARM_STUB RtlUlonglongByteSwap = -GENERATE_ARM_STUB RtlUshortByteSwap = -GENERATE_ARM_STUB RtlZeroMemory = = // // Exceptions Modified: trunk/reactos/ntoskrnl/ke/arm/thrdini.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/thrdi=
ni.c?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/thrdini.c (original) +++ trunk/reactos/ntoskrnl/ke/arm/thrdini.c Tue Mar 11 19:13:09 2008 @@ -87,7 +87,7 @@ // // Set the previous mode as user // - TrapFrame->PreviousMode =3D UserMode; + //TrapFrame->PreviousMode =3D UserMode; Thread->PreviousMode =3D UserMode; = // @@ -112,7 +112,7 @@ // // Set the previous mode as kernel // - Thread->PreviousMode =3D KernelMode; + //Thread->PreviousMode =3D KernelMode; = // // Context switch frame to setup below Modified: trunk/reactos/ntoskrnl/ke/arm/trapc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trapc=
.c?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/trapc.c (original) +++ trunk/reactos/ntoskrnl/ke/arm/trapc.c Tue Mar 11 19:13:09 2008 @@ -27,7 +27,7 @@ // // Check if this is a page fault // - if (KeArmFaultStatusRegisterGet() =3D=3D 21) + if (KeArmFaultStatusRegisterGet() =3D=3D 21 || KeArmFaultStatusRegiste= rGet() =3D=3D 23) { Status =3D MmAccessFault(FALSE, Address, Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl-gen=
eric.rbuild?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild (original) +++ trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild Tue Mar 11 19:13:09 2008 @@ -172,8 +172,11 @@ <if property=3D"ARCH" value=3D"powerpc"> <directory name=3D"powerpc"> <file>ioport.s</file> - <file>fastinterlck.c</file> - </directory> + </directory> + <file>fastinterlck.c</file> + </if> + <if property=3D"ARCH" value=3D"arm"> + <file>fastinterlck.c</file> </if> <file>atom.c</file> <file>callback.c</file> Modified: trunk/reactos/ntoskrnl/ntoskrnl_arm.def URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl_arm=
.def?rev=3D32664&r1=3D32663&r2=3D32664&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ntoskrnl_arm.def (original) +++ trunk/reactos/ntoskrnl/ntoskrnl_arm.def Tue Mar 11 19:13:09 2008 @@ -167,12 +167,6 @@ ExfInterlockedPopEntryList ExfInterlockedPushEntryList ExfInterlockedRemoveHeadList -Exfi386InterlockedDecrementLong -Exfi386InterlockedExchangeUlong -Exfi386InterlockedIncrementLong -Exi386InterlockedDecrementLong -Exi386InterlockedExchangeUlong -Exi386InterlockedIncrementLong FsRtlAcquireFileExclusive ;FsRtlAddBaseMcbEntry FsRtlAddLargeMcbEntry @@ -1435,17 +1429,6 @@ ZwWriteFile ZwYieldExecution _abnormal_termination -_alldiv -_allmul -_alloca_probe -_allrem -_allshl -_allshr -_alldvrm -_aulldiv -_aulldvrm -_aullrem -_aullshr _except_handler2 _except_handler3 _global_unwind2
16 years, 9 months
1
0
0
0
[dreimer] 32663: Update German language File
by dreimer@svn.reactos.org
Author: dreimer Date: Tue Mar 11 14:44:22 2008 New Revision: 32663 URL:
http://svn.reactos.org/svn/reactos?rev=3D32663&view=3Drev
Log: Update German language File Modified: trunk/reactos/dll/cpl/input/lang/de-DE.rc Modified: trunk/reactos/dll/cpl/input/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/lang/de=
-DE.rc?rev=3D32663&r1=3D32662&r2=3D32663&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/dll/cpl/input/lang/de-DE.rc (original) +++ trunk/reactos/dll/cpl/input/lang/de-DE.rc Tue Mar 11 14:44:22 2008 @@ -2,17 +2,17 @@ = IDD_PROPPAGESETTINGS DIALOGEX 0, 0, 254, 228 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Settings" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Select the services that you want for each input language shown= in the list.\nUse the Add and Remove buttons to modify this list.", -1, 9,= 6, 238, 17 +CAPTION "Einstellungen" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "W=C3=A4hlen Sie die Dienste, die Sie f=C3=BCr die Eingabesprach= en in der Liste verwenden wollen.\nVerwenden Sie Hinzuf=C3=BCgen und Entfer= nen, um die Liste zu bearbeiten.", -1, 9, 6, 238, 17 CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VS= CROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 23= 7, 109 - PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 101, 159, 144, 14 - PUSHBUTTON "A&dd...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Remove...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 - PUSHBUTTON "&Properties...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Preferences", -1, 7, 185, 240, 36 - PUSHBUTTON "&Key Settings...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + PUSHBUTTON "&Als Standard", IDC_SET_DEFAULT, 101, 159, 144, 14 + PUSHBUTTON "&Hinzuf=C3=BCgen...", IDC_ADD_BUTTON, 27, 142, 70, 14 + PUSHBUTTON "Ent&fernen...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Eigenschaften...", IDC_PROP_BUTTON, 175, 142, 70, 14 + GROUPBOX "Einstellungen", -1, 7, 185, 240, 36 + PUSHBUTTON "&Tasteneinstellungen...", IDC_KEY_SET_BTN, 14, 198, 110, 14 END = IDD_KEYSETTINGS DIALOGEX 0, 0, 272, 163 @@ -47,18 +47,18 @@ = IDD_CHANGE_KEY_SEQ DIALOGEX 5, 100, 194, 89 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_PO= PUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Change Key Sequence" +CAPTION "Tastenkombination =C3=A4ndern" FONT 8, "MS Shell Dlg" BEGIN LTEXT "", 1240, 4, 5, 186, 10 GROUPBOX "", -1, 7, 16, 179, 48 - AUTOCHECKBOX "S&witch keyboard layouts", IDC_USE_SK, 12, 17, 135, 8 + AUTOCHECKBOX "Tastaturlayout &wechseln", IDC_USE_SK, 12, 17, 135, 8 CTEXT "SHIFT", -1, 68, 37, 27, 12 CTEXT "+", -1, 57, 37, 8, 9 - AUTORADIOBUTTON "&CTRL", -1, 24, 31, 30, 11, WS_GROUP - AUTORADIOBUTTON "Left A<", -1, 24, 45, 50, 12, NOT WS_TABSTOP + AUTORADIOBUTTON "&STRG", -1, 24, 31, 30, 11, WS_GROUP + AUTORADIOBUTTON "A< links", -1, 24, 45, 50, 12, NOT WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, 83, 70, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 136, 70, 50, 14 + PUSHBUTTON "Abbrechen", IDCANCEL, 136, 70, 50, 14 END = IDD_INPUT_LANG_PROP DIALOGEX 20, 20, 227, 75 @@ -84,8 +84,8 @@ IDS_UNKNOWN "(Unbekannt)" IDS_RESTART "Wollen Sie Ihren Computer nun neustarten?" IDS_WHATS_THIS "Was ist das?" - IDS_LANGUAGE "Language" - IDS_LAYOUT "Keyboard Layout" + IDS_LANGUAGE "Sprache" + IDS_LAYOUT "Tastaturlayout" END = STRINGTABLE
16 years, 9 months
1
0
0
0
[fireball] 32662: - Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers. - Split Reserved into two bitfields: Reserved and Version.
by fireball@svn.reactos.org
Author: fireball Date: Tue Mar 11 14:03:29 2008 New Revision: 32662 URL:
http://svn.reactos.org/svn/reactos?rev=3D32662&view=3Drev
Log: - Update FSRTL_ADVANCED_FCB_HEADER to support newer version headers. - Split Reserved into two bitfields: Reserved and Version. Modified: trunk/reactos/include/ddk/ntifs.h Modified: trunk/reactos/include/ddk/ntifs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntifs.h?r=
ev=3D32662&r1=3D32661&r2=3D32662&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/include/ddk/ntifs.h (original) +++ trunk/reactos/include/ddk/ntifs.h Tue Mar 11 14:03:29 2008 @@ -1308,7 +1308,8 @@ UCHAR Flags; UCHAR IsFastIoPossible; UCHAR Flags2; - UCHAR Reserved; + UCHAR Reserved: 4; + UCHAR Version: 4; PERESOURCE Resource; PERESOURCE PagingIoResource; LARGE_INTEGER AllocationSize; @@ -1316,6 +1317,8 @@ LARGE_INTEGER ValidDataLength; PFAST_MUTEX FastMutex; LIST_ENTRY FilterContexts; + EX_PUSH_LOCK PushLock; + PVOID *FileContextSupportPointer; } FSRTL_ADVANCED_FCB_HEADER, *PFSRTL_ADVANCED_FCB_HEADER; = typedef struct _FSRTL_PER_STREAM_CONTEXT {
16 years, 9 months
1
0
0
0
[dchapyshev] 32661: - Fix typo (part 2/2)
by dchapyshev@svn.reactos.org
Author: dchapyshev Date: Tue Mar 11 12:03:20 2008 New Revision: 32661 URL:
http://svn.reactos.org/svn/reactos?rev=3D32661&view=3Drev
Log: - Fix typo (part 2/2) Modified: trunk/reactos/boot/bootdata/hivesys.inf Modified: trunk/reactos/boot/bootdata/hivesys.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesys=
.inf?rev=3D32661&r1=3D32660&r2=3D32661&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/boot/bootdata/hivesys.inf (original) +++ trunk/reactos/boot/bootdata/hivesys.inf Tue Mar 11 12:03:20 2008 @@ -38,65 +38,65 @@ HKLM,"SYSTEM\CurrentControlSet\Control\IDConfigDB\Hardware Profiles\0000",= "FriendlyName",0x00000000,"New Hardware Profile" = ; Keyboard Layouts -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00040402","Layout F= ile",0x00000000,"kbdbgm.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00040402","Layout T= ext",0x00000000,"Bulgarian BDS 5237-1978" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00020402","Layout F= ile",0x00000000,"kbdbgt.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00020402","Layout T= ext",0x00000000,"Bulgarian phonetic classic" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00030402","Layout F= ile",0x00000000,"kbdbga.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00030402","Layout T= ext",0x00000000,"Bulgarian phonetic BDS 5237-2006 " -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000406","Layout F= ile",0x00000000,"kbdda.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000406","Layout T= ext",0x00000000,"Danish" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000407","Layout F= ile",0x00000000,"kbdgr.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000407","Layout T= ext",0x00000000,"German" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000807","Layout F= ile",0x00000000,"kbdsg.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000807","Layout T= ext",0x00000000,"Swiss German" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000408","Layout F= ile",0x00000000,"kbdhe.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000408","Layout T= ext",0x00000000,"Greek" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000409","Layout F= ile",0x00000000,"kbdus.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000409","Layout T= ext",0x00000000,"United States" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000809","Layout F= ile",0x00000000,"kbduk.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000809","Layout T= ext",0x00000000,"United Kingdom" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00010409","Layout F= ile",0x00000000,"kbddv.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00010409","Layout I= d", 0x00000000,"0002" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00010409","Layout T= ext",0x00000000,"US-Dvorak" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040a","Layout F= ile",0x00000000,"kbdes.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040a","Layout T= ext",0x00000000,"Spanish" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040b","Layout F= ile",0x00000000,"kbdfi.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040b","Layout T= ext",0x00000000,"Finnish" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040c","Layout F= ile",0x00000000,"kbdfr.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040c","Layout T= ext",0x00000000,"French" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040d","Layout F= ile",0x00000000,"kbdheb.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000040d","Layout T= ext",0x00000000,"Hebrew" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000410","Layout F= ile",0x00000000,"kbdit.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000410","Layout T= ext",0x00000000,"Italian" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000411","Layout F= ile",0x00000000,"kbdja.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000411","Layout T= ext",0x00000000,"Japanese" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000080c","Layout F= ile",0x00000000,"kbdbe.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000080c","Layout T= ext",0x00000000,"Belgian French" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000813","Layout F= ile",0x00000000,"kbdbe.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000813","Layout T= ext",0x00000000,"Belgian Dutch" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000415","Layout F= ile",0x00000000,"kbdpl1.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000415","Layout T= ext",0x00000000,"Polish (programmer's)" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000816","Layout F= ile",0x00000000,"kbdpo.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000816","Layout T= ext",0x00000000,"Portuguese" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000419","Layout F= ile",0x00000000,"kbdru.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000419","Layout T= ext",0x00000000,"Russian" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041b","Layout F= ile",0x00000000,"kbdsk.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041b","Layout T= ext",0x00000000,"Slovak" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041d","Layout F= ile",0x00000000,"kbdsw.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041d","Layout T= ext",0x00000000,"Swedish" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041e","Layout F= ile",0x00000000,"kbdth.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\0000041e","Layout T= ext",0x00000000,"Thai" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000422","Layout F= ile",0x00000000,"kbdur.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000422","Layout T= ext",0x00000000,"Ukrainian" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000427","Layout F= ile",0x00000000,"kbdlt.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000427","Layout T= ext",0x00000000,"Lithuanian" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000455","Layout F= ile",0x00000000,"kbdbur.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000455","Layout T= ext",0x00000000,"Burmese" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000414","Layout F= ile",0x00000000,"kbdno.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000414","Layout T= ext",0x00000000,"Norwegian" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000405","Layout F= ile",0x00000000,"kbdcz1.dll" -HKLM,"SYSTEM\CurrentControlSet\Control\KeyboardLayouts\00000405","Layout T= ext",0x00000000,"Czech (QWERTY)" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040402","Layout = File",0x00000000,"kbdbgm.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040402","Layout = Text",0x00000000,"Bulgarian BDS 5237-1978" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402","Layout = File",0x00000000,"kbdbgt.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402","Layout = Text",0x00000000,"Bulgarian phonetic classic" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402","Layout = File",0x00000000,"kbdbga.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402","Layout = Text",0x00000000,"Bulgarian phonetic BDS 5237-2006 " +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406","Layout = File",0x00000000,"kbdda.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406","Layout = Text",0x00000000,"Danish" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407","Layout = File",0x00000000,"kbdgr.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407","Layout = Text",0x00000000,"German" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807","Layout = File",0x00000000,"kbdsg.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807","Layout = Text",0x00000000,"Swiss German" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408","Layout = File",0x00000000,"kbdhe.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408","Layout = Text",0x00000000,"Greek" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409","Layout = File",0x00000000,"kbdus.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409","Layout = Text",0x00000000,"United States" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809","Layout = File",0x00000000,"kbduk.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809","Layout = Text",0x00000000,"United Kingdom" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout = File",0x00000000,"kbddv.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout = Id", 0x00000000,"0002" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout = Text",0x00000000,"US-Dvorak" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a","Layout = File",0x00000000,"kbdes.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a","Layout = Text",0x00000000,"Spanish" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b","Layout = File",0x00000000,"kbdfi.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b","Layout = Text",0x00000000,"Finnish" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c","Layout = File",0x00000000,"kbdfr.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c","Layout = Text",0x00000000,"French" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d","Layout = File",0x00000000,"kbdheb.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d","Layout = Text",0x00000000,"Hebrew" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410","Layout = File",0x00000000,"kbdit.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410","Layout = Text",0x00000000,"Italian" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411","Layout = File",0x00000000,"kbdja.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411","Layout = Text",0x00000000,"Japanese" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c","Layout = File",0x00000000,"kbdbe.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c","Layout = Text",0x00000000,"Belgian French" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813","Layout = File",0x00000000,"kbdbe.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813","Layout = Text",0x00000000,"Belgian Dutch" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415","Layout = File",0x00000000,"kbdpl1.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415","Layout = Text",0x00000000,"Polish (programmer's)" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816","Layout = File",0x00000000,"kbdpo.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816","Layout = Text",0x00000000,"Portuguese" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419","Layout = File",0x00000000,"kbdru.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419","Layout = Text",0x00000000,"Russian" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b","Layout = File",0x00000000,"kbdsk.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b","Layout = Text",0x00000000,"Slovak" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d","Layout = File",0x00000000,"kbdsw.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d","Layout = Text",0x00000000,"Swedish" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e","Layout = File",0x00000000,"kbdth.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e","Layout = Text",0x00000000,"Thai" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422","Layout = File",0x00000000,"kbdur.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422","Layout = Text",0x00000000,"Ukrainian" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000427","Layout = File",0x00000000,"kbdlt.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000427","Layout = Text",0x00000000,"Lithuanian" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000455","Layout = File",0x00000000,"kbdbur.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000455","Layout = Text",0x00000000,"Burmese" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414","Layout = File",0x00000000,"kbdno.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414","Layout = Text",0x00000000,"Norwegian" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405","Layout = File",0x00000000,"kbdcz1.dll" +HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405","Layout = Text",0x00000000,"Czech (QWERTY)" = ; Network HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08= 002BE10318}",,0x00000000,"Network Adapters"
16 years, 9 months
1
0
0
0
[dchapyshev] 32660: - Fix typo (part 1/2)
by dchapyshev@svn.reactos.org
Author: dchapyshev Date: Tue Mar 11 11:39:58 2008 New Revision: 32660 URL:
http://svn.reactos.org/svn/reactos?rev=3D32660&view=3Drev
Log: - Fix typo (part 1/2) Modified: trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c Modified: trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win3=
2k/ntuser/kbdlayout.c?rev=3D32660&r1=3D32659&r2=3D32660&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c Tue Mar 11 11:= 39:58 2008 @@ -133,7 +133,7 @@ UNICODE_STRING klid; WCHAR LayoutPathBuffer[MAX_PATH] =3D L"\\SystemRoot\\System32\\"; WCHAR KeyNameBuffer[MAX_PATH] =3D L"\\REGISTRY\\Machine\\SYSTEM\\" - L"CurrentControlSet\\Control\\KeyboardLayouts\\"; + L"CurrentControlSet\\Control\\Keyboard Layouts\\"; = RtlInitUnicodeString(&klid, wsKLID); RtlInitUnicodeString(&LayoutValueName,L"Layout File");
16 years, 9 months
1
0
0
0
[ros-arm-bringup] 32659: - Convert all Loader Block structures to virtual addresses (By adding KSEG0_BASE) since the kernel eventually unmaps the page table responsible for the physical->virtual identity mapping, but we'll still need to access the loader block. - Implement proper trap prolog/epilog code -- currently used and tested in the data abort handler. Currently hacked away some KTRAP_FRAME stuff on ARM. - The data abort handler has a very rudimentary check to detect page faults and will c
by ros-arm-bringup@svn.reactos.org
Author: ros-arm-bringup Date: Tue Mar 11 11:13:43 2008 New Revision: 32659 URL:
http://svn.reactos.org/svn/reactos?rev=3D32659&view=3Drev
Log: - Convert all Loader Block structures to virtual addresses (By adding KSEG0= _BASE) since the kernel eventually unmaps the page table responsible for th= e physical->virtual identity mapping, but we'll still need to access the lo= ader block. - Implement proper trap prolog/epilog code -- currently used and tested in = the data abort handler. Currently hacked away some KTRAP_FRAME stuff on ARM. - The data abort handler has a very rudimentary check to detect page faults= and will call MmAccessFaults, this means we now support paged pool! - We now succesfully go past MmInitSystem and go all the way until ObInitSy= stem (still in Phase 0). Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c trunk/reactos/include/ndk/arm/ketypes.h trunk/reactos/ntoskrnl/include/internal/arm/intrin_i.h trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h trunk/reactos/ntoskrnl/ke/arm/trap.s trunk/reactos/ntoskrnl/ke/arm/trapc.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/=
arch/arm/loader.c?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/arm/loader.c Tue Mar 11 11:13:4= 3 2008 @@ -30,6 +30,7 @@ CHAR ArmArcHalPath[64]; CHAR ArmNtHalPath[64]; CHAR ArmNtBootPath[64]; +WCHAR ArmModuleName[64]; PNLS_DATA_BLOCK ArmNlsDataBlock; PLOADER_PARAMETER_EXTENSION ArmExtension; BIOS_MEMORY_DESCRIPTOR ArmBoardMemoryDescriptors[16] =3D {{0}}; @@ -1042,7 +1043,7 @@ // // Jump to Kernel // - (*KernelEntryPoint)(Magic, (PVOID)ArmLoaderBlock); + (*KernelEntryPoint)(Magic, (PVOID)((ULONG_PTR)ArmLoaderBlock | KSEG0_B= ASE)); } = VOID @@ -1054,6 +1055,7 @@ NTSTATUS Status; ULONG Dummy, i; PLDR_DATA_TABLE_ENTRY LdrEntry; + PLIST_ENTRY NextEntry, OldEntry; = // // Allocate the ARM Shared Heap @@ -1080,7 +1082,7 @@ // // Setup the extension and setup block // - ArmLoaderBlock->Extension =3D ArmExtension; + ArmLoaderBlock->Extension =3D (PVOID)((ULONG_PTR)ArmExtension | KSEG0_= BASE); ArmLoaderBlock->SetupLdrBlock =3D NULL; = // @@ -1223,6 +1225,7 @@ // // Setup loader entry for the kernel // + wcscpy(ArmModuleName, L"ntoskrnl.exe"); LdrEntry =3D ArmAllocateFromSharedHeap(sizeof(LDR_DATA_TABLE_ENTRY)); RtlZeroMemory(LdrEntry, sizeof(LDR_DATA_TABLE_ENTRY)); LdrEntry->DllBase =3D (PVOID)KernelBase; @@ -1230,6 +1233,10 @@ LdrEntry->EntryPoint =3D KernelEntryPoint; LdrEntry->LoadCount =3D 1; LdrEntry->Flags =3D LDRP_IMAGE_DLL | LDRP_ENTRY_PROCESSED; + RtlInitUnicodeString(&LdrEntry->FullDllName, ArmModuleName); + RtlInitUnicodeString(&LdrEntry->BaseDllName, ArmModuleName); + LdrEntry->FullDllName.Buffer =3D (PVOID)((ULONG_PTR)LdrEntry->FullDllN= ame.Buffer | KSEG0_BASE); + LdrEntry->BaseDllName.Buffer =3D (PVOID)((ULONG_PTR)LdrEntry->BaseDllN= ame.Buffer | KSEG0_BASE); InsertTailList(&ArmLoaderBlock->LoadOrderListHead, &LdrEntry->InLoadOr= derLinks); = // @@ -1253,6 +1260,36 @@ if (Status !=3D STATUS_SUCCESS) return; } = + = + // + // Loop driver list + // = + NextEntry =3D ArmLoaderBlock->LoadOrderListHead.Flink; + while (NextEntry !=3D &ArmLoaderBlock->LoadOrderListHead) + { + // + // Remember the physical entry + // + OldEntry =3D NextEntry->Flink; + = + // + // Edit the data + // + NextEntry->Flink =3D (PVOID)((ULONG_PTR)NextEntry->Flink | KSEG0_B= ASE); + NextEntry->Blink =3D (PVOID)((ULONG_PTR)NextEntry->Blink | KSEG0_B= ASE); + = + // + // Keep looping + // + NextEntry =3D OldEntry; + } + + // + // Now edit the root itself + // + NextEntry->Flink =3D (PVOID)((ULONG_PTR)NextEntry->Flink | KSEG0_BASE); + NextEntry->Blink =3D (PVOID)((ULONG_PTR)NextEntry->Blink | KSEG0_BASE); + = // // Setup extension parameters // @@ -1276,7 +1313,7 @@ // Set the ARC Boot Path // strncpy(ArmArcBootPath, ArmCommandLine, 63); - ArmLoaderBlock->ArcBootDeviceName =3D ArmArcBootPath; + ArmLoaderBlock->ArcBootDeviceName =3D (PVOID)((ULONG_PTR)ArmArcBootPat= h | KSEG0_BASE); = // // The rest of the string is the NT path @@ -1286,22 +1323,31 @@ ArmNtBootPath[0] =3D '\\'; strncat(ArmNtBootPath, BootPath + 1, 63); strcat(ArmNtBootPath,"\\"); - ArmLoaderBlock->NtBootPathName =3D ArmNtBootPath; + ArmLoaderBlock->NtBootPathName =3D (PVOID)((ULONG_PTR)ArmNtBootPath | = KSEG0_BASE); = // // Set the HAL paths // strncpy(ArmArcHalPath, ArmArcBootPath, 63); - ArmLoaderBlock->ArcHalDeviceName =3D ArmArcHalPath; + ArmLoaderBlock->ArcHalDeviceName =3D (PVOID)((ULONG_PTR)ArmArcHalPath = | KSEG0_BASE); strcpy(ArmNtHalPath, "\\"); - ArmLoaderBlock->NtHalPathName =3D ArmNtHalPath; - = - /* Use this new command line */ + ArmLoaderBlock->NtHalPathName =3D (PVOID)((ULONG_PTR)ArmNtHalPath | KS= EG0_BASE); + = + // + // Use this new command line + // strncpy(ArmLoaderBlock->LoadOptions, HalPath + 2, 255); = - /* Parse it and change every slash to a space */ + // + // Parse it and change every slash to a space + // BootPath =3D ArmLoaderBlock->LoadOptions; do {if (*BootPath =3D=3D '/') *BootPath =3D ' ';} while (*BootPath++); + + // + // Fixup command-line pointer + // + ArmLoaderBlock->LoadOptions =3D (PVOID)((ULONG_PTR)ArmLoaderBlock->Loa= dOptions | KSEG0_BASE); = // // Setup cache information @@ -1412,6 +1458,35 @@ ArmLoaderBlock->Prcb =3D KSEG0_BASE | (ULONG)Base; ArmLoaderBlock->Process =3D ArmLoaderBlock->Prcb + sizeof(KPRCB); ArmLoaderBlock->Thread =3D ArmLoaderBlock->Process + sizeof(EPROCESS); + = + // + // Loop memory list + // = + NextEntry =3D ArmLoaderBlock->MemoryDescriptorListHead.Flink; + while (NextEntry !=3D &ArmLoaderBlock->MemoryDescriptorListHead) + { + // + // Remember the physical entry + // + OldEntry =3D NextEntry->Flink; + = + // + // Edit the data + // + NextEntry->Flink =3D (PVOID)((ULONG_PTR)NextEntry->Flink | KSEG0_B= ASE); + NextEntry->Blink =3D (PVOID)((ULONG_PTR)NextEntry->Blink | KSEG0_B= ASE); + = + // + // Keep looping + // + NextEntry =3D OldEntry; + } + = + // + // Now edit the root itself + // + NextEntry->Flink =3D (PVOID)((ULONG_PTR)NextEntry->Flink | KSEG0_BASE); + NextEntry->Blink =3D (PVOID)((ULONG_PTR)NextEntry->Blink | KSEG0_BASE); } = VOID Modified: trunk/reactos/include/ndk/arm/ketypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/arm/ketyp=
es.h?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/include/ndk/arm/ketypes.h (original) +++ trunk/reactos/include/ndk/arm/ketypes.h Tue Mar 11 11:13:43 2008 @@ -59,6 +59,7 @@ // typedef struct _KTRAP_FRAME { + ULONG Spsr; ULONG R0; ULONG R1; ULONG R2; @@ -72,17 +73,17 @@ ULONG R10; ULONG R11; ULONG R12; - ULONG Sp; - ULONG Lr; + ULONG UserSp; + ULONG UserLr; + ULONG SvcSp; + ULONG SvcLr; ULONG Pc; - ULONG Psr; = - UCHAR ExceptionRecord[(sizeof(EXCEPTION_RECORD) + 7) & (~7)]; - UCHAR OldIrql; - UCHAR PreviousMode; - ULONG Fpscr; - ULONG FpExc; - ULONG S[33]; - ULONG FpExtra[8]; +// UCHAR OldIrql; +// UCHAR PreviousMode; +// ULONG Fpscr; +// ULONG FpExc; +// ULONG S[33]; +// ULONG FpExtra[8]; } KTRAP_FRAME, *PKTRAP_FRAME; = #ifndef NTOS_MODE_USER Modified: trunk/reactos/ntoskrnl/include/internal/arm/intrin_i.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/inte=
rnal/arm/intrin_i.h?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/include/internal/arm/intrin_i.h (original) +++ trunk/reactos/ntoskrnl/include/internal/arm/intrin_i.h Tue Mar 11 11:13= :43 2008 @@ -26,6 +26,24 @@ { ARM_ID_CODE_REGISTER Value; __asm__ __volatile__ ("mrc p15, 0, %0, c0, c0, 0" : "=3Dr"(Value.AsUlo= ng) : : "cc"); + return Value; +} + +FORCEINLINE +ULONG +KeArmFaultStatusRegisterGet(VOID) +{ + ULONG Value; + __asm__ __volatile__ ("mrc p15, 0, %0, c5, c0, 0" : "=3Dr"(Value) : : = "cc"); + return Value; +} + +FORCEINLINE +ULONG +KeArmFaultAddressRegisterGet(VOID) +{ + ULONG Value; + __asm__ __volatile__ ("mrc p15, 0, %0, c6, c0, 0" : "=3Dr"(Value) : : = "cc"); return Value; } = Modified: trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/inte=
rnal/arm/ksarm.h?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h (original) +++ trunk/reactos/ntoskrnl/include/internal/arm/ksarm.h Tue Mar 11 11:13:43= 2008 @@ -9,6 +9,7 @@ .equ CPSR_SVC_MODE, 0x13 .equ CPSR_ABORT_MODE, 0x17 .equ CPSR_UND_MODE, 0x1B +.equ CPSR_MODES, 0x1F = = /* Modified: trunk/reactos/ntoskrnl/ke/arm/trap.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trap.=
s?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/trap.s (original) +++ trunk/reactos/ntoskrnl/ke/arm/trap.s Tue Mar 11 11:13:43 2008 @@ -62,32 +62,107 @@ = NESTED_ENTRY KiDataAbortException PROLOG_END KiDataAbortException - - // - // Save space for trap frame - // - sub sp, #TrapFrameLength = // - // Build the register part of the trap frame + // Fixup lr // - stm sp, {r0-r15} + sub lr, lr, #8 + = + // + // Save the bottom 4 registers + // + stmdb sp, {r0-r3} + = + // + // Save the abort lr, sp, spsr, cpsr + // + mov r0, lr + mov r1, sp + mrs r2, cpsr + mrs r3, spsr + = + // + // Switch to SVC mode + // + bic r2, r2, #CPSR_MODES + orr r2, r2, #CPSR_SVC_MODE + msr cpsr_c, r2 + = + // + // Save the SVC sp before we modify it + // + mov r2, sp + = + // + // Save the abort lr + // + str r0, [sp, #-4]! + = + // + // Save the SVC lr and sp + // + str lr, [sp, #-4]! + str r2, [sp, #-4]! + = + // + // Restore the saved SPSR + // + msr spsr_all, r3 + = + // + // Restore our 4 registers + // + ldmdb r1, {r0-r3} + = + // + // Make space for the trap frame + // + sub sp, sp, #(4*15) // TrapFrameLength + = + // + // Save user-mode registers + // + stmia sp, {r0-r12} + add r0, sp, #(4*13) + stmia r0, {r13-r14}^ + = + // + // Save SPSR + // + mrs r0, spsr_all + str r0, [sp, #-4]! = - // - // TOOD: We'll worry about the rest later... - // - = // // Call the C handler // - mov a1, sp - b KiDataAbortHandler + adr lr, AbortExit + mov r0, sp + ldr pc, =3DKiDataAbortHandler + +AbortExit: = // - // Restore state + // Get the SPSR and restore it // + ldr r0, [sp], #4 + msr spsr_all, r0 + = + // + // Restore the registers + // + ldmia sp, {r0-r14}^ + mov r0, r0 + = + // + // Advance in the trap frame + // + add sp, sp, #(4*15) + = + // + // Restore program execution state + // + ldmia sp, {sp, lr, pc}^ b . - = ENTRY_END KiDataAbortException = NESTED_ENTRY KiInterruptException Modified: trunk/reactos/ntoskrnl/ke/arm/trapc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trapc=
.c?rev=3D32659&r1=3D32658&r2=3D32659&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- trunk/reactos/ntoskrnl/ke/arm/trapc.c (original) +++ trunk/reactos/ntoskrnl/ke/arm/trapc.c Tue Mar 11 11:13:43 2008 @@ -19,7 +19,23 @@ NTSTATUS KiDataAbortHandler(IN PKTRAP_FRAME TrapFrame) { - DPRINT1("Data Abort (%p) @ %p\n", TrapFrame, TrapFrame->Lr - 8); + NTSTATUS Status; + PVOID Address =3D (PVOID)KeArmFaultAddressRegisterGet(); + DPRINT1("Data Abort (%x) @ %p %p\n", Address, TrapFrame->SvcLr, TrapFr= ame->Pc); + DPRINT1("Abort Reason: %d\n", KeArmFaultStatusRegisterGet()); + = + // + // Check if this is a page fault + // + if (KeArmFaultStatusRegisterGet() =3D=3D 21) + { + Status =3D MmAccessFault(FALSE, + Address, + KernelMode, + TrapFrame); + DPRINT1("Status: %x\n", Status); + if (Status =3D=3D STATUS_SUCCESS) return Status; + } = while (TRUE); return STATUS_SUCCESS;
16 years, 9 months
1
0
0
0
← Newer
1
...
12
13
14
15
16
17
18
...
27
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Results per page:
10
25
50
100
200