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
December 2007
----- 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
605 discussions
Start a n
N
ew thread
[cwittich] 31140: updated german translation
by cwittich@svn.reactos.org
Author: cwittich Date: Tue Dec 11 14:28:22 2007 New Revision: 31140 URL:
http://svn.reactos.org/svn/reactos?rev=31140&view=rev
Log: updated german translation Modified: trunk/reactos/base/applications/mscutils/servman/lang/de-DE.rc Modified: trunk/reactos/base/applications/mscutils/servman/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils…
============================================================================== --- trunk/reactos/base/applications/mscutils/servman/lang/de-DE.rc (original) +++ trunk/reactos/base/applications/mscutils/servman/lang/de-DE.rc Tue Dec 11 14:28:22 2007 @@ -98,7 +98,7 @@ LTEXT "Sie können die Startparameter angeben, die übernommen werden sollen, wenn der Dienst von hier aus gestartet wird.",IDC_STATIC, 6,177,240,20 LTEXT "Startparameter:", IDC_STATIC, 6, 200, 58, 11 EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "Edit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED + PUSHBUTTON "Bearbeiten", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED END IDD_DLG_DEPEND DIALOGEX 6,6,253,225
17 years
1
0
0
0
[hpoussin] 31139: Handle AddReg and DelReg in Service section
by hpoussin@svn.reactos.org
Author: hpoussin Date: Tue Dec 11 13:26:45 2007 New Revision: 31139 URL:
http://svn.reactos.org/svn/reactos?rev=31139&view=rev
Log: Handle AddReg and DelReg in Service section Modified: trunk/reactos/dll/win32/setupapi/install.c Modified: trunk/reactos/dll/win32/setupapi/install.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/install…
============================================================================== --- trunk/reactos/dll/win32/setupapi/install.c (original) +++ trunk/reactos/dll/win32/setupapi/install.c Tue Dec 11 13:26:45 2007 @@ -1631,6 +1631,8 @@ SC_HANDLE hService = NULL; LPDWORD GroupOrder = NULL; LPQUERY_SERVICE_CONFIGW ServiceConfig = NULL; + HKEY hServicesKey, hServiceKey; + LONG rc; BOOL ret = FALSE; HKEY hGroupOrderListKey = NULL; @@ -1752,7 +1754,6 @@ if (useTag) { /* Add the tag to SYSTEM\CurrentControlSet\Control\GroupOrderList key */ - LONG rc; LPCWSTR lpLoadOrderGroup; DWORD bufferSize; @@ -1831,7 +1832,44 @@ } } - ret = TRUE; + /* Handle AddReg and DelReg */ + rc = RegOpenKeyExW( + list ? list->HKLM : HKEY_LOCAL_MACHINE, + REGSTR_PATH_SERVICES, + 0, + 0, + &hServicesKey); + if (rc != ERROR_SUCCESS) + { + SetLastError(rc); + goto cleanup; + } + rc = RegOpenKeyExW( + hServicesKey, + ServiceName, + 0, + KEY_READ | KEY_WRITE, + &hServiceKey); + RegCloseKey(hServicesKey); + if (rc != ERROR_SUCCESS) + { + SetLastError(rc); + goto cleanup; + } + + ret = SetupInstallFromInfSectionW( + NULL, + hInf, + ServiceSection, + SPINST_REGISTRY, + hServiceKey, + NULL, + 0, + NULL, + NULL, + NULL, + NULL); + RegCloseKey(hServiceKey); cleanup: if (hSCManager != NULL)
17 years
1
0
0
0
[dreimer] 31138: Bug 2881 : Bulgarian translation of ReactOS. (sstpr<AT>narod<DOT>ru) Bug 2882 : Ukrainian translation update. (temarez<AT>yandex<DOT>ru)
by dreimer@svn.reactos.org
Author: dreimer Date: Tue Dec 11 11:34:28 2007 New Revision: 31138 URL:
http://svn.reactos.org/svn/reactos?rev=31138&view=rev
Log: Bug 2881 : Bulgarian translation of ReactOS. (sstpr<AT>narod<DOT>ru) Bug 2882 : Ukrainian translation update. (temarez<AT>yandex<DOT>ru) Added: trunk/reactos/dll/cpl/input/lang/bg-BG.rc (with props) trunk/reactos/dll/cpl/sysdm/lang/bg-BG.rc (with props) trunk/reactos/dll/win32/shellext/deskadp/lang/bg-BG.rc (with props) trunk/reactos/dll/win32/shellext/deskmon/lang/bg-BG.rc (with props) trunk/reactos/dll/win32/shellext/slayer/lang/bg-BG.rc (with props) trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc (with props) trunk/reactos/dll/win32/user32/Bg.rc (with props) trunk/reactos/dll/win32/userenv/lang/bg-BG.rc (with props) trunk/reactos/subsystems/win32/csrss/win32csr/lang/bg-BG.rc (with props) Modified: trunk/reactos/base/applications/control/lang/uk-UA.rc trunk/reactos/base/applications/games/winemine/lang/uk-UA.rc trunk/reactos/dll/cpl/input/rsrc.rc trunk/reactos/dll/cpl/main/lang/bg-BG.rc trunk/reactos/dll/cpl/powercfg/lang/uk-UA.rc trunk/reactos/dll/cpl/sysdm/rsrc.rc trunk/reactos/dll/win32/devmgr/lang/uk-UA.rc trunk/reactos/dll/win32/shell32/lang/bg-BG.rc trunk/reactos/dll/win32/shell32/lang/uk-UA.rc trunk/reactos/dll/win32/shellext/deskadp/rsrc.rc trunk/reactos/dll/win32/shellext/deskmon/rsrc.rc trunk/reactos/dll/win32/shellext/slayer/rsrc.rc trunk/reactos/dll/win32/syssetup/syssetup.rc trunk/reactos/dll/win32/user32/user32.rc trunk/reactos/dll/win32/userenv/userenv.rc trunk/reactos/subsystems/win32/csrss/win32csr/rsrc.rc [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/base/applications/control/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/control/…
Modified: trunk/reactos/base/applications/games/winemine/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/games/wi…
Added: trunk/reactos/dll/cpl/input/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/lang/bg-BG.r…
Modified: trunk/reactos/dll/cpl/input/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/rsrc.rc?rev=…
Modified: trunk/reactos/dll/cpl/main/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/lang/bg-BG.rc…
Modified: trunk/reactos/dll/cpl/powercfg/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/powercfg/lang/uk-U…
Added: trunk/reactos/dll/cpl/sysdm/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/lang/bg-BG.r…
Modified: trunk/reactos/dll/cpl/sysdm/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/rsrc.rc?rev=…
Modified: trunk/reactos/dll/win32/devmgr/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/devmgr/lang/uk-U…
Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-…
Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-…
Added: trunk/reactos/dll/win32/shellext/deskadp/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/deskadp…
Modified: trunk/reactos/dll/win32/shellext/deskadp/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/deskadp…
Added: trunk/reactos/dll/win32/shellext/deskmon/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/deskmon…
Modified: trunk/reactos/dll/win32/shellext/deskmon/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/deskmon…
Added: trunk/reactos/dll/win32/shellext/slayer/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/slayer/…
Modified: trunk/reactos/dll/win32/shellext/slayer/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shellext/slayer/…
Added: trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/bg…
Modified: trunk/reactos/dll/win32/syssetup/syssetup.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/syssetu…
Added: trunk/reactos/dll/win32/user32/Bg.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/Bg.rc?rev…
Modified: trunk/reactos/dll/win32/user32/user32.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/user32.rc…
Added: trunk/reactos/dll/win32/userenv/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/userenv/lang/bg-…
Modified: trunk/reactos/dll/win32/userenv/userenv.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/userenv/userenv.…
Added: trunk/reactos/subsystems/win32/csrss/win32csr/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/win…
Modified: trunk/reactos/subsystems/win32/csrss/win32csr/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrss/win…
17 years
1
0
0
0
[dreimer] 31137: Bug 2881 : Bulgarian translation of ReactOS. (sstpr<AT>narod<DOT>ru) Bug 2882 : Ukrainian translation update. (temarez<AT>yandex<DOT>ru)
by dreimer@svn.reactos.org
Author: dreimer Date: Tue Dec 11 11:34:27 2007 New Revision: 31137 URL:
http://svn.reactos.org/svn/reactos?rev=31137&view=rev
Log: Bug 2881 : Bulgarian translation of ReactOS. (sstpr<AT>narod<DOT>ru) Bug 2882 : Ukrainian translation update. (temarez<AT>yandex<DOT>ru) Added: trunk/rosapps/applications/screensavers/mazescr/lang/uk-UA.rc (with props) Modified: trunk/rosapps/applications/screensavers/butterflies/lang/uk-UA.rc trunk/rosapps/applications/screensavers/mazescr/scrnsave.rc Modified: trunk/rosapps/applications/screensavers/butterflies/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
============================================================================== --- trunk/rosapps/applications/screensavers/butterflies/lang/uk-UA.rc (original) +++ trunk/rosapps/applications/screensavers/butterflies/lang/uk-UA.rc Tue Dec 11 11:34:27 2007 @@ -2,24 +2,24 @@ IDD_DLG_SCREEN DIALOG DISCARDABLE 0, 0, 172, 57 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Butterflies ScreenSaver Settings" +CAPTION "Ïàðàìåòðè çàñòàâêè ""Ìåòåëèêè""" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "OK",IDOK,7,35,50,14 PUSHBUTTON "Ñêàñóâàòè",IDCANCEL,61,35,50,14 - CONTROL "Rotate Butterflies",ROTATE,"Button",BS_AUTOCHECKBOX | + CONTROL "Ïåðåãîðòàòè ìåòåëèê³â",ROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,56,15,70,8 PUSHBUTTON "Ïðî",IDABOUT,115,35,50,14 END IDD_DLG_ABOUT DIALOG DISCARDABLE 0, 0, 149, 79 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About" +CAPTION "Ïðî" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "OK",IDOK,48,58,56,14 - CTEXT "Çàñòàâêà ""Butterflies""",IDC_STATIC,7,7,135,9 - CTEXT "Demo by: NeHe ",IDC_STATIC,7,20,135,8 + CTEXT "Çàñòàâêà ""Ìåòåëèêè""",IDC_STATIC,7,7,135,9 + CTEXT "Äåìî â³ä: NeHe ",IDC_STATIC,7,20,135,8 CTEXT "
http://nehe.gamedev.net
",WEBPAGE1,7,29,135,8,SS_NOTIFY | NOT WS_GROUP CTEXT "Çàñòàâêà â³ä: tHaPuTeR",IDC_STATIC,7,38,135,8,NOT @@ -30,5 +30,5 @@ STRINGTABLE DISCARDABLE BEGIN - IDS_DESCRIPTION "Butterflies ScreenSaver" + IDS_DESCRIPTION "Çàñòàâêà ""Ìåòåëèêè""" END Added: trunk/rosapps/applications/screensavers/mazescr/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
============================================================================== --- trunk/rosapps/applications/screensavers/mazescr/lang/uk-UA.rc (added) +++ trunk/rosapps/applications/screensavers/mazescr/lang/uk-UA.rc Tue Dec 11 11:34:27 2007 @@ -1,0 +1,16 @@ +/* + * PROJECT: Maze ScreenSaver + * LICENSE: Public Domain + * FILE: rosapps/applications/screensavers/mazescr/lang/uk-UA.rc + * PURPOSE: Ukraianian Language File for Maze ScreenSaver + * TRANSLATOR: Artem Reznikov + */ + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Çàñòàâêà ""Ëàá³ðèíò""" + IDS_TITLE "Ïðî" + IDS_TEXT "Öÿ çàñòàâêà íå ìຠíàëàøòîâóâàíèõ ïàðàìåòð³â." +END Propchange: trunk/rosapps/applications/screensavers/mazescr/lang/uk-UA.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/rosapps/applications/screensavers/mazescr/scrnsave.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/screensavers/…
============================================================================== --- trunk/rosapps/applications/screensavers/mazescr/scrnsave.rc (original) +++ trunk/rosapps/applications/screensavers/mazescr/scrnsave.rc Tue Dec 11 11:34:27 2007 @@ -13,3 +13,4 @@ #include "lang/de-DE.rc" #include "lang/en-US.rc" #include "lang/lt-LT.rc" +#include "lang/uk-UA.rc"
17 years
1
0
0
0
[jimtabor] 31136: Add stub patch for RegDeleteKeyExA/W by Stefan100 stefan__100__ at hotmail.com from IRC.
by jimtabor@svn.reactos.org
Author: jimtabor Date: Tue Dec 11 08:33:31 2007 New Revision: 31136 URL:
http://svn.reactos.org/svn/reactos?rev=31136&view=rev
Log: Add stub patch for RegDeleteKeyExA/W by Stefan100 stefan__100__ at
hotmail.com
from IRC. Modified: trunk/reactos/dll/win32/advapi32/advapi32.def trunk/reactos/dll/win32/advapi32/reg/reg.c trunk/reactos/include/psdk/winreg.h Modified: trunk/reactos/dll/win32/advapi32/advapi32.def URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/advapi3…
============================================================================== --- trunk/reactos/dll/win32/advapi32/advapi32.def (original) +++ trunk/reactos/dll/win32/advapi32/advapi32.def Tue Dec 11 08:33:31 2007 @@ -479,6 +479,8 @@ RegCreateKeyW@12 RegDeleteKeyA@8 RegDeleteKeyW@8 +RegDeleteKeyExA@16 +RegDeleteKeyExW@16 RegDeleteKeyValueA@12 RegDeleteKeyValueW@12 RegDeleteTreeA@8 Modified: trunk/reactos/dll/win32/advapi32/reg/reg.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/reg/reg…
============================================================================== --- trunk/reactos/dll/win32/advapi32/reg/reg.c (original) +++ trunk/reactos/dll/win32/advapi32/reg/reg.c Tue Dec 11 08:33:31 2007 @@ -1244,6 +1244,39 @@ return ERROR_SUCCESS; } +/************************************************************************ + * RegDeleteKeyExA + * + * @unimplemented + */ +LONG +WINAPI +RegDeleteKeyExA ( HKEY hKey, + LPCSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved + ) +{ + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +/************************************************************************ + * RegDeleteKeyExW + * + * @unimplemented + */ +LONG +WINAPI +RegDeleteKeyExW (HKEY hKey, + LPCWSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved + ) +{ + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return ERROR_CALL_NOT_IMPLEMENTED; +} /************************************************************************ * RegDeleteKeyValueW Modified: trunk/reactos/include/psdk/winreg.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winreg.h?rev=…
============================================================================== --- trunk/reactos/include/psdk/winreg.h (original) +++ trunk/reactos/include/psdk/winreg.h Tue Dec 11 08:33:31 2007 @@ -82,6 +82,8 @@ LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD); LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY); LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR); +LONG WINAPI RegDeleteKeyExA (HKEY,LPCSTR,REGSAM,DWORD); +LONG WINAPI RegDeleteKeyExW (HKEY,LPCWSTR,REGSAM,DWORD); #if (_WIN32_WINNT >= 0x0600) LONG WINAPI RegDeleteKeyValueA(HKEY,LPCSTR,LPCSTR); LONG WINAPI RegDeleteKeyValueW(HKEY,LPCWSTR,LPCWSTR); @@ -165,6 +167,7 @@ #define RegCreateKey RegCreateKeyW #define RegCreateKeyEx RegCreateKeyExW #define RegDeleteKey RegDeleteKeyW +#define RegDeleteKeyEx RegDeleteKeyExW #if (_WIN32_WINNT >= 0x0600) #define RegDeleteKeyValue RegDeleteKeyValueW #define RegDeleteTree RegDeleteTreeW @@ -206,6 +209,7 @@ #define RegCreateKey RegCreateKeyA #define RegCreateKeyEx RegCreateKeyExA #define RegDeleteKey RegDeleteKeyA +#define RegDeleteKeyEx RegDeleteKeyExA #if (_WIN32_WINNT >= 0x0600) #define RegDeleteKeyValue RegDeleteKeyValueA #define RegDeleteTree RegDeleteTreeA
17 years
1
0
0
0
[fireball] 31135: Andrey Korotaev <unc0rr@gmail.com>: - Fix possible infinite looping in kdbg (happening e.g. when moving mouse in a reactos in qemu which entered the debugger).
by fireball@svn.reactos.org
Author: fireball Date: Tue Dec 11 02:01:50 2007 New Revision: 31135 URL:
http://svn.reactos.org/svn/reactos?rev=31135&view=rev
Log: Andrey Korotaev <unc0rr(a)gmail.com>: - Fix possible infinite looping in kdbg (happening e.g. when moving mouse in a reactos in qemu which entered the debugger). Modified: trunk/reactos/ntoskrnl/kdbg/kdb_cli.c Modified: trunk/reactos/ntoskrnl/kdbg/kdb_cli.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/kdb_cli.c?re…
============================================================================== --- trunk/reactos/ntoskrnl/kdbg/kdb_cli.c (original) +++ trunk/reactos/ntoskrnl/kdbg/kdb_cli.c Tue Dec 11 02:01:50 2007 @@ -1928,6 +1928,10 @@ while (!isalpha(p2[j++])); strcpy(p2, p2 + j); } + else + { + strcpy(p2, p2 + 1); + } } }
17 years
1
0
0
0
[fireball] 31134: - Create an empty configuration tree for Xbox machine, so that ReactOS-Xbox is able to boot further.
by fireball@svn.reactos.org
Author: fireball Date: Tue Dec 11 00:11:16 2007 New Revision: 31134 URL:
http://svn.reactos.org/svn/reactos?rev=31134&view=rev
Log: - Create an empty configuration tree for Xbox machine, so that ReactOS-Xbox is able to boot further. Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c Tue Dec 11 00:11:16 2007 @@ -19,9 +19,28 @@ #include <freeldr.h> +#define NDEBUG +#include <debug.h> + VOID XboxHwDetect(VOID) { + PCONFIGURATION_COMPONENT_DATA SystemKey; + + DbgPrint((DPRINT_HWDETECT, "DetectHardware()\n")); + + /* Create the 'System' key */ + FldrCreateSystemKey(&SystemKey); + + /* Set empty component information */ + FldrSetComponentInformation(SystemKey, + 0x0, + 0x0, + 0xFFFFFFFF); + + /* TODO: Build actual xbox's hardware configuration tree */ + + DbgPrint((DPRINT_HWDETECT, "DetectHardware() Done\n")); } /* EOF */
17 years
1
0
0
0
[fireball] 31133: - Improve the FreeLDR->NTLDR conversion layer by now converting the ARC Hardware Tree. - Apply relocation-style fixups to convert from FreeLDR to Kernel Addresses, since a contiguous buffer was used in FreeLDR, which means we only need to add a delta to each FreeLDR pointer to get the Kernel pointer. - Don't assert if we receive an ARC tree, since we now do! Instead, pretty-print it to the debug log. - Remove some registry debug spew.
by fireball@svn.reactos.org
Author: fireball Date: Tue Dec 11 00:01:45 2007 New Revision: 31133 URL:
http://svn.reactos.org/svn/reactos?rev=31133&view=rev
Log: - Improve the FreeLDR->NTLDR conversion layer by now converting the ARC Hardware Tree. - Apply relocation-style fixups to convert from FreeLDR to Kernel Addresses, since a contiguous buffer was used in FreeLDR, which means we only need to add a delta to each FreeLDR pointer to get the Kernel pointer. - Don't assert if we receive an ARC tree, since we now do! Instead, pretty-print it to the debug log. - Remove some registry debug spew. Modified: trunk/reactos/ntoskrnl/config/cm.h trunk/reactos/ntoskrnl/config/cmconfig.c trunk/reactos/ntoskrnl/config/cmdata.c trunk/reactos/ntoskrnl/config/cmsysini.c trunk/reactos/ntoskrnl/ke/freeldr.c Modified: trunk/reactos/ntoskrnl/config/cm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cm.h?rev=3…
============================================================================== --- trunk/reactos/ntoskrnl/config/cm.h (original) +++ trunk/reactos/ntoskrnl/config/cm.h Tue Dec 11 00:01:45 2007 @@ -456,6 +456,16 @@ } CM_PARSE_CONTEXT, *PCM_PARSE_CONTEXT; // +// MultiFunction Adapter Recognizer Structure +// +typedef struct _CMP_MF_TYPE +{ + PWCHAR Identifier; + USHORT InterfaceType; + USHORT Count; +} CMP_MF_TYPE, *PCMP_MF_TYPE; + +// // System Control Vector // typedef struct _CM_SYSTEM_CONTROL_VECTOR @@ -1387,6 +1397,10 @@ extern ULONG CmpConfigurationAreaSize; extern PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData; extern UNICODE_STRING CmTypeName[]; +extern UNICODE_STRING CmClassName[]; +extern CMP_MF_TYPE CmpMultifunctionTypes[]; +extern USHORT CmpUnknownBusCount; +extern ULONG CmpTypeCount[MaximumType + 1]; extern HIVE_LIST_ENTRY CmpMachineHiveList[]; extern UNICODE_STRING CmSymbolicLinkValueName; extern UNICODE_STRING CmpSystemStartOptions; Modified: trunk/reactos/ntoskrnl/config/cmconfig.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmconfig.c…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmconfig.c (original) +++ trunk/reactos/ntoskrnl/config/cmconfig.c Tue Dec 11 00:01:45 2007 @@ -87,10 +87,10 @@ /* Fail if the key couldn't be created, and make sure it's a new key */ if (!NT_SUCCESS(Status)) return Status; - ASSERT(Disposition == REG_CREATED_NEW_KEY); - } - - /* Sstup the compnent information key */ + //ASSERT(Disposition == REG_CREATED_NEW_KEY); + } + + /* Setup the component information key */ RtlInitUnicodeString(&ValueName, L"Component Information"); Status = NtSetValueKey(KeyHandle, &ValueName, @@ -116,6 +116,7 @@ Status = RtlAnsiStringToUnicodeString(&ValueData, &TempString, TRUE); + RtlCreateUnicodeString(&ValueData, (PWCHAR)Component->Identifier); if (NT_SUCCESS(Status)) { /* Save the identifier in the registry */ @@ -192,6 +193,157 @@ /* Return status */ return Status; +} + +int t, tabLevel; + +VOID +NTAPI +CmpDumpHardwareTree(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, + IN INTERFACE_TYPE InterfaceType, + IN ULONG BusNumber) +{ + PCONFIGURATION_COMPONENT Component; + USHORT DeviceIndexTable[MaximumType + 1] = {0}; + ULONG Interface = InterfaceType, Bus = BusNumber, i; + PCHAR InterfaceStrings[MaximumInterfaceType + 1] = + { + "Internal", + "Isa", + "Eisa", + "MicroChannel", + "TurboChannel", + "PCIBus", + "VMEBus", + "NuBus", + "PCMCIABus", + "CBus", + "MPIBus", + "MPSABus", + "ProcessorInternal", + "InternalPowerBus", + "PNPISABus", + "PNPBus", + "Unknown" + }; + + while (CurrentEntry) + { + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Dumping node @ 0x%p\n", CurrentEntry); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Parent @ 0x%p Sibling @ 0x%p Child @ 0x%p\n", + CurrentEntry->Parent, CurrentEntry->Sibling, CurrentEntry->Child); + + /* Check if this is an adapter */ + Component = &CurrentEntry->ComponentEntry; + if ((Component->Class == AdapterClass) && + (CurrentEntry->Parent->ComponentEntry.Class == SystemClass)) + { + /* Check what kind of adapter it is */ + switch (Component->Type) + { + /* EISA */ + case EisaAdapter: + + /* Fixup information */ + Interface = Eisa; + Bus = CmpTypeCount[EisaAdapter]++; + break; + + /* Turbo-channel */ + case TcAdapter: + + /* Fixup information */ + Interface = TurboChannel; + Bus = CmpTypeCount[TurboChannel]++; + break; + + /* ISA, PCI, etc busses */ + case MultiFunctionAdapter: + + /* Check if we have an identifier */ + if (Component->Identifier) + { + /* Loop each multi-function adapter type */ + for (i = 0; CmpMultifunctionTypes[i].Identifier; i++) + { + /* Check for a name match */ + if (!_wcsicmp(CmpMultifunctionTypes[i].Identifier, + (PWCHAR)Component->Identifier)) + { + /* Match found */ + break; + } + } + + /* Fix up information */ + Interface = CmpMultifunctionTypes[i].InterfaceType; + Bus = CmpMultifunctionTypes[i].Count++; + } + break; + + /* SCSI Bus */ + case ScsiAdapter: + + /* Fix up */ + Interface = Internal; + Bus = CmpTypeCount[ScsiAdapter]++; + break; + + /* Unknown */ + default: + Interface = -1; + Bus = CmpUnknownBusCount++; + break; + } + } + + /* Convert from NT to ARC class */ + if (Component->Class == SystemClass) Component->Type = ArcSystem; + + /* Dump information on the component */ + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Component Type: %wZ\n", &CmTypeName[Component->Type]); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Class: %wZ\n", &CmClassName[Component->Class]); + if (Component->Class != SystemClass) + { + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Device Index: %lx\n", DeviceIndexTable[Component->Type]++); + } + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Component Information:\n"); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("\tFlags: %lx\n", Component->Flags); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("\tVersion: %lx\n", Component->Version); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("\tAffinity: %lx\n", Component->AffinityMask); + if (Component->IdentifierLength) + { + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Identifier: %S\n", Component->Identifier); + } + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Configuration Data: %p\n", CurrentEntry->ConfigurationData); + for (t = 0; t < tabLevel; t++) DbgPrint("\t"); + DbgPrint("Interface Type: %s Bus Number: %d\n\n", + InterfaceStrings[Interface], + Bus); + + /* Check for children */ + if (CurrentEntry->Child) + { + /* Recurse child */ + tabLevel++; + CmpDumpHardwareTree(CurrentEntry->Child, Interface, Bus); + tabLevel--; + } + + /* Get to the next entry */ + CurrentEntry = CurrentEntry->Sibling; + } } NTSTATUS @@ -258,7 +410,10 @@ /* Check if we got anything from NTLDR */ if (LoaderBlock->ConfigurationRoot) { - ASSERTMSG("NTLDR ARC Hardware Tree Not Supported!\n", FALSE); + /* Dump the hardware tree */ + DPRINT1("ARC Hardware Tree Received @ 0x%p. Dumping HW Info:\n\n", + LoaderBlock->ConfigurationRoot); + CmpDumpHardwareTree(LoaderBlock->ConfigurationRoot, -1, -1); } else { @@ -272,3 +427,4 @@ return Status; } + Modified: trunk/reactos/ntoskrnl/config/cmdata.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmdata.c?r…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmdata.c (original) +++ trunk/reactos/ntoskrnl/config/cmdata.c Tue Dec 11 00:01:45 2007 @@ -60,7 +60,22 @@ BOOLEAN CmpMiniNTBoot; ULONG CmpBootType; +USHORT CmpUnknownBusCount; +ULONG CmpTypeCount[MaximumType + 1]; + HANDLE CmpRegistryRootHandle; + +UNICODE_STRING CmClassName[MaximumClass + 1] = +{ + RTL_CONSTANT_STRING(L"System"), + RTL_CONSTANT_STRING(L"Processor"), + RTL_CONSTANT_STRING(L"Cache"), + RTL_CONSTANT_STRING(L"Adapter"), + RTL_CONSTANT_STRING(L"Controller"), + RTL_CONSTANT_STRING(L"Peripheral"), + RTL_CONSTANT_STRING(L"MemoryClass"), + RTL_CONSTANT_STRING(L"Undefined") +}; UNICODE_STRING CmTypeName[MaximumType + 1] = { @@ -108,6 +123,19 @@ RTL_CONSTANT_STRING(L"Undefined") }; +CMP_MF_TYPE CmpMultifunctionTypes[] = +{ + {L"ISA", Isa, 0}, + {L"MCA", MicroChannel, 0}, + {L"PCI", PCIBus, 0}, + {L"VME", VMEBus, 0}, + {L"PCMCIA", PCMCIABus, 0}, + {L"CBUS", CBus, 0}, + {L"MPIPI", MPIBus, 0}, + {L"MPSA", MPSABus, 0}, + {NULL, Internal, 0} +}; + CM_SYSTEM_CONTROL_VECTOR CmControlVector[] = { { Modified: trunk/reactos/ntoskrnl/config/cmsysini.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmsysini.c…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmsysini.c (original) +++ trunk/reactos/ntoskrnl/config/cmsysini.c Tue Dec 11 00:01:45 2007 @@ -1054,8 +1054,7 @@ /* Get the hive index, make sure it makes sense */ i = (ULONG)StartContext; ASSERT(CmpMachineHiveList[i].Name != NULL); - DPRINT1("[HiveLoad] Parallel Thread: %d\n", i); - + /* We were started */ CmpMachineHiveList[i].ThreadStarted = TRUE; @@ -1097,7 +1096,6 @@ CmpMachineHiveList[i].Allocate = TRUE; /* Load the hive file */ - DPRINT1("[HiveLoad]: Load from file %wZ\n", &FileName); Status = CmpInitHiveFromFile(&FileName, CmpMachineHiveList[i].HHiveFlags, &CmHive, @@ -1122,12 +1120,10 @@ } else { + /* We already have a hive, is it volatile? */ CmHive = CmpMachineHiveList[i].CmHive; - /* We already have a hive, is it volatile? */ if (!(CmHive->Hive.HiveFlags & HIVE_VOLATILE)) { - DPRINT1("[HiveLoad]: Open from file %wZ\n", &FileName); - /* It's now, open the hive file and log */ Status = CmpOpenHiveFiles(&FileName, L".LOG", @@ -1305,7 +1301,6 @@ } /* Now link the hive to its master */ - DPRINT1("[HiveLoad]: Link %wZ\n", &RegName); Status = CmpLinkHiveToMaster(&RegName, NULL, CmpMachineHiveList[i].CmHive2, Modified: trunk/reactos/ntoskrnl/ke/freeldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/freeldr.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ke/freeldr.c (original) +++ trunk/reactos/ntoskrnl/ke/freeldr.c Tue Dec 11 00:01:45 2007 @@ -36,7 +36,7 @@ ULONG BldrCurrentMd; ULONG BldrCurrentMod; -/* NT Loader Data. Eats up about 80KB! */ +/* NT Loader Data. Eats up about 100KB! */ LOADER_PARAMETER_BLOCK BldrLoaderBlock; // 0x0000 LOADER_PARAMETER_EXTENSION BldrExtensionBlock; // 0x0060 CHAR BldrCommandLine[256]; // 0x00DC @@ -53,7 +53,7 @@ ARC_DISK_INFORMATION BldrArcDiskInfo; // 0x12134 CHAR BldrArcNames[32][256]; // 0x1213C ARC_DISK_SIGNATURE BldrDiskInfo[32]; // 0x1413C - // 0x1443C +CHAR BldrArcHwBuffer[16 * 1024]; // 0x1843C /* BIOS Memory Map */ BIOS_MEMORY_DESCRIPTOR BiosMemoryDescriptors[16] = {{0}}; @@ -862,6 +862,34 @@ VOID NTAPI +KiRosFixupComponentTree(IN PCONFIGURATION_COMPONENT_DATA p, + IN ULONG i) +{ + PCONFIGURATION_COMPONENT pp; + + /* Loop each entry */ + while (p) + { + /* Grab the component entry */ + pp = &p->ComponentEntry; + + /* Fixup the pointers */ + if (pp->Identifier) pp->Identifier = (PVOID)((ULONG_PTR)pp->Identifier + i); + if (p->ConfigurationData) p->ConfigurationData = (PVOID)((ULONG_PTR)p->ConfigurationData + i); + if (p->Parent) p->Parent = (PVOID)((ULONG_PTR)p->Parent + i); + if (p->Sibling) p->Sibling = (PVOID)((ULONG_PTR)p->Sibling + i); + if (p->Child) p->Child = (PVOID)((ULONG_PTR)p->Child + i); + + /* Check if we have a child */ + if (p->Child) KiRosFixupComponentTree(p->Child, i); + + /* Get to the next entry */ + p = p->Sibling; + } +} + +VOID +NTAPI KiRosFrldrLpbToNtLpb(IN PROS_LOADER_PARAMETER_BLOCK RosLoaderBlock, IN PLOADER_PARAMETER_BLOCK *NtLoaderBlock) { @@ -1185,6 +1213,15 @@ InsertTailList(&LoaderBlock->ArcDiskInformation->DiskSignatureListHead, &ArcDiskInfo->ListEntry); } + + /* Copy the ARC Hardware Tree */ + RtlCopyMemory(BldrArcHwBuffer, (PVOID)RosLoaderBlock->ArchExtra, 16 * 1024); + LoaderBlock->ConfigurationRoot = (PVOID)BldrArcHwBuffer; + + /* Apply fixups */ + KiRosFixupComponentTree(LoaderBlock->ConfigurationRoot, + (ULONG_PTR)BldrArcHwBuffer - + RosLoaderBlock->ArchExtra); } VOID
17 years
1
0
0
0
[greatlrd] 31132: Fix some typo in Main_DirectDraw_QueryInterface
by greatlrd@svn.reactos.org
Author: greatlrd Date: Mon Dec 10 23:29:51 2007 New Revision: 31132 URL:
http://svn.reactos.org/svn/reactos?rev=31132&view=rev
Log: Fix some typo in Main_DirectDraw_QueryInterface Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Ddraw/dd…
============================================================================== --- trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c (original) +++ trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c Mon Dec 10 23:29:51 2007 @@ -82,14 +82,14 @@ } } - This->lpVtbl = &DirectDraw2_Vtable; + This->lpVtbl = &DirectDraw4_Vtable; *obj = This; Main_DirectDraw_AddRef(This); } - else if (IsEqualGUID(&IID_IDirectDraw4, id)) - { - if (This->lpVtbl != &DirectDraw4_Vtable) + else if (IsEqualGUID(&IID_IDirectDraw2, id)) + { + if (This->lpVtbl != &DirectDraw2_Vtable) { This = internal_directdraw_int_alloc(This); if (!This)
17 years
1
0
0
0
[fireball] 31131: - Pass ARC Hardware Tree in SetupLDR too. - Zero-initialize memory from the Hardware Heap, just to be sure. - Don't set the Version/Key/Affinity when creating the system node, let the caller do this. - Fix the way components were added in the tree, it was busted. - Enable setting of component information for the APM and ACPI component nodes. This was #if'ed out because it crashed the kernel while PnP was getting bus information for ATAPI/SCSIPORT, since the nodes had no compone
by fireball@svn.reactos.org
Author: fireball Date: Mon Dec 10 23:28:31 2007 New Revision: 31131 URL:
http://svn.reactos.org/svn/reactos?rev=31131&view=rev
Log: - Pass ARC Hardware Tree in SetupLDR too. - Zero-initialize memory from the Hardware Heap, just to be sure. - Don't set the Version/Key/Affinity when creating the system node, let the caller do this. - Fix the way components were added in the tree, it was busted. - Enable setting of component information for the APM and ACPI component nodes. This was #if'ed out because it crashed the kernel while PnP was getting bus information for ATAPI/SCSIPORT, since the nodes had no component data. Add some component data to remove the crash, and then enable component information. - The Real Mode IRQ Routing Table is a Peripheral Class, not a System Class. - Enable the code to create component nodes for each PCI Bus, it was #if'ed out ages ago. - Don't create any component data for the PCI BIOS, it doesn't have any. - Create component data for the first PCI Bus component node based on the PCI_REGISTRY_INFO strucutre. - Fix the way the BIOS Hard disk Peripheral nodes are created. - Always create the DiskController node with floppy disk information, but don't do actual floppy detection if no floppies are there. - Fix flags for Floppy Peripheral nodes. - Fix vector for Floppy Peripheral node. - Set component information for each BIOS hard disk peripheral node. - Fix component information for Serial Peripherals, they were being created on the Serial Controller node instead. - Set empty component information for the system node. - TODO: Setup ACPI and APM Bios descriptor information. - TODO: Setup ROM BIOS Block descriptor information. Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c trunk/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c trunk/reactos/boot/freeldr/freeldr/reactos/archwsup.c trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c Mon Dec 10 23:28:31 2007 @@ -508,119 +508,6 @@ FldrSetIdentifier(DiskKey, Identifier); } - -static VOID -DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey, - PCONFIGURATION_COMPONENT_DATA BusKey) -{ - PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; - PCM_INT13_DRIVE_PARAMETER Int13Drives; - GEOMETRY Geometry; - PCONFIGURATION_COMPONENT_DATA DiskKey; - ULONG DiskCount; - ULONG Size; - ULONG i; - BOOLEAN Changed; - - /* Count the number of visible drives */ - DiskReportError(FALSE); - DiskCount = 0; - - /* There are some really broken BIOSes out there. There are even BIOSes - * that happily report success when you ask them to read from non-existent - * harddisks. So, we set the buffer to known contents first, then try to - * read. If the BIOS reports success but the buffer contents haven't - * changed then we fail anyway */ - memset((PVOID) DISKREADBUFFER, 0xcd, 512); - while (MachDiskReadLogicalSectors(0x80 + DiskCount, 0ULL, 1, (PVOID)DISKREADBUFFER)) - { - Changed = FALSE; - for (i = 0; ! Changed && i < 512; i++) - { - Changed = ((PUCHAR)DISKREADBUFFER)[i] != 0xcd; - } - if (! Changed) - { - DbgPrint((DPRINT_HWDETECT, "BIOS reports success for disk %d but data didn't change\n", - (int)DiskCount)); - break; - } - DiskCount++; - memset((PVOID) DISKREADBUFFER, 0xcd, 512); - } - DiskReportError(TRUE); - DbgPrint((DPRINT_HWDETECT, "BIOS reports %d harddisk%s\n", - (int)DiskCount, (DiskCount == 1) ? "": "s")); - - /* Allocate resource descriptor */ - Size = sizeof(CM_FULL_RESOURCE_DESCRIPTOR) + - sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount; - FullResourceDescriptor = MmAllocateMemory(Size); - if (FullResourceDescriptor == NULL) - { - DbgPrint((DPRINT_HWDETECT, - "Failed to allocate resource descriptor\n")); - return; - } - - /* Initialize resource descriptor */ - memset(FullResourceDescriptor, 0, Size); - FullResourceDescriptor->InterfaceType = InterfaceTypeUndefined; - FullResourceDescriptor->BusNumber = -1; - FullResourceDescriptor->PartialResourceList.Version = 1; - FullResourceDescriptor->PartialResourceList.Revision = 1; - FullResourceDescriptor->PartialResourceList.Count = 1; - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Type = - CmResourceTypeDeviceSpecific; -// FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].ShareDisposition = -// FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Flags = - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].u.DeviceSpecificData.DataSize = - sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount; - - /* Get harddisk Int13 geometry data */ - Int13Drives = (PVOID)(((ULONG_PTR)FullResourceDescriptor) + sizeof(CM_FULL_RESOURCE_DESCRIPTOR)); - for (i = 0; i < DiskCount; i++) - { - if (MachDiskGetDriveGeometry(0x80 + i, &Geometry)) - { - Int13Drives[i].DriveSelect = 0x80 + i; - Int13Drives[i].MaxCylinders = Geometry.Cylinders - 1; - Int13Drives[i].SectorsPerTrack = Geometry.Sectors; - Int13Drives[i].MaxHeads = Geometry.Heads - 1; - Int13Drives[i].NumberDrives = DiskCount; - - DbgPrint((DPRINT_HWDETECT, - "Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n", - 0x80 + i, - Geometry.Cylinders - 1, - Geometry.Heads -1, - Geometry.Sectors, - Geometry.BytesPerSector)); - } - } - - /* Set 'Configuration Data' value */ - FldrSetConfigurationData(SystemKey, FullResourceDescriptor, Size); - MmFreeMemory(FullResourceDescriptor); - - /* Create and fill subkey for each harddisk */ - for (i = 0; i < DiskCount; i++) - { - /* Create disk key */ - FldrCreateComponentKey(BusKey, - L"DiskController\\0\\DiskPeripheral", - i, - PeripheralClass, - DiskPeripheral, - &DiskKey); - - /* Set disk values */ - SetHarddiskConfigurationData(DiskKey, 0x80 + i); - SetHarddiskIdentifier(DiskKey, 0x80 + i); - } -} - - static ULONG GetFloppyCount(VOID) { @@ -694,7 +581,7 @@ /* Set 'ComponentInformation' value */ FldrSetComponentInformation(PeripheralKey, - 0x0, + Input | Output, FloppyNumber, 0xFFFFFFFF); @@ -743,12 +630,11 @@ static VOID -DetectBiosFloppyController(PCONFIGURATION_COMPONENT_DATA SystemKey, - PCONFIGURATION_COMPONENT_DATA BusKey) +DetectBiosFloppyController(PCONFIGURATION_COMPONENT_DATA BusKey, + PCONFIGURATION_COMPONENT_DATA ControllerKey) { PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; - PCONFIGURATION_COMPONENT_DATA ControllerKey; ULONG Size; ULONG FloppyCount; @@ -756,24 +642,7 @@ DbgPrint((DPRINT_HWDETECT, "Floppy count: %u\n", FloppyCount)); - - if (FloppyCount == 0) - return; - FldrCreateComponentKey(SystemKey, - L"DiskController", - 0, - ControllerClass, - DiskController, - &ControllerKey); - DbgPrint((DPRINT_HWDETECT, "Created key: DiskController\\0\n")); - - /* Set 'ComponentInformation' value */ - FldrSetComponentInformation(ControllerKey, - Output | Input | Removable, - 0, - 0xFFFFFFFF); - Size = sizeof(CM_FULL_RESOURCE_DESCRIPTOR) + 2 * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR); FullResourceDescriptor = MmAllocateMemory(Size); @@ -807,7 +676,7 @@ PartialDescriptor->ShareDisposition = CmResourceShareUndetermined; PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED; PartialDescriptor->u.Interrupt.Level = 6; - PartialDescriptor->u.Interrupt.Vector = 0; + PartialDescriptor->u.Interrupt.Vector = 6; PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF; /* Set DMA channel */ @@ -822,9 +691,140 @@ FldrSetConfigurationData(ControllerKey, FullResourceDescriptor, Size); MmFreeMemory(FullResourceDescriptor); - DetectBiosFloppyPeripheral(ControllerKey); -} - + if (FloppyCount) DetectBiosFloppyPeripheral(ControllerKey); +} + +static VOID +DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey, + PCONFIGURATION_COMPONENT_DATA BusKey) +{ + PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; + PCM_INT13_DRIVE_PARAMETER Int13Drives; + GEOMETRY Geometry; + PCONFIGURATION_COMPONENT_DATA DiskKey, ControllerKey; + ULONG DiskCount; + ULONG Size; + ULONG i; + BOOLEAN Changed; + + /* Count the number of visible drives */ + DiskReportError(FALSE); + DiskCount = 0; + + /* There are some really broken BIOSes out there. There are even BIOSes + * that happily report success when you ask them to read from non-existent + * harddisks. So, we set the buffer to known contents first, then try to + * read. If the BIOS reports success but the buffer contents haven't + * changed then we fail anyway */ + memset((PVOID) DISKREADBUFFER, 0xcd, 512); + while (MachDiskReadLogicalSectors(0x80 + DiskCount, 0ULL, 1, (PVOID)DISKREADBUFFER)) + { + Changed = FALSE; + for (i = 0; ! Changed && i < 512; i++) + { + Changed = ((PUCHAR)DISKREADBUFFER)[i] != 0xcd; + } + if (! Changed) + { + DbgPrint((DPRINT_HWDETECT, "BIOS reports success for disk %d but data didn't change\n", + (int)DiskCount)); + break; + } + DiskCount++; + memset((PVOID) DISKREADBUFFER, 0xcd, 512); + } + DiskReportError(TRUE); + DbgPrint((DPRINT_HWDETECT, "BIOS reports %d harddisk%s\n", + (int)DiskCount, (DiskCount == 1) ? "": "s")); + + FldrCreateComponentKey(BusKey, + L"DiskController", + 0, + ControllerClass, + DiskController, + &ControllerKey); + DbgPrint((DPRINT_HWDETECT, "Created key: DiskController\\0\n")); + + /* Set 'ComponentInformation' value */ + FldrSetComponentInformation(ControllerKey, + Output | Input | Removable, + 0, + 0xFFFFFFFF); + + DetectBiosFloppyController(BusKey, ControllerKey); + + /* Allocate resource descriptor */ + Size = sizeof(CM_FULL_RESOURCE_DESCRIPTOR) + + sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount; + FullResourceDescriptor = MmAllocateMemory(Size); + if (FullResourceDescriptor == NULL) + { + DbgPrint((DPRINT_HWDETECT, + "Failed to allocate resource descriptor\n")); + return; + } + + /* Initialize resource descriptor */ + memset(FullResourceDescriptor, 0, Size); + FullResourceDescriptor->InterfaceType = InterfaceTypeUndefined; + FullResourceDescriptor->BusNumber = -1; + FullResourceDescriptor->PartialResourceList.Version = 1; + FullResourceDescriptor->PartialResourceList.Revision = 1; + FullResourceDescriptor->PartialResourceList.Count = 1; + FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Type = CmResourceTypeDeviceSpecific; + FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].ShareDisposition = 0; + FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Flags = 0; + FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].u.DeviceSpecificData.DataSize = + sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount; + + /* Get harddisk Int13 geometry data */ + Int13Drives = (PVOID)(((ULONG_PTR)FullResourceDescriptor) + sizeof(CM_FULL_RESOURCE_DESCRIPTOR)); + for (i = 0; i < DiskCount; i++) + { + if (MachDiskGetDriveGeometry(0x80 + i, &Geometry)) + { + Int13Drives[i].DriveSelect = 0x80 + i; + Int13Drives[i].MaxCylinders = Geometry.Cylinders - 1; + Int13Drives[i].SectorsPerTrack = Geometry.Sectors; + Int13Drives[i].MaxHeads = Geometry.Heads - 1; + Int13Drives[i].NumberDrives = DiskCount; + + DbgPrint((DPRINT_HWDETECT, + "Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n", + 0x80 + i, + Geometry.Cylinders - 1, + Geometry.Heads -1, + Geometry.Sectors, + Geometry.BytesPerSector)); + } + } + + /* Set 'Configuration Data' value */ + FldrSetConfigurationData(SystemKey, FullResourceDescriptor, Size); + MmFreeMemory(FullResourceDescriptor); + + /* Create and fill subkey for each harddisk */ + for (i = 0; i < DiskCount; i++) + { + /* Create disk key */ + FldrCreateComponentKey(ControllerKey, + L"DiskPeripheral", + i, + PeripheralClass, + DiskPeripheral, + &DiskKey); + + /* Set 'ComponentInformation' value */ + FldrSetComponentInformation(DiskKey, + Output | Input, + 0, + 0xFFFFFFFF); + + /* Set disk values */ + SetHarddiskConfigurationData(DiskKey, 0x80 + i); + SetHarddiskIdentifier(DiskKey, 0x80 + i); + } +} static VOID InitializeSerialPort(ULONG Port, @@ -1483,7 +1483,7 @@ DbgPrint((DPRINT_HWDETECT, "Created key: KeyboardPeripheral\\0\n")); /* Set 'ComponentInformation' value */ - FldrSetComponentInformation(ControllerKey, + FldrSetComponentInformation(PeripheralKey, Input | ConsoleIn, 0, 0xFFFFFFFF); @@ -1911,8 +1911,6 @@ /* Detect ISA/BIOS devices */ DetectBiosDisks(SystemKey, BusKey); - DetectBiosFloppyController(SystemKey, BusKey); - DetectSerialPorts(BusKey); DetectParallelPorts(BusKey); @@ -1937,6 +1935,12 @@ /* Create the 'System' key */ FldrCreateSystemKey(&SystemKey); + + /* Set empty component information */ + FldrSetComponentInformation(SystemKey, + 0x0, + 0x0, + 0xFFFFFFFF); /* Detect buses */ DetectPciBios(SystemKey, &BusNumber); Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c Mon Dec 10 23:28:31 2007 @@ -52,7 +52,8 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) { PCONFIGURATION_COMPONENT_DATA BiosKey; - + CM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; + if (FindAcpiBios()) { AcpiPresent = TRUE; @@ -65,14 +66,24 @@ MultiFunctionAdapter, &BiosKey); -#if 0 /* Set 'Component Information' */ FldrSetComponentInformation(BiosKey, 0x0, 0x0, 0xFFFFFFFF); -#endif + /* Set 'Configuration Data' value */ + memset(&FullResourceDescriptor, 0, sizeof(CM_FULL_RESOURCE_DESCRIPTOR)); + FullResourceDescriptor.InterfaceType = Internal; + FullResourceDescriptor.BusNumber = *BusNumber; + FullResourceDescriptor.PartialResourceList.Version = 0; + FullResourceDescriptor.PartialResourceList.Revision = 0; + FullResourceDescriptor.PartialResourceList.Count = 0; + FldrSetConfigurationData(BiosKey, + &FullResourceDescriptor, + sizeof(CM_FULL_RESOURCE_DESCRIPTOR) - + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)); + /* Increment bus number */ (*BusNumber)++; Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c Mon Dec 10 23:28:31 2007 @@ -57,7 +57,8 @@ DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) { PCONFIGURATION_COMPONENT_DATA BiosKey; - + CM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; + if (FindApmBios()) { /* Create new bus key */ @@ -67,14 +68,24 @@ AdapterClass, MultiFunctionAdapter, &BiosKey); - -#if 0 + /* Set 'Component Information' */ FldrSetComponentInformation(BiosKey, 0x0, 0x0, 0xFFFFFFFF); -#endif + + /* Set 'Configuration Data' value */ + memset(&FullResourceDescriptor, 0, sizeof(CM_FULL_RESOURCE_DESCRIPTOR)); + FullResourceDescriptor.InterfaceType = Internal; + FullResourceDescriptor.BusNumber = *BusNumber; + FullResourceDescriptor.PartialResourceList.Version = 0; + FullResourceDescriptor.PartialResourceList.Revision = 0; + FullResourceDescriptor.PartialResourceList.Count = 0; + FldrSetConfigurationData(BiosKey, + &FullResourceDescriptor, + sizeof(CM_FULL_RESOURCE_DESCRIPTOR) - + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)); /* Increment bus number */ (*BusNumber)++; Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c Mon Dec 10 23:28:31 2007 @@ -54,13 +54,13 @@ ROUTING_SLOT Slot[1]; } __attribute__((packed)) PCI_IRQ_ROUTING_TABLE, *PPCI_IRQ_ROUTING_TABLE; -typedef struct _CM_PCI_BUS_DATA -{ - UCHAR BusCount; - USHORT PciVersion; - UCHAR HardwareMechanism; -} __attribute__((packed)) CM_PCI_BUS_DATA, *PCM_PCI_BUS_DATA; - +typedef struct _PCI_REGISTRY_INFO +{ + UCHAR MajorRevision; + UCHAR MinorRevision; + UCHAR NoBuses; + UCHAR HardwareMechanism; +} PCI_REGISTRY_INFO, *PPCI_REGISTRY_INFO; static PPCI_IRQ_ROUTING_TABLE GetPciIrqRoutingTable(VOID) @@ -106,7 +106,7 @@ static BOOLEAN -FindPciBios(PCM_PCI_BUS_DATA BusData) +FindPciBios(PPCI_REGISTRY_INFO BusData) { REGS RegsIn; REGS RegsOut; @@ -125,8 +125,9 @@ DbgPrint((DPRINT_HWDETECT, "BL: %x\n", RegsOut.b.bl)); DbgPrint((DPRINT_HWDETECT, "CL: %x\n", RegsOut.b.cl)); - BusData->BusCount = RegsOut.b.cl + 1; - BusData->PciVersion = RegsOut.w.bx; + BusData->NoBuses = RegsOut.b.cl + 1; + BusData->MajorRevision = RegsOut.b.bh; + BusData->MinorRevision = RegsOut.b.bl; BusData->HardwareMechanism = RegsOut.b.cl; return TRUE; @@ -156,7 +157,7 @@ FldrCreateComponentKey(BusKey, L"RealModeIrqRoutingTable", 0, - SystemClass, + PeripheralClass, RealModeIrqRoutingTable, &TableKey); @@ -214,14 +215,13 @@ DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) { PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; - CM_PCI_BUS_DATA BusData; + PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; + PCI_REGISTRY_INFO BusData; PCONFIGURATION_COMPONENT_DATA BiosKey; ULONG Size; -#if 0 PCONFIGURATION_COMPONENT_DATA BusKey; ULONG i; WCHAR szPci[] = L"PCI"; -#endif /* Report the PCI BIOS */ if (FindPciBios(&BusData)) @@ -247,26 +247,23 @@ FldrSetIdentifier(BiosKey, L"PCI BIOS"); /* Set 'Configuration Data' value */ - Size = sizeof(CM_FULL_RESOURCE_DESCRIPTOR); + Size = FIELD_OFFSET(CM_FULL_RESOURCE_DESCRIPTOR, + PartialResourceList.PartialDescriptors); FullResourceDescriptor = MmAllocateMemory(Size); if (FullResourceDescriptor == NULL) - { - DbgPrint((DPRINT_HWDETECT, - "Failed to allocate resource descriptor\n")); - return; - } + { + DbgPrint((DPRINT_HWDETECT, + "Failed to allocate resource descriptor\n")); + return; + } /* Initialize resource descriptor */ memset(FullResourceDescriptor, 0, Size); FullResourceDescriptor->InterfaceType = PCIBus; FullResourceDescriptor->BusNumber = 0; - FullResourceDescriptor->PartialResourceList.Version = 1; - FullResourceDescriptor->PartialResourceList.Revision = 1; - FullResourceDescriptor->PartialResourceList.Count = 1; - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Type = CmResourceTypeBusNumber; - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].ShareDisposition = CmResourceShareDeviceExclusive; - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].u.BusNumber.Start = 0; - FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].u.BusNumber.Length = 1; + FullResourceDescriptor->PartialResourceList.Version = 0; + FullResourceDescriptor->PartialResourceList.Revision = 0; + FullResourceDescriptor->PartialResourceList.Count = 0; /* Set 'Configuration Data' value */ FldrSetConfigurationData(BiosKey, FullResourceDescriptor, Size); @@ -274,36 +271,90 @@ DetectPciIrqRoutingTable(BiosKey); -#if 0 - /* - * FIXME: - * Enabling this piece of code will corrupt the boot sequence! - * This is probably caused by a bug in the registry code! - */ - /* Report PCI buses */ - for (i = 0; i < (ULONG)BusData.BusCount; i++) + for (i = 0; i < (ULONG)BusData.NoBuses; i++) { + /* Create the bus key */ FldrCreateComponentKey(SystemKey, L"MultifunctionAdapter", *BusNumber, AdapterClass, MultiFunctionAdapter, - &BiosKey); - + &BusKey); + /* Set 'Component Information' */ FldrSetComponentInformation(BusKey, 0x0, 0x0, 0xFFFFFFFF); - + + /* Check if this is the first bus */ + if (i == 0) + { + /* Set 'Configuration Data' value */ + Size = FIELD_OFFSET(CM_FULL_RESOURCE_DESCRIPTOR, + PartialResourceList.PartialDescriptors) + + sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) + + sizeof(PCI_REGISTRY_INFO); + FullResourceDescriptor = MmAllocateMemory(Size); + if (!FullResourceDescriptor) + { + DbgPrint((DPRINT_HWDETECT, + "Failed to allocate resource descriptor\n")); + return; + } + + /* Initialize resource descriptor */ + memset(FullResourceDescriptor, 0, Size); + FullResourceDescriptor->InterfaceType = PCIBus; + FullResourceDescriptor->BusNumber = i; + FullResourceDescriptor->PartialResourceList.Version = 1; + FullResourceDescriptor->PartialResourceList.Revision = 1; + FullResourceDescriptor->PartialResourceList.Count = 1; + PartialDescriptor = &FullResourceDescriptor->PartialResourceList.PartialDescriptors[0]; + PartialDescriptor->Type = CmResourceTypeDeviceSpecific; + PartialDescriptor->ShareDisposition = CmResourceShareUndetermined; + PartialDescriptor->u.DeviceSpecificData.DataSize = sizeof(PCI_REGISTRY_INFO); + memcpy(&FullResourceDescriptor->PartialResourceList.PartialDescriptors[1], + &BusData, + sizeof(PCI_REGISTRY_INFO)); + + /* Set 'Configuration Data' value */ + FldrSetConfigurationData(BusKey, FullResourceDescriptor, Size); + MmFreeMemory(FullResourceDescriptor); + } + else + { + /* Set 'Configuration Data' value */ + Size = FIELD_OFFSET(CM_FULL_RESOURCE_DESCRIPTOR, + PartialResourceList.PartialDescriptors); + FullResourceDescriptor = MmAllocateMemory(Size); + if (!FullResourceDescriptor) + { + DbgPrint((DPRINT_HWDETECT, + "Failed to allocate resource descriptor\n")); + return; + } + + /* Initialize resource descriptor */ + memset(FullResourceDescriptor, 0, Size); + FullResourceDescriptor->InterfaceType = PCIBus; + FullResourceDescriptor->BusNumber = i; + FullResourceDescriptor->PartialResourceList.Version = 0; + FullResourceDescriptor->PartialResourceList.Revision = 0; + FullResourceDescriptor->PartialResourceList.Count = 0; + + /* Set 'Configuration Data' value */ + FldrSetConfigurationData(BusKey, FullResourceDescriptor, Size); + MmFreeMemory(FullResourceDescriptor); + } + /* Increment bus number */ (*BusNumber)++; - + /* Set 'Identifier' value */ - FldrSetIdentifier(BiosKey, szPci); + FldrSetIdentifier(BusKey, szPci); } -#endif } } Modified: trunk/reactos/boot/freeldr/freeldr/reactos/archwsup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/react…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/reactos/archwsup.c (original) +++ trunk/reactos/boot/freeldr/freeldr/reactos/archwsup.c Mon Dec 10 23:28:31 2007 @@ -29,6 +29,9 @@ /* Return a block of memory from the ARC Hardware Heap */ Buffer = &reactos_arc_hardware_data[FldrpHwHeapLocation]; + /* Clear it */ + RtlZeroMemory(Buffer, Size); + /* Increment the heap location */ FldrpHwHeapLocation += Size; if (FldrpHwHeapLocation > HW_MAX_ARC_HEAP_SIZE) Buffer = NULL; @@ -118,9 +121,6 @@ Component = &FldrArcHwTreeRoot->ComponentEntry; Component->Class = SystemClass; Component->Type = MaximumType; - Component->Version = 0; - Component->Key = 0; - Component->AffinityMask = 0; Component->ConfigurationDataLength = 0; Component->Identifier = 0; Component->IdentifierLength = 0; @@ -136,6 +136,36 @@ { DbgPrint((DPRINT_HWDETECT, "RegCreateKey() failed (Error %u)\n", Error)); return; + } +} + +VOID +NTAPI +FldrLinkToParent(IN PCONFIGURATION_COMPONENT_DATA Parent, + IN PCONFIGURATION_COMPONENT_DATA Child) +{ + PCONFIGURATION_COMPONENT_DATA Sibling; + + /* Get the first sibling */ + Sibling = Parent->Child; + + /* If no sibling exists, then we are the first child */ + if (!Sibling) + { + /* Link us in */ + Parent->Child = Child; + } + else + { + /* Loop each sibling */ + do + { + /* This is now the parent */ + Parent = Sibling; + } while ((Sibling = Sibling->Sibling)); + + /* Found the lowest sibling; mark us as its sibling too */ + Parent->Sibling = Child; } } @@ -160,17 +190,8 @@ /* Now save our parent */ ComponentData->Parent = SystemNode; - /* Now we need to figure out if the parent already has a child entry */ - if (SystemNode->Child) - { - /* It does, so we'll be a sibling of the child instead */ - SystemNode->Child->Sibling = ComponentData; - } - else - { - /* It doesn't, so we will be the first child */ - SystemNode->Child = ComponentData; - } + /* Link us to the parent */ + FldrLinkToParent(SystemNode, ComponentData); /* Set us up */ Component = &ComponentData->ComponentEntry; Modified: trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/react…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c (original) +++ trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c Mon Dec 10 23:28:31 2007 @@ -30,6 +30,7 @@ LOADER_MODULE reactos_modules[64]; // Array to hold boot module info loaded for the kernel char reactos_module_strings[64][256]; // Array to hold module names reactos_mem_data_t reactos_mem_data; +extern char reactos_arc_hardware_data[HW_MAX_ARC_HEAP_SIZE]; char szBootPath[256]; char szHalName[256]; CHAR SystemRoot[255]; @@ -186,6 +187,7 @@ LoaderBlock.PageDirectoryEnd = (ULONG)&PageDirectoryEnd; LoaderBlock.ModsCount = 0; LoaderBlock.ModsAddr = reactos_modules; + LoaderBlock.ArchExtra = (ULONG)reactos_arc_hardware_data; LoaderBlock.MmapLength = (unsigned long)MachGetMemoryMap((PBIOS_MEMORY_MAP)reactos_memory_map, 32) * sizeof(memory_map_t); if (LoaderBlock.MmapLength) {
17 years
1
0
0
0
← Newer
1
...
37
38
39
40
41
42
43
...
61
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Results per page:
10
25
50
100
200