OpenBIOS
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 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
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1994 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1993 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1992 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1991 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1990 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1989 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1988 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1987 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1986 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1985 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1984 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1983 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1982 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1981 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1980 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1979 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1978 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1977 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1976 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1975 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1974 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1973 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1972 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1971 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1970 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1969 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1968 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1967 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1966 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1965 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1964 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1963 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1962 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1961 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1960 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1959 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1958 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1957 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1956 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1955 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1954 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1953 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1952 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1951 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1950 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1949 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1948 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1947 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1946 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1945 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1944 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1943 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1942 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1941 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1940 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1939 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1938 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1937 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1936 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1935 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1934 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1933 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1932 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1931 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1930 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1929 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1928 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1927 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1926 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1925 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1924 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1923 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1922 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1921 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1920 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1919 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1918 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1917 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1916 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1915 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1914 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1913 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1912 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1911 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1910 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1909 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1908 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1907 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1906 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1905 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1904 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
July 2010
- 7 participants
- 25 discussions
Author: mcayland
Date: Mon Jul 12 00:41:34 2010
New Revision: 820
URL: http://tracker.coreboot.org/trac/openbios/changeset/820
Log:
Fix incorrect CONFIG constant in init.c.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/packages/init.c
Modified: trunk/openbios-devel/packages/init.c
==============================================================================
--- trunk/openbios-devel/packages/init.c Sun Jul 11 23:32:38 2010 (r819)
+++ trunk/openbios-devel/packages/init.c Mon Jul 12 00:41:34 2010 (r820)
@@ -60,7 +60,7 @@
#ifdef CONFIG_LOADER_ELF
elf_loader_init();
#endif
-#ifdef CONFIG_PPC
+#ifdef CONFIG_LOADER_BOOTINFO
bootinfo_loader_init();
#endif
1
0
[commit] r819 - in trunk/openbios-devel: config/examples packages
by repository service July 11, 2010
by repository service July 11, 2010
July 11, 2010
Author: mcayland
Date: Sun Jul 11 23:32:38 2010
New Revision: 819
URL: http://tracker.coreboot.org/trac/openbios/changeset/819
Log:
Remove /packages/misc-files since it is no longer required now that each filesystem has its own package.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Deleted:
trunk/openbios-devel/packages/misc-files.c
Modified:
trunk/openbios-devel/config/examples/amd64_config.xml
trunk/openbios-devel/config/examples/cross-ppc_config.xml
trunk/openbios-devel/config/examples/cross-sparc32_config.xml
trunk/openbios-devel/config/examples/cross-sparc64_config.xml
trunk/openbios-devel/config/examples/cross-x86_config.xml
trunk/openbios-devel/config/examples/ppc_config.xml
trunk/openbios-devel/config/examples/sparc32_config.xml
trunk/openbios-devel/config/examples/sparc64_config.xml
trunk/openbios-devel/config/examples/x86_config.xml
trunk/openbios-devel/packages/build.xml
trunk/openbios-devel/packages/init.c
Modified: trunk/openbios-devel/config/examples/amd64_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/amd64_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/amd64_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -46,7 +46,6 @@
<option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="true"/>
<option name="CONFIG_GRUBFS" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/cross-ppc_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/cross-ppc_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/cross-ppc_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_MAC_PARTS" type="boolean" value="true"/>
<option name="CONFIG_DEBUG_MAC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="true"/>
<option name="CONFIG_HFSP" type="boolean" value="true"/>
<option name="CONFIG_ISO9660" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/cross-sparc32_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/cross-sparc32_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/cross-sparc32_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_ISO9660" type="boolean" value="false"/>
Modified: trunk/openbios-devel/config/examples/cross-sparc64_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/cross-sparc64_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/cross-sparc64_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_ISO9660" type="boolean" value="false"/>
Modified: trunk/openbios-devel/config/examples/cross-x86_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/cross-x86_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/cross-x86_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -47,7 +47,6 @@
<option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_GRUBFS" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/ppc_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/ppc_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/ppc_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_MAC_PARTS" type="boolean" value="true"/>
<option name="CONFIG_DEBUG_MAC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="true"/>
<option name="CONFIG_HFSP" type="boolean" value="true"/>
<option name="CONFIG_ISO9660" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/sparc32_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/sparc32_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/sparc32_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_GRUBFS" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/sparc64_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/sparc64_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/sparc64_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -53,7 +53,6 @@
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="false"/>
<option name="CONFIG_SUN_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_GRUBFS" type="boolean" value="true"/>
Modified: trunk/openbios-devel/config/examples/x86_config.xml
==============================================================================
--- trunk/openbios-devel/config/examples/x86_config.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/config/examples/x86_config.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -47,7 +47,6 @@
<option name="CONFIG_DISK_LABEL" type="boolean" value="true"/>
<option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/>
<option name="CONFIG_PC_PARTS" type="boolean" value="true"/>
- <option name="CONFIG_FS" type="boolean" value="true"/>
<option name="CONFIG_HFS" type="boolean" value="false"/>
<option name="CONFIG_HFSP" type="boolean" value="false"/>
<option name="CONFIG_GRUBFS" type="boolean" value="true"/>
Modified: trunk/openbios-devel/packages/build.xml
==============================================================================
--- trunk/openbios-devel/packages/build.xml Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/packages/build.xml Sun Jul 11 23:32:38 2010 (r819)
@@ -8,7 +8,6 @@
<object source="elf-loader.c" condition="LOADER_ELF"/>
<object source="init.c"/>
<object source="mac-parts.c" condition="MAC_PARTS"/>
- <object source="misc-files.c" condition="FS"/>
<object source="nvram.c"/>
<object source="pc-parts.c" condition="PC_PARTS"/>
<object source="sun-parts.c" condition="SUN_PARTS"/>
Modified: trunk/openbios-devel/packages/init.c
==============================================================================
--- trunk/openbios-devel/packages/init.c Sun Jul 11 21:40:18 2010 (r818)
+++ trunk/openbios-devel/packages/init.c Sun Jul 11 23:32:38 2010 (r819)
@@ -45,9 +45,6 @@
#ifdef CONFIG_GRUBFS
grubfs_init();
#endif
-#ifdef CONFIG_FS
- files_init();
-#endif
#ifdef CONFIG_MAC_PARTS
macparts_init();
#endif
1
0
Author: mcayland
Date: Sun Jul 11 21:40:18 2010
New Revision: 818
URL: http://tracker.coreboot.org/trac/openbios/changeset/818
Log:
Fix bug in dir path parsing on HFS filesystems.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/hfs/hfs_fs.c
Modified: trunk/openbios-devel/fs/hfs/hfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 11 20:57:19 2010 (r817)
+++ trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 11 21:40:18 2010 (r818)
@@ -492,8 +492,7 @@
hfsvol *volume;
hfscommon *common;
hfsdirent ent;
- const char *s;
- char buf[256], *tmppath;
+ int i;
int fd;
ihandle_t ih = POP();
@@ -512,36 +511,12 @@
common = malloc(sizeof(hfscommon));
- if (strcmp(path, "\\") == 0) {
- common->dir = hfs_opendir(volume, ":");
- } else {
- if (path[strlen(path) - 1] == '\\') {
- path[strlen(path) - 1] = 0;
- }
-
- tmppath = path;
- for( tmppath-- ;; ) {
- int n;
-
- s = ++tmppath;
- tmppath = strchr(s, '\\');
- if( !tmppath || !tmppath[1])
- break;
- n = MIN( sizeof(buf)-1, (path-s) );
- if( !n )
- continue;
-
- strncpy( buf, s, n );
- buf[n] = 0;
- if( hfs_chdir(volume, buf) ) {
- free(common);
- free(path);
- return;
- }
- }
+ /* HFS paths are colon separated, not backslash separated */
+ for (i = 0; i < strlen(path); i++)
+ if (path[i] == '\\')
+ path[i] = ':';
- common->dir = hfs_opendir(volume, s);
- }
+ common->dir = hfs_opendir(volume, path);
forth_printf("\n");
while( !hfs_readdir(common->dir, &ent) ) {
1
0
[commit] r817 - in trunk/openbios-devel: forth/debugging forth/lib fs/grubfs
by repository service July 11, 2010
by repository service July 11, 2010
July 11, 2010
Author: mcayland
Date: Sun Jul 11 20:57:19 2010
New Revision: 817
URL: http://tracker.coreboot.org/trac/openbios/changeset/817
Log:
Switch dir over to use the new static filesystem dir methods.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/forth/debugging/client.fs
trunk/openbios-devel/forth/lib/split.fs
trunk/openbios-devel/fs/grubfs/grubfs_fs.c
Modified: trunk/openbios-devel/forth/debugging/client.fs
==============================================================================
--- trunk/openbios-devel/forth/debugging/client.fs Sat Jul 10 15:11:22 2010 (r816)
+++ trunk/openbios-devel/forth/debugging/client.fs Sun Jul 11 20:57:19 2010 (r817)
@@ -91,11 +91,12 @@
: dir ( "{paths}<cr>" -- )
linefeed parse
+ split-path-device
open-dev dup 0= if
drop
exit
then
- dup
+ -rot 2 pick
" dir" rot ['] $call-method catch
if
3drop
Modified: trunk/openbios-devel/forth/lib/split.fs
==============================================================================
--- trunk/openbios-devel/forth/lib/split.fs Sat Jul 10 15:11:22 2010 (r816)
+++ trunk/openbios-devel/forth/lib/split.fs Sun Jul 11 20:57:19 2010 (r817)
@@ -47,3 +47,24 @@
c@ r@ = if 1- then then
r> drop
;
+
+\ split <param-text> into separate path and device strings
+: split-path-device ( str len -- pathstr len devstr len )
+ ascii , left-split 2 pick 0= if
+ \ No comma - so either <dev>:<id> or <dev>:<id><path>
+ 2dup ascii \ strchr 0= if
+ \ No backslash so just <dev> or <dev>:<id>
+ s" " 2swap \ ( pathstr len devstr len )
+ else
+ \ Contains backslash, must be a <dev>:<id><path>
+ ascii : left-split \ ( pathstr len devstr len )
+ then
+
+ \ Remove RHS split (unused)
+ 4 roll drop
+ 4 roll drop
+ else
+ \ Contains comma so split is already correct
+ then
+;
+
Modified: trunk/openbios-devel/fs/grubfs/grubfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sat Jul 10 15:11:22 2010 (r816)
+++ trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sun Jul 11 20:57:19 2010 (r817)
@@ -358,7 +358,7 @@
/* static method, ( pathstr len ihandle -- ) */
static void
-grubfs_files_dir( grubfs_info_t *mi )
+grubfs_files_dir( grubfs_info_t *dummy )
{
forth_printf("dir method not implemented for grubfs filesystem\n");
POP();
1
0
[commit] r816 - in trunk/openbios-devel: fs/ext2 fs/grubfs fs/hfs fs/hfsplus fs/iso9660 packages
by repository service July 10, 2010
by repository service July 10, 2010
July 10, 2010
Author: mcayland
Date: Sat Jul 10 15:11:22 2010
New Revision: 816
URL: http://tracker.coreboot.org/trac/openbios/changeset/816
Log:
Currently the dir word works by using /packages/misc-files to open a directory in a similar way to a file and then
special-casing directory actions. This is wrong in that in order to list the contents of a directory, open-dev must return true
for any device which contains a valid filesystem, regardless of whether or not the supplied arguments reference a valid path.
This causes us a problem because in order to implement multiple references in boot-device correctly, we have to fail if we open
a specific device with invalid arguments (such as a non-existent file reference). This patch therefore makes the following changes:
1) Create a static method in each of the filesystem packages to implement dir
2) Enhance the partition/disk handlers to record the phandle of any detected filesystem during open
3) Create a new dir method in the partition/disk handlers which invokes the static dir method for the currently detected
filesystem
Hence we can now open a raw device/partition and invoke dir on its filesystem without having to open a specific file-reference
first. Following shortly is a patch to switch the main dir word over to use this new system.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/ext2/ext2_fs.c
trunk/openbios-devel/fs/grubfs/grubfs_fs.c
trunk/openbios-devel/fs/hfs/hfs_fs.c
trunk/openbios-devel/fs/hfsplus/hfsp_fs.c
trunk/openbios-devel/fs/iso9660/iso9660_fs.c
trunk/openbios-devel/packages/disk-label.c
trunk/openbios-devel/packages/mac-parts.c
trunk/openbios-devel/packages/pc-parts.c
trunk/openbios-devel/packages/sun-parts.c
Modified: trunk/openbios-devel/fs/ext2/ext2_fs.c
==============================================================================
--- trunk/openbios-devel/fs/ext2/ext2_fs.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/fs/ext2/ext2_fs.c Sat Jul 10 15:11:22 2010 (r816)
@@ -33,7 +33,7 @@
DECLARE_NODE( ext2, 0, sizeof(ext2_info_t), "+/packages/ext2-files" );
-/*
+
static const int days_month[12] =
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
static const int days_month_leap[12] =
@@ -83,28 +83,6 @@
year, month, day, hour, minute, second);
}
-static void
-dir_fs ( file_desc_t *fd)
-{
- ext2_COMMON *common = (ext2_COMMON *)fd;
- struct ext2_dir_entry_2 *entry;
- struct ext2_inode inode;
-
- if (common->type != DIR)
- return;
-
- forth_printf("\n");
- while ( (entry = ext2_readdir(common->dir)) ) {
- ext2_get_inode(common->dir->volume, entry->inode, &inode);
- forth_printf("% 10d ", inode.i_size);
- print_date(inode.i_mtime);
- if (S_ISDIR(inode.i_mode))
- forth_printf("%s\\\n", entry->name);
- else
- forth_printf("%s\n", entry->name);
- }
-}
-*/
/************************************************************************/
/* Standard package methods */
@@ -233,6 +211,52 @@
PUSH( (ucell)strdup("ext2") );
}
+/* static method, ( pathstr len ihandle -- ) */
+static void
+ext2_files_dir( ext2_info_t *dummy )
+{
+ ext2_COMMON *common;
+ ext2_VOLUME *volume;
+ struct ext2_dir_entry_2 *entry;
+ struct ext2_inode inode;
+ int fd;
+
+ ihandle_t ih = POP();
+ char *path = pop_fstr_copy();
+
+ fd = open_ih( ih );
+ if ( fd == -1 ) {
+ free( path );
+ return;
+ }
+
+ volume = ext2_mount(fd);
+ if (!volume) {
+ return;
+ }
+
+ common = (ext2_COMMON*)malloc(sizeof(ext2_COMMON));
+ common->dir = ext2_opendir(volume, path);
+
+ forth_printf("\n");
+ while ( (entry = ext2_readdir(common->dir)) ) {
+ ext2_get_inode(common->dir->volume, entry->inode, &inode);
+ forth_printf("% 10d ", inode.i_size);
+ print_date(inode.i_mtime);
+ if (S_ISDIR(inode.i_mode))
+ forth_printf("%s\\\n", entry->name);
+ else
+ forth_printf("%s\n", entry->name);
+ }
+
+ ext2_closedir( common->dir );
+ ext2_umount( volume );
+
+ close_io( fd );
+
+ free( common );
+ free( path );
+}
/* static method, ( pos.d ih -- flag? ) */
static void
@@ -265,6 +289,7 @@
{ "read", ext2_files_read },
{ "seek", ext2_files_seek },
{ "load", ext2_files_load },
+ { "dir", ext2_files_dir },
/* special */
{ "get-path", ext2_files_get_path },
Modified: trunk/openbios-devel/fs/grubfs/grubfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sat Jul 10 15:11:22 2010 (r816)
@@ -356,6 +356,15 @@
RET ( 0 );
}
+/* static method, ( pathstr len ihandle -- ) */
+static void
+grubfs_files_dir( grubfs_info_t *mi )
+{
+ forth_printf("dir method not implemented for grubfs filesystem\n");
+ POP();
+ POP();
+ POP();
+}
static void
grubfs_initializer( grubfs_info_t *dummy )
@@ -370,6 +379,7 @@
{ "read", grubfs_files_read },
{ "seek", grubfs_files_seek },
{ "load", grubfs_files_load },
+ { "dir", grubfs_files_dir },
/* special */
{ "get-path", grubfs_files_get_path },
Modified: trunk/openbios-devel/fs/hfs/hfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/fs/hfs/hfs_fs.c Sat Jul 10 15:11:22 2010 (r816)
@@ -144,7 +144,6 @@
return mi->common->file;
}
-/*
static const int days_month[12] =
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
@@ -195,6 +194,7 @@
year, month, day, hour, minute, second);
}
+/*
static void
dir_fs( file_desc_t *fd )
{
@@ -485,6 +485,83 @@
PUSH ((ucell)volname);
}
+/* static method, ( pathstr len ihandle -- ) */
+static void
+hfs_files_dir( hfs_info_t *dummy )
+{
+ hfsvol *volume;
+ hfscommon *common;
+ hfsdirent ent;
+ const char *s;
+ char buf[256], *tmppath;
+ int fd;
+
+ ihandle_t ih = POP();
+ char *path = pop_fstr_copy();
+
+ fd = open_ih( ih );
+ if ( fd == -1 ) {
+ free( path );
+ return;
+ }
+
+ volume = hfs_mount(fd, 0);
+ if (!volume) {
+ return;
+ }
+
+ common = malloc(sizeof(hfscommon));
+
+ if (strcmp(path, "\\") == 0) {
+ common->dir = hfs_opendir(volume, ":");
+ } else {
+ if (path[strlen(path) - 1] == '\\') {
+ path[strlen(path) - 1] = 0;
+ }
+
+ tmppath = path;
+ for( tmppath-- ;; ) {
+ int n;
+
+ s = ++tmppath;
+ tmppath = strchr(s, '\\');
+ if( !tmppath || !tmppath[1])
+ break;
+ n = MIN( sizeof(buf)-1, (path-s) );
+ if( !n )
+ continue;
+
+ strncpy( buf, s, n );
+ buf[n] = 0;
+ if( hfs_chdir(volume, buf) ) {
+ free(common);
+ free(path);
+ return;
+ }
+ }
+
+ common->dir = hfs_opendir(volume, s);
+ }
+
+ forth_printf("\n");
+ while( !hfs_readdir(common->dir, &ent) ) {
+ forth_printf("% 10d ", ent.u.file.dsize);
+ print_date(ent.mddate);
+ if( ent.flags & HFS_ISDIR )
+ forth_printf("%s\\\n", ent.name);
+ else
+ forth_printf("%s\n", ent.name);
+ }
+
+ hfs_closedir( common->dir );
+ hfs_umount( volume );
+
+ close_io( fd );
+
+ free( common );
+ free( path );
+}
+
/* static method, ( pos.d ih -- flag? ) */
static void
hfs_files_probe( hfs_info_t *dummy )
@@ -515,6 +592,7 @@
{ "read", hfs_files_read },
{ "seek", hfs_files_seek },
{ "load", hfs_files_load },
+ { "dir", hfs_files_dir },
/* special */
{ "open-nwrom", hfs_files_open_nwrom },
Modified: trunk/openbios-devel/fs/hfsplus/hfsp_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfsplus/hfsp_fs.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/fs/hfsplus/hfsp_fs.c Sat Jul 10 15:11:22 2010 (r816)
@@ -24,6 +24,7 @@
#include "unicode.h"
#include "blockiter.h"
#include "libc/diskio.h"
+#include "libc/vsprintf.h"
#define MAC_OS_ROM_CREATOR 0x63687270 /* 'chrp' */
#define MAC_OS_ROM_TYPE 0x74627869 /* 'tbxi' */
@@ -432,6 +433,16 @@
PUSH ((ucell)volname);
}
+/* static method, ( pathstr len ihandle -- ) */
+static void
+hfsp_files_dir( hfsp_info_t *dummy )
+{
+ forth_printf("dir method not implemented for HFS+ filesystem\n");
+ POP();
+ POP();
+ POP();
+}
+
/* static method, ( pos.d ih -- flag? ) */
static void
hfsp_files_probe( hfsp_info_t *dummy )
@@ -449,7 +460,6 @@
RET (ret);
}
-
static void
hfsp_initializer( hfsp_info_t *dummy )
{
@@ -463,6 +473,7 @@
{ "read", hfsp_files_read },
{ "seek", hfsp_files_seek },
{ "load", hfsp_files_load },
+ { "dir", hfsp_files_dir },
/* special */
{ "open-nwrom", hfsp_files_open_nwrom },
Modified: trunk/openbios-devel/fs/iso9660/iso9660_fs.c
==============================================================================
--- trunk/openbios-devel/fs/iso9660/iso9660_fs.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/fs/iso9660/iso9660_fs.c Sat Jul 10 15:11:22 2010 (r816)
@@ -156,17 +156,37 @@
PUSH( size );
}
+/* static method, ( pathstr len ihandle -- ) */
static void
-iso9660_files_dir( iso9660_info_t *mi )
+iso9660_files_dir( iso9660_info_t *dummy )
{
+ iso9660_VOLUME *volume;
+ iso9660_COMMON *common;
struct iso_directory_record *idr;
char name_buf[256];
+ int fd;
- if (mi->common->type != DIR)
+ ihandle_t ih = POP();
+ char *path = pop_fstr_copy();
+
+ fd = open_ih( ih );
+ if ( fd == -1 ) {
+ free( path );
return;
+ }
+
+ volume = iso9660_mount( fd );
+ if ( volume == NULL ) {
+ free ( path );
+ close_io( fd );
+ return;
+ }
+
+ common = malloc(sizeof(iso9660_COMMON));
+ common->dir = iso9660_opendir( volume, path );
forth_printf("\n");
- while ( (idr = iso9660_readdir(mi->common->dir)) ) {
+ while ( (idr = iso9660_readdir(common->dir)) ) {
forth_printf("% 10d ", isonum_733(idr->size));
forth_printf("%d-%02d-%02d %02d:%02d:%02d ",
@@ -174,12 +194,20 @@
idr->date[1], /* month */
idr->date[2], /* day */
idr->date[3], idr->date[4], idr->date[5]);
- iso9660_name(mi->common->dir->volume, idr, name_buf);
+ iso9660_name(common->dir->volume, idr, name_buf);
if (idr->flags[0] & 2)
forth_printf("%s\\\n", name_buf);
else
forth_printf("%s\n", name_buf);
}
+
+ iso9660_closedir( common->dir );
+ iso9660_umount( volume );
+
+ close_io( fd );
+
+ free( common );
+ free( path );
}
/* static method, ( pos.d ih -- flag? ) */
Modified: trunk/openbios-devel/packages/disk-label.c
==============================================================================
--- trunk/openbios-devel/packages/disk-label.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/packages/disk-label.c Sat Jul 10 15:11:22 2010 (r816)
@@ -41,6 +41,7 @@
int type; /* partition type or -1 */
ihandle_t part_ih;
+ phandle_t filesystem_ph;
} dlabel_info_t;
DECLARE_NODE( dlabel, 0, sizeof(dlabel_info_t), "/packages/disk-label" );
@@ -72,6 +73,7 @@
di->part_ih = 0;
/* Find parent methods */
+ di->filesystem_ph = 0;
di->parent_seek_xt = find_parent_method("seek");
di->parent_tell_xt = find_parent_method("tell");
di->parent_read_xt = find_parent_method("read");
@@ -115,6 +117,9 @@
ph = POP_ph();
if( ph ) {
/* If we have been asked to open a particular file, interpose the filesystem package with the passed filename as an argument */
+ di->filesystem_ph = ph;
+
+ DPRINTF("Located filesystem with ph " FMT_ucellx "\n", ph);
DPRINTF("path: %s length: %d\n", path, strlen(path));
if (strlen(path)) {
@@ -205,6 +210,24 @@
}
}
+/* ( pathstr len -- ) */
+static void
+dlabel_dir( dlabel_info_t *di )
+{
+ if ( di->filesystem_ph ) {
+ PUSH( my_self() );
+ push_str("dir");
+ PUSH( di->filesystem_ph );
+ fword("find-method");
+ POP();
+ fword("execute");
+ } else {
+ forth_printf("disk-label: Unable to determine filesystem\n");
+ POP();
+ POP();
+ }
+}
+
NODE_METHODS( dlabel ) = {
{ "open", dlabel_open },
{ "close", dlabel_close },
@@ -213,6 +236,7 @@
{ "write", dlabel_write },
{ "seek", dlabel_seek },
{ "tell", dlabel_tell },
+ { "dir", dlabel_dir },
};
void
Modified: trunk/openbios-devel/packages/mac-parts.c
==============================================================================
--- trunk/openbios-devel/packages/mac-parts.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/packages/mac-parts.c Sat Jul 10 15:11:22 2010 (r816)
@@ -181,7 +181,6 @@
ret = -1;
goto out;
}
-
}
/* not found */
if (firstHFS != -1) {
@@ -341,12 +340,34 @@
load(my_self());
}
+/* ( pathstr len -- ) */
+static void
+macparts_dir( macparts_info_t *di )
+{
+ /* On PPC Mac, the first partition chosen according to the CHRP boot
+ specification (i.e. marked as bootable) may not necessarily contain
+ a valid FS */
+ if ( di->filesystem_ph ) {
+ PUSH( my_self() );
+ push_str("dir");
+ PUSH( di->filesystem_ph );
+ fword("find-method");
+ POP();
+ fword("execute");
+ } else {
+ forth_printf("mac-parts: Unable to determine filesystem\n");
+ POP();
+ POP();
+ }
+}
+
NODE_METHODS( macparts ) = {
{ "probe", macparts_probe },
{ "open", macparts_open },
{ "seek", macparts_seek },
{ "read", macparts_read },
{ "load", macparts_load },
+ { "dir", macparts_dir },
{ "get-info", macparts_get_info },
{ "block-size", macparts_block_size },
{ NULL, macparts_initialize },
Modified: trunk/openbios-devel/packages/pc-parts.c
==============================================================================
--- trunk/openbios-devel/packages/pc-parts.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/packages/pc-parts.c Sat Jul 10 15:11:22 2010 (r816)
@@ -365,6 +365,23 @@
load(my_self());
}
+/* ( pathstr len -- ) */
+static void
+pcparts_dir( pcparts_info_t *di )
+{
+ if ( di->filesystem_ph ) {
+ PUSH( my_self() );
+ push_str("dir");
+ PUSH( di->filesystem_ph );
+ fword("find-method");
+ POP();
+ fword("execute");
+ } else {
+ forth_printf("pc-parts: Unable to determine filesystem\n");
+ POP();
+ POP();
+ }
+}
NODE_METHODS( pcparts ) = {
{ "probe", pcparts_probe },
@@ -372,6 +389,7 @@
{ "seek", pcparts_seek },
{ "read", pcparts_read },
{ "load", pcparts_load },
+ { "dir", pcparts_dir },
{ "get-info", pcparts_get_info },
{ "block-size", pcparts_block_size },
{ NULL, pcparts_initialize },
Modified: trunk/openbios-devel/packages/sun-parts.c
==============================================================================
--- trunk/openbios-devel/packages/sun-parts.c Sun Jul 4 15:37:00 2010 (r815)
+++ trunk/openbios-devel/packages/sun-parts.c Sat Jul 10 15:11:22 2010 (r816)
@@ -297,6 +297,23 @@
load(my_self());
}
+/* ( pathstr len -- ) */
+static void
+sunparts_dir( sunparts_info_t *di )
+{
+ if ( di->filesystem_ph) {
+ PUSH( my_self() );
+ push_str("dir");
+ PUSH( di->filesystem_ph );
+ fword("find-method");
+ POP();
+ fword("execute");
+ } else {
+ forth_printf("sun-parts: Unable to determine filesystem\n");
+ POP();
+ POP();
+ }
+}
NODE_METHODS( sunparts ) = {
{ "probe", sunparts_probe },
@@ -306,6 +323,7 @@
{ "seek", sunparts_seek },
{ "read", sunparts_read },
{ "load", sunparts_load },
+ { "dir", sunparts_dir },
{ NULL, sunparts_initialize },
};
2
1
Hi all,
Having struggled to get hold of an old Debian ISO for SPARC32 testing,
I'm wondering would it be worth setting up a download area on
www.openfirmware.info for storing ISOs for OpenBIOS testing? We could
then setup a new page on the wiki which links to each ISO grouped by
platform (which would act as a rough regression checklist for patches).
Thoughts?
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
5
7
July 4, 2010
Author: mcayland
Date: Sun Jul 4 15:37:00 2010
New Revision: 815
URL: http://tracker.coreboot.org/trac/openbios/changeset/815
Log:
Move the grubfs filesystem handler into its own new package /packages/grubfs-files. This is the last of the filesystems to be
migrated to a standard package. Note that with this in place /packages/misc-files is obsolete (it is currently disabled) and
very likely to be removed.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/grubfs/grubfs_fs.c
trunk/openbios-devel/packages/init.c
trunk/openbios-devel/packages/misc-files.c
trunk/openbios-devel/packages/packages.h
Modified: trunk/openbios-devel/fs/grubfs/grubfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sun Jul 4 12:56:05 2010 (r814)
+++ trunk/openbios-devel/fs/grubfs/grubfs_fs.c Sun Jul 4 15:37:00 2010 (r815)
@@ -1,10 +1,11 @@
/*
- * <grubfs_fs.c>
+ * /packages/grubfs-files
*
* grub vfs
*
* Copyright (C) 2004 Stefan Reinauer
* Copyright (C) 2004 Samuel Rydh
+ * Copyright (C) 2010 Mark Cave-Ayland
*
* inspired by HFS code from Samuel Rydh
*
@@ -22,6 +23,8 @@
#include "libc/diskio.h"
#include "libc/vsprintf.h"
+extern void grubfs_init( void );
+
/************************************************************************/
/* grub GLOBALS (horrible... but difficult to fix) */
/************************************************************************/
@@ -91,49 +94,180 @@
unsigned long pos;
unsigned long len;
const char *path;
- const fs_ops_t *fs;
} grubfile_t;
typedef struct {
const struct fsys_entry *fsys;
grubfile_t *fd;
- int dev_fd;
- llong offset; /* Offset added onto each device read; should only ever be non-zero
+ int dev_fd;
+ llong offset; /* Offset added onto each device read; should only ever be non-zero
when probing a partition for a filesystem */
} grubfs_t;
+typedef struct {
+ grubfs_t *gfs;
+} grubfs_info_t;
+
+/* Static block and global pointer required for I/O glue */
static grubfs_t dummy_fs;
-static grubfs_t *curfs=&dummy_fs;
+static grubfs_t *curfs = &dummy_fs;
+
+DECLARE_NODE( grubfs, 0, sizeof(grubfs_info_t), "+/packages/grubfs-files" );
+
+
+/************************************************************************/
+/* I/O glue (called by grub source) */
+/************************************************************************/
+
+int
+devread( unsigned long sector, unsigned long byte_offset,
+ unsigned long byte_len, void *buf )
+{
+ llong offs = (llong)sector * 512 + byte_offset;
+
+#ifdef CONFIG_DEBUG_FS
+ //printk("devread s=%x buf=%x, fd=%x\n",sector, buf, curfs->dev_fd);
+#endif
+
+ if( !curfs ) {
+#ifdef CONFIG_DEBUG_FS
+ printk("devread: fsys == NULL!\n");
+#endif
+ return -1;
+ }
+
+ if( seek_io(curfs->dev_fd, offs + curfs->offset) ) {
+#ifdef CONFIG_DEBUG_FS
+ printk("seek failure\n");
+#endif
+ return -1;
+ }
+ return (read_io(curfs->dev_fd, buf, byte_len) == byte_len) ? 1:0;
+}
+
+int
+file_read( void *buf, unsigned long len )
+{
+ if (filepos < 0 || filepos > filemax)
+ filepos = filemax;
+ if (len > filemax-filepos)
+ len = filemax - filepos;
+ errnum = 0;
+ return curfs->fsys->read_func( buf, len );
+}
+
/************************************************************************/
-/* file/fs ops */
+/* Standard package methods */
/************************************************************************/
+/* ( -- success? ) */
+static void
+grubfs_files_open( grubfs_info_t *mi )
+{
+ int fd, i;
+ char *path = my_args_copy();
+ char *s;
+
+ fd = open_ih( my_parent() );
+ if ( fd == -1 ) {
+ free( path );
+ RET( 0 );
+ }
+
+ mi->gfs = &dummy_fs;
+
+ for (i = 0; i < sizeof(fsys_table)/sizeof(fsys_table[0]); i++) {
+#ifdef CONFIG_DEBUG_FS
+ printk("Trying %s\n", fsys_table[i].name);
+#endif
+ if (fsys_table[i].mount_func()) {
+ const fsys_entry_t *fsys = &fsys_table[i];
+#ifdef CONFIG_DEBUG_FS
+ printk("Mounted %s\n", fsys->name);
+#endif
+ mi->gfs = malloc(sizeof(grubfs_t));
+ mi->gfs->fsys = fsys;
+ mi->gfs->dev_fd = fd;
+ mi->gfs->offset = 0;
+
+ s = path;
+ while (*s) {
+ if(*s=='\\') *s='/';
+ s++;
+ }
+#ifdef CONFIG_DEBUG_FS
+ printk("Path=%s\n",path);
+#endif
+ if (!mi->gfs->fsys->dir_func((char *) path)) {
+ forth_printf("File not found\n");
+ RET( 0 );
+ }
+
+ mi->gfs->fd = malloc(sizeof(grubfile_t));
+ mi->gfs->fd->pos = filepos;
+ mi->gfs->fd->len = filemax;
+ mi->gfs->fd->path = strdup(path);
+
+ RET( -1 );
+ }
+ }
+#ifdef CONFIG_DEBUG_FS
+ printk("Unknown filesystem type\n");
+#endif
+
+ RET( 0 );
+}
+
+/* ( -- ) */
static void
-grubfs_file_close( file_desc_t *fd )
+grubfs_files_close( grubfs_info_t *mi )
{
- grubfile_t *gf = (grubfile_t *)fd;
+ grubfile_t *gf = mi->gfs->fd;
if (gf->path)
free((void *)(gf->path));
- free(fd);
- filepos=0;
- filemax=0;
+ free(gf);
+
+ filepos = 0;
+ filemax = 0;
}
-static int
-grubfs_file_lseek( file_desc_t *fd, off_t offs, int whence )
+/* ( buf len -- actlen ) */
+static void
+grubfs_files_read( grubfs_info_t *mi )
{
- grubfile_t *file = (grubfile_t*)fd;
+ int count = POP();
+ char *buf = (char *)POP();
+
+ grubfile_t *file = mi->gfs->fd;
+ int ret;
+
+ filepos = file->pos;
+ filemax = file->len;
+
+ if (count > filemax - filepos)
+ count = filemax - filepos;
+
+ ret = mi->gfs->fsys->read_func(buf, count);
+
+ file->pos = filepos;
+
+ RET( ret );
+}
+
+/* ( pos.d -- status ) */
+static void
+grubfs_files_seek( grubfs_info_t *mi )
+{
+ llong pos = DPOP();
+ int offs = (int)pos;
+ int whence = SEEK_SET;
+
+ grubfile_t *file = mi->gfs->fd;
unsigned long newpos;
switch( whence ) {
- case SEEK_CUR:
- if (offs < 0 && (unsigned long) -offs > file->pos)
- newpos = 0;
- else
- newpos = file->pos + offs;
- break;
case SEEK_END:
if (offs < 0 && (unsigned long) -offs > file->len)
newpos = 0;
@@ -145,203 +279,107 @@
newpos = (offs < 0) ? 0 : offs;
break;
}
+
if (newpos > file->len)
newpos = file->len;
file->pos = newpos;
- return newpos;
-}
-
-static int
-grubfs_file_read( file_desc_t *fd, void *buf, size_t count )
-{
- grubfile_t *file = (grubfile_t*)fd;
- int ret;
-
- curfs = (grubfs_t *)file->fs->fs_data;
-
- filepos=file->pos;
- filemax=file->len;
-
- if (count > filemax - filepos)
- count = filemax - filepos;
-
- ret=curfs->fsys->read_func(buf, count);
-
- file->pos=filepos;
- return ret;
+ if (newpos)
+ RET( -1 );
+ else
+ RET( 0 );
}
-static char *
-get_path( file_desc_t *fd, char *retbuf, int len )
+/* ( addr -- size ) */
+static void
+grubfs_files_load( grubfs_info_t *mi )
{
- const char *path=((grubfile_t *)fd)->path;
+ char *buf = (char *)POP();
+ int count, ret;
- if(strlen(path) > len)
- return NULL;
+ grubfile_t *file = mi->gfs->fd;
+ count = file->len;
- strcpy( retbuf, path );
+ ret = mi->gfs->fsys->read_func(buf, count);
+ file->pos = filepos;
- return retbuf;
+ RET( ret );
}
-static file_desc_t *
-open_path( fs_ops_t *fs, const char *path )
+/* ( -- cstr ) */
+static void
+grubfs_files_get_path( grubfs_info_t *mi )
{
- grubfile_t *ret = NULL;
- char *s = (char *)path;
-
- curfs = (grubfs_t *)fs->fs_data;
+ grubfile_t *file = mi->gfs->fd;
+ const char *path = file->path;
- while(*s) {
- if(*s=='\\') *s='/';
- s++;
- }
-#ifdef CONFIG_DEBUG_FS
- printk("Path=%s\n",path);
-#endif
- if (!curfs->fsys->dir_func((char *) path)) {
- forth_printf("File not found\n");
- return NULL;
- }
- ret=malloc(sizeof(grubfile_t));
-
- ret->pos=filepos;
- ret->len=filemax;
- ret->path=strdup(path);
- ret->fs=fs;
-
- return (file_desc_t *)ret;
+ RET( (ucell) strdup(path) );
}
+/* ( -- cstr ) */
static void
-close_fs( fs_ops_t *fs )
+grubfs_files_get_fstype( grubfs_info_t *mi )
{
- free( fs->fs_data );
- fs->fs_data = NULL;
-
- /* callers responsibility to call free(fs) */
-}
+ grubfs_t *gfs = mi->gfs;
-static const char *
-grubfs_get_fstype( fs_ops_t *fs )
-{
- grubfs_t *gfs = (grubfs_t*)fs->fs_data;
- return gfs->fsys->name;
+ PUSH( (ucell)strdup(gfs->fsys->name) );
}
-static const fs_ops_t grubfs_ops = {
- .close_fs = close_fs,
- .open_path = open_path,
- .get_path = get_path,
- .close = grubfs_file_close,
- .read = grubfs_file_read,
- .lseek = grubfs_file_lseek,
-
- .get_fstype = grubfs_get_fstype,
-};
-/* mount */
-int
-fs_grubfs_open( int fd, fs_ops_t *fs )
+/* static method, ( pos.d ih -- flag? ) */
+static void
+grubfs_files_probe( grubfs_info_t *dummy )
{
- grubfs_t *gfs;
+ ihandle_t ih = POP_ih();
+ llong offs = DPOP();
int i;
- curfs=&dummy_fs;
-
- curfs->dev_fd = fd;
- curfs->offset = 0;
+ curfs->dev_fd = open_ih(ih);
+ curfs->offset = offs;
for (i = 0; i < sizeof(fsys_table)/sizeof(fsys_table[0]); i++) {
#ifdef CONFIG_DEBUG_FS
- printk("Trying %s\n", fsys_table[i].name);
+ printk("Probing for %s\n", fsys_table[i].name);
#endif
if (fsys_table[i].mount_func()) {
- const fsys_entry_t *fsys = &fsys_table[i];
-#ifdef CONFIG_DEBUG_FS
- printk("Mounted %s\n", fsys->name);
-#endif
-
- gfs = malloc(sizeof(*gfs));
- gfs->fsys = fsys;
- gfs->dev_fd = fd;
-
- *fs=grubfs_ops;
- fs->fs_data = (void*)gfs;
- return 0;
+ RET( -1 );
}
}
+
#ifdef CONFIG_DEBUG_FS
printk("Unknown filesystem type\n");
#endif
- return -1;
-}
-/* Probe for filesystem (with partition offset); returns 0 on success */
-int
-fs_grubfs_probe( int fd, llong offs )
-{
- int i;
-
- curfs = &dummy_fs;
-
- curfs->dev_fd = fd;
- curfs->offset = offs;
+ close_io(curfs->dev_fd);
- for (i = 0; i < sizeof(fsys_table)/sizeof(fsys_table[0]); i++) {
-#ifdef CONFIG_DEBUG_FS
- printk("Probing for %s\n", fsys_table[i].name);
-#endif
- if (fsys_table[i].mount_func())
- return 0;
- }
-
-#ifdef CONFIG_DEBUG_FS
- printk("Unknown filesystem type\n");
-#endif
- return -1;
+ RET ( 0 );
}
-/************************************************************************/
-/* I/O glue (called by grub source) */
-/************************************************************************/
-
-int
-devread( unsigned long sector, unsigned long byte_offset,
- unsigned long byte_len, void *buf )
+static void
+grubfs_initializer( grubfs_info_t *dummy )
{
- llong offs = (llong)sector * 512 + byte_offset;
+ fword("register-fs-package");
+}
-#ifdef CONFIG_DEBUG_FS
- //printk("devread s=%x buf=%x, fd=%x\n",sector, buf, curfs->dev_fd);
-#endif
+NODE_METHODS( grubfs ) = {
+ { "probe", grubfs_files_probe },
+ { "open", grubfs_files_open },
+ { "close", grubfs_files_close },
+ { "read", grubfs_files_read },
+ { "seek", grubfs_files_seek },
+ { "load", grubfs_files_load },
- if( !curfs ) {
-#ifdef CONFIG_DEBUG_FS
- printk("devread: fsys == NULL!\n");
-#endif
- return -1;
- }
+ /* special */
+ { "get-path", grubfs_files_get_path },
+ { "get-fstype", grubfs_files_get_fstype },
- if( seek_io(curfs->dev_fd, offs + curfs->offset) ) {
-#ifdef CONFIG_DEBUG_FS
- printk("seek failure\n");
-#endif
- return -1;
- }
- return (read_io(curfs->dev_fd, buf, byte_len) == byte_len) ? 1:0;
-}
+ { NULL, grubfs_initializer },
+};
-int
-file_read( void *buf, unsigned long len )
+void
+grubfs_init( void )
{
- if (filepos < 0 || filepos > filemax)
- filepos = filemax;
- if (len > filemax-filepos)
- len = filemax - filepos;
- errnum = 0;
- return curfs->fsys->read_func( buf, len );
+ REGISTER_NODE( grubfs );
}
Modified: trunk/openbios-devel/packages/init.c
==============================================================================
--- trunk/openbios-devel/packages/init.c Sun Jul 4 12:56:05 2010 (r814)
+++ trunk/openbios-devel/packages/init.c Sun Jul 4 15:37:00 2010 (r815)
@@ -42,6 +42,9 @@
#ifdef CONFIG_ISO9660
iso9660_init();
#endif
+#ifdef CONFIG_GRUBFS
+ grubfs_init();
+#endif
#ifdef CONFIG_FS
files_init();
#endif
Modified: trunk/openbios-devel/packages/misc-files.c
==============================================================================
--- trunk/openbios-devel/packages/misc-files.c Sun Jul 4 12:56:05 2010 (r814)
+++ trunk/openbios-devel/packages/misc-files.c Sun Jul 4 15:37:00 2010 (r815)
@@ -58,7 +58,7 @@
if( !err ) {
- err = fs_grubfs_open(fd, fs);
+ err = -1;
DPRINTF("--- grubfs returned %d\n", err);
fs->fd = fd;
@@ -333,8 +333,8 @@
err = (fd = open_ih(ih)) == -1;
if( !err ) {
- err = fs_grubfs_probe(fd, offs);
- DPRINTF("--- grubfs returned %d\n", err);
+ err = -1;
+ offs = 0;
}
if (fd)
Modified: trunk/openbios-devel/packages/packages.h
==============================================================================
--- trunk/openbios-devel/packages/packages.h Sun Jul 4 12:56:05 2010 (r814)
+++ trunk/openbios-devel/packages/packages.h Sun Jul 4 15:37:00 2010 (r815)
@@ -24,6 +24,7 @@
extern void hfsp_init( void );
extern void hfs_init( void );
extern void ext2_init( void );
+extern void grubfs_init( void );
extern void macparts_init( void );
extern void pcparts_init( void );
extern void sunparts_init( void );
1
0
Author: mcayland
Date: Sun Jul 4 12:56:05 2010
New Revision: 814
URL: http://tracker.coreboot.org/trac/openbios/changeset/814
Log:
Fix incorrect interpretation of HFS seek function result code which was causing FC12 to fail during second-stage boot.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/hfs/hfs_fs.c
Modified: trunk/openbios-devel/fs/hfs/hfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 4 12:18:03 2010 (r813)
+++ trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 4 12:56:05 2010 (r814)
@@ -392,10 +392,10 @@
}
ret = hfs_seek( common->file, offs, whence );
- if (ret)
- RET( -1 );
- else
+ if (ret != -1)
RET( 0 );
+ else
+ RET( -1 );
}
/* ( addr -- size ) */
1
0
July 4, 2010
Author: mcayland
Date: Sun Jul 4 12:18:03 2010
New Revision: 813
URL: http://tracker.coreboot.org/trac/openbios/changeset/813
Log:
Move the ext2 filesystem handler into its own new package /packages/ext2-files.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/ext2/ext2_fs.c
trunk/openbios-devel/packages/init.c
trunk/openbios-devel/packages/misc-files.c
trunk/openbios-devel/packages/packages.h
Modified: trunk/openbios-devel/fs/ext2/ext2_fs.c
==============================================================================
--- trunk/openbios-devel/fs/ext2/ext2_fs.c Sun Jul 4 01:29:37 2010 (r812)
+++ trunk/openbios-devel/fs/ext2/ext2_fs.c Sun Jul 4 12:18:03 2010 (r813)
@@ -1,15 +1,22 @@
/*
+ * /packages/ext2-files
*
* (c) 2008-2009 Laurent Vivier <Laurent(a)lvivier.info>
+ * (c) 2010 Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
*
* This file has been copied from EMILE, http://emile.sf.net
*
*/
+#include "config.h"
+#include "libopenbios/bindings.h"
#include "libext2.h"
#include "ext2_utils.h"
#include "fs/fs.h"
#include "libc/vsprintf.h"
+#include "libc/diskio.h"
+
+extern void ext2_init( void );
typedef struct {
enum { FILE, DIR } type;
@@ -19,14 +26,14 @@
};
} ext2_COMMON;
-static void
-umount( fs_ops_t *fs )
-{
- ext2_VOLUME *volume = (ext2_VOLUME *)fs->fs_data;
+typedef struct {
+ ext2_VOLUME *volume;
+ ext2_COMMON *common;
+} ext2_info_t;
- ext2_umount( volume );
-}
+DECLARE_NODE( ext2, 0, sizeof(ext2_info_t), "+/packages/ext2-files" );
+/*
static const int days_month[12] =
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
static const int days_month_leap[12] =
@@ -97,115 +104,177 @@
forth_printf("%s\n", entry->name);
}
}
+*/
+
+/************************************************************************/
+/* Standard package methods */
+/************************************************************************/
-static file_desc_t *
-open_path( fs_ops_t *fs, const char *path )
+/* ( -- success? ) */
+static void
+ext2_files_open( ext2_info_t *mi )
{
- ext2_VOLUME *volume = (ext2_VOLUME *)fs->fs_data;
- ext2_COMMON *common;
+ int fd;
+ char *path = my_args_copy();
- common = (ext2_COMMON*)malloc(sizeof(*common));
- if (common == NULL)
- return NULL;
-
- common->dir = ext2_opendir(volume, path);
- if (common->dir == NULL) {
- common->file = ext2_open(volume, path);
- if (common->file == NULL) {
- free(common);
- return NULL;
+ fd = open_ih( my_parent() );
+ if ( fd == -1 ) {
+ free( path );
+ RET( 0 );
+ }
+
+ mi->volume = ext2_mount(fd);
+ if (!mi->volume) {
+ RET( 0 );
+ }
+
+ mi->common = (ext2_COMMON*)malloc(sizeof(ext2_COMMON));
+ if (mi->common == NULL)
+ RET( 0 );
+
+ mi->common->dir = ext2_opendir(mi->volume, path);
+ if (mi->common->dir == NULL) {
+ mi->common->file = ext2_open(mi->volume, path);
+ if (mi->common->file == NULL) {
+ free(mi->common);
+ RET( 0 );
}
- common->type = FILE;
- return (file_desc_t *)common;
+ mi->common->type = FILE;
+ RET( -1 );
}
- common->type = DIR;
- return (file_desc_t *)common;
+ mi->common->type = DIR;
+ RET( -1 );
}
-static char *
-get_path( file_desc_t *fd, char *buf, int size )
+/* ( -- ) */
+static void
+ext2_files_close( ext2_info_t *mi )
{
- ext2_COMMON *common =(ext2_COMMON *)fd;
-
- if (common->type != FILE)
- return NULL;
+ ext2_COMMON *common = mi->common;
- strncpy(buf, common->file->path, size);
+ if (common->type == FILE)
+ ext2_close(common->file);
+ else if (common->type == DIR)
+ ext2_closedir(common->dir);
+ free(common);
- return buf;
+ ext2_umount(mi->volume);
}
-static int
-file_lseek( file_desc_t *fd, off_t offs, int whence )
+/* ( buf len -- actlen ) */
+static void
+ext2_files_read( ext2_info_t *mi )
{
- ext2_COMMON *common =(ext2_COMMON *)fd;
+ int count = POP();
+ char *buf = (char *)POP();
+ ext2_COMMON *common = mi->common;
if (common->type != FILE)
- return -1;
+ RET( -1 );
- return ext2_lseek(common->file, offs, whence);
+ RET ( ext2_read( common->file, buf, count ) );
}
+/* ( pos.d -- status ) */
static void
-file_close( file_desc_t *fd )
+ext2_files_seek( ext2_info_t *mi )
{
- ext2_COMMON *common =(ext2_COMMON *)fd;
+ llong pos = DPOP();
+ int offs = (int)pos;
+ int whence = SEEK_SET;
+ int ret;
+ ext2_COMMON *common = mi->common;
- if (common->type == FILE)
- ext2_close(common->file);
- else if (common->type == DIR)
- ext2_closedir(common->dir);
- free(common);
+ if (common->type != FILE)
+ RET( -1 );
+
+ ret = ext2_lseek(common->file, offs, whence);
+ if (ret)
+ RET( -1 );
+ else
+ RET( 0 );
}
-static int
-file_read( file_desc_t *fd, void *buf, size_t count )
+/* ( addr -- size ) */
+static void
+ext2_files_load( ext2_info_t *mi )
{
- ext2_COMMON *common =(ext2_COMMON *)fd;
+ char *buf = (char *)POP();
+ int count;
+ ext2_COMMON *common = mi->common;
if (common->type != FILE)
- return -1;
+ RET( -1 );
+
+ /* Seek to the end in order to get the file size */
+ ext2_lseek(common->file, 0, SEEK_END);
+ count = common->file->offset;
+ ext2_lseek(common->file, 0, SEEK_SET);
- return ext2_read(common->file, buf, count);
+ RET ( ext2_read( common->file, buf, count ) );
}
-static const char *
-get_fstype( fs_ops_t *fs)
+/* ( -- cstr ) */
+static void
+ext2_files_get_path( ext2_info_t *mi )
{
- return "EXT2";
-}
+ ext2_COMMON *common = mi->common;
-static const fs_ops_t ext2_ops = {
- .dir = dir_fs,
- .close_fs = umount,
+ if (common->type != FILE)
+ RET( 0 );
- .open_path = open_path,
- .get_path = get_path,
- .close = file_close,
- .read = file_read,
- .lseek = file_lseek,
+ RET( (ucell) strdup(common->file->path) );
+}
- .get_fstype = get_fstype,
-};
+/* ( -- cstr ) */
+static void
+ext2_files_get_fstype( ext2_info_t *mi )
+{
+ PUSH( (ucell)strdup("ext2") );
+}
-int fs_ext2_open(int fd, fs_ops_t *fs)
+
+/* static method, ( pos.d ih -- flag? ) */
+static void
+ext2_files_probe( ext2_info_t *dummy )
{
- ext2_VOLUME *volume;
+ ihandle_t ih = POP_ih();
+ llong offs = DPOP();
+ int fd, ret = 0;
- volume = ext2_mount(fd);
- if (volume == NULL)
- return -1;
+ fd = open_ih(ih);
+ if (ext2_probe(fd, offs))
+ ret = -1;
- *fs = ext2_ops;
- fs->fs_data = volume;
+ close_io(fd);
- return 0;
+ RET (ret);
}
-int fs_ext2_probe(int fd, llong offs)
+
+static void
+ext2_initializer( ext2_info_t *dummy )
{
- if (ext2_probe(fd, offs))
- return 0;
+ fword("register-fs-package");
+}
+
+NODE_METHODS( ext2 ) = {
+ { "probe", ext2_files_probe },
+ { "open", ext2_files_open },
+ { "close", ext2_files_close },
+ { "read", ext2_files_read },
+ { "seek", ext2_files_seek },
+ { "load", ext2_files_load },
+
+ /* special */
+ { "get-path", ext2_files_get_path },
+ { "get-fstype", ext2_files_get_fstype },
- return -1;
+ { NULL, ext2_initializer },
+};
+
+void
+ext2_init( void )
+{
+ REGISTER_NODE( ext2 );
}
Modified: trunk/openbios-devel/packages/init.c
==============================================================================
--- trunk/openbios-devel/packages/init.c Sun Jul 4 01:29:37 2010 (r812)
+++ trunk/openbios-devel/packages/init.c Sun Jul 4 12:18:03 2010 (r813)
@@ -36,6 +36,9 @@
#ifdef CONFIG_HFS
hfs_init();
#endif
+#ifdef CONFIG_EXT2
+ ext2_init();
+#endif
#ifdef CONFIG_ISO9660
iso9660_init();
#endif
Modified: trunk/openbios-devel/packages/misc-files.c
==============================================================================
--- trunk/openbios-devel/packages/misc-files.c Sun Jul 4 01:29:37 2010 (r812)
+++ trunk/openbios-devel/packages/misc-files.c Sun Jul 4 12:18:03 2010 (r813)
@@ -58,13 +58,8 @@
if( !err ) {
- err = fs_ext2_open(fd, fs);
- DPRINTF("--- ext2 returned %d\n", err);
-
- if( err ) {
- err = fs_grubfs_open(fd, fs);
- DPRINTF("--- grubfs returned %d\n", err);
- }
+ err = fs_grubfs_open(fd, fs);
+ DPRINTF("--- grubfs returned %d\n", err);
fs->fd = fd;
}
@@ -338,13 +333,8 @@
err = (fd = open_ih(ih)) == -1;
if( !err ) {
- err = fs_ext2_probe(fd, offs);
- DPRINTF("--- ext2 returned %d\n", err);
-
- if( err ) {
- err = fs_grubfs_probe(fd, offs);
- DPRINTF("--- grubfs returned %d\n", err);
- }
+ err = fs_grubfs_probe(fd, offs);
+ DPRINTF("--- grubfs returned %d\n", err);
}
if (fd)
Modified: trunk/openbios-devel/packages/packages.h
==============================================================================
--- trunk/openbios-devel/packages/packages.h Sun Jul 4 01:29:37 2010 (r812)
+++ trunk/openbios-devel/packages/packages.h Sun Jul 4 12:18:03 2010 (r813)
@@ -23,6 +23,7 @@
extern void iso9660_init( void );
extern void hfsp_init( void );
extern void hfs_init( void );
+extern void ext2_init( void );
extern void macparts_init( void );
extern void pcparts_init( void );
extern void sunparts_init( void );
1
0
July 3, 2010
Author: mcayland
Date: Sun Jul 4 01:29:37 2010
New Revision: 812
URL: http://tracker.coreboot.org/trac/openbios/changeset/812
Log:
Move the HFS filesystem handler into its own new package /packages/hfs-files.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland(a)siriusit.co.uk>
Modified:
trunk/openbios-devel/fs/hfs/hfs_fs.c
trunk/openbios-devel/packages/init.c
trunk/openbios-devel/packages/misc-files.c
trunk/openbios-devel/packages/packages.h
Modified: trunk/openbios-devel/fs/hfs/hfs_fs.c
==============================================================================
--- trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 4 01:22:21 2010 (r811)
+++ trunk/openbios-devel/fs/hfs/hfs_fs.c Sun Jul 4 01:29:37 2010 (r812)
@@ -2,11 +2,12 @@
* Creation Date: <2001/05/06 22:47:23 samuel>
* Time-stamp: <2004/01/12 10:24:35 samuel>
*
- * <hfs_fs.c>
+ * /packages/hfs-files
*
* HFS world interface
*
* Copyright (C) 2001-2004 Samuel Rydh (samuel(a)ibrium.se)
+ * Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland(a)siriusit.co.uk)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -15,8 +16,10 @@
*/
#include "config.h"
+#include "libopenbios/bindings.h"
#include "fs/fs.h"
#include "libc/vsprintf.h"
+#include "libc/diskio.h"
#include "libhfs.h"
#define MAC_OS_ROM_CREATOR 0x63687270 /* 'chrp' */
@@ -28,6 +31,10 @@
#define SYSTEM_TYPE 0x7A737973 /* 'zsys' */
#define SYSTEM_CREATOR 0x4D414353 /* 'MACS' */
+#define VOLNAME_SIZE 64
+
+extern void hfs_init( void );
+
typedef struct {
enum { FILE, DIR } type;
union {
@@ -36,6 +43,12 @@
};
} hfscommon;
+typedef struct {
+ hfsvol *vol;
+ hfscommon *common;
+} hfs_info_t;
+
+DECLARE_NODE( hfs, 0, sizeof(hfs_info_t), "+/packages/hfs-files" );
/************************************************************************/
/* Search Functions */
@@ -64,7 +77,7 @@
/* ret: 0=success, 1=not_found, 2=not_a_dir */
static int
-_search( hfsvol *vol, const char *path, const char *sname, file_desc_t **ret_fd )
+_search( hfsvol *vol, const char *path, const char *sname, hfsfile **ret_fd )
{
hfsdir *dir;
hfsdirent ent;
@@ -111,7 +124,7 @@
|| _find_file( vol, path, SYSTEM_TYPE, SYSTEM_CREATOR );
}
}
- if( !status && topdir && ret_fd && !(*ret_fd=(file_desc_t*)hfs_open(vol, buf)) ) {
+ if( !status && topdir && ret_fd && !(*ret_fd=hfs_open(vol, buf)) ) {
printk("Unexpected error: failed to open matched ROM\n");
status = 1;
}
@@ -120,154 +133,139 @@
return status;
}
-static file_desc_t *
-_do_search( fs_ops_t *fs, const char *sname )
+static hfsfile *
+_do_search( hfs_info_t *mi, const char *sname )
{
hfsvol *vol = hfs_getvol( NULL );
- file_desc_t *ret_fd = NULL;
- (void)_search( vol, ":", sname, &ret_fd );
- return ret_fd;
+ mi->common->type = FILE;
+ (void)_search( vol, ":", sname, &mi->common->file );
+
+ return mi->common->file;
}
-static file_desc_t *
-search_rom( fs_ops_t *fs )
+/*
+
+static const int days_month[12] =
+ { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+static const int days_month_leap[12] =
+ { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+
+static inline int is_leap(int year)
{
- return _do_search( fs, NULL );
+ return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
-static file_desc_t *
-search_file( fs_ops_t *fs, const char *sname )
+static void
+print_date(time_t sec)
{
- return _do_search( fs, sname );
-}
+ unsigned int second, minute, hour, month, day, year;
+ int current;
+ const int *days;
+ second = sec % 60;
+ sec /= 60;
-/************************************************************************/
-/* file/fs ops */
-/************************************************************************/
+ minute = sec % 60;
+ sec /= 60;
-static void
-file_close( file_desc_t *fd )
-{
- hfscommon *common = (hfscommon*)fd;
- if (common->type == FILE)
- hfs_close( common->file );
- else if (common->type == DIR)
- hfs_closedir( common->dir );
- free(common);
-}
+ hour = sec % 24;
+ sec /= 24;
-static int
-file_lseek( file_desc_t *fd, off_t offs, int whence )
-{
- hfscommon *common = (hfscommon*)fd;
+ year = sec * 100 / 36525;
+ sec -= year * 36525 / 100;
+ year += 1970;
- if (common->type != FILE)
- return -1;
+ days = is_leap(year) ? days_month_leap : days_month;
- switch( whence ) {
- case SEEK_CUR:
- whence = HFS_SEEK_CUR;
- break;
- case SEEK_END:
- whence = HFS_SEEK_END;
- break;
- default:
- case SEEK_SET:
- whence = HFS_SEEK_SET;
- break;
+ current = 0;
+ month = 0;
+ while (month < 12) {
+ if (sec <= current + days[month]) {
+ break;
+ }
+ current += days[month];
+ month++;
}
+ month++;
- return hfs_seek( common->file, offs, whence );
-}
+ day = sec - current + 1;
-static int
-file_read( file_desc_t *fd, void *buf, size_t count )
-{
- hfscommon *common = (hfscommon*)fd;
- if (common->type != FILE)
- return -1;
- return hfs_read( common->file, buf, count );
+ forth_printf("%d-%02d-%02d %02d:%02d:%02d ",
+ year, month, day, hour, minute, second);
}
-static char *
-get_path( file_desc_t *fd, char *retbuf, int len )
+static void
+dir_fs( file_desc_t *fd )
{
- char buf[256], buf2[256];
hfscommon *common = (hfscommon*)fd;
- hfsvol *vol = hfs_getvol( NULL );
hfsdirent ent;
- int start, ns;
- ulong id;
- if (common->type != FILE)
- return NULL;
-
- hfs_fstat( common->file, &ent );
- start = sizeof(buf) - strlen(ent.name) - 1;
- if( start <= 0 )
- return NULL;
- strcpy( buf+start, ent.name );
- buf[--start] = '\\';
+ if (common->type != DIR)
+ return;
- ns = start;
- for( id=ent.parid ; !hfs_dirinfo(vol, &id, buf2) ; ) {
- start = ns;
- ns -= strlen(buf2);
- if( ns <= 0 )
- return NULL;
- strcpy( buf+ns, buf2 );
- buf[--ns] = buf[start] = '\\';
+ forth_printf("\n");
+ while( !hfs_readdir(common->dir, &ent) ) {
+ forth_printf("% 10d ", ent.u.file.dsize);
+ print_date(ent.mddate);
+ if( ent.flags & HFS_ISDIR )
+ forth_printf("%s\\\n", ent.name);
+ else
+ forth_printf("%s\n", ent.name);
}
- if( strlen(buf + start) >= len )
- return NULL;
-
- strcpy( retbuf, buf+start );
- return retbuf;
-}
-
-static char *
-vol_name( fs_ops_t *fs, char *buf, int size )
-{
- return get_hfs_vol_name( fs->fd, buf, size );
}
+*/
+/************************************************************************/
+/* Standard package methods */
+/************************************************************************/
-static file_desc_t *
-open_path( fs_ops_t *fs, const char *fullpath )
+/* ( -- success? ) */
+static void
+hfs_files_open( hfs_info_t *mi )
{
- hfsvol *vol = (hfsvol*)fs->fs_data;
+ int fd;
+ char *path = my_args_copy();
+
const char *s;
char buf[256];
- hfscommon *common;
- char *path = strdup(fullpath);
+
+ fd = open_ih( my_parent() );
+ if ( fd == -1 ) {
+ free( path );
+ RET( 0 );
+ }
+
+ mi->vol = hfs_mount(fd, 0);
+ if (!mi->vol) {
+ RET( 0 );
+ }
if( !strncmp(path, "\\\\", 2) ) {
hfsvolent ent;
/* \\ is an alias for the (blessed) system folder */
- if( hfs_vstat(vol, &ent) < 0 || hfs_setcwd(vol, ent.blessed) ) {
+ if( hfs_vstat(mi->vol, &ent) < 0 || hfs_setcwd(mi->vol, ent.blessed) ) {
free(path);
- return NULL;
+ RET( -1 );
}
path += 2;
} else {
- hfs_chdir( vol, ":" );
+ hfs_chdir( mi->vol, ":" );
}
- common = malloc(sizeof(*common));
- if (!common) {
+ mi->common = malloc(sizeof(hfscommon));
+ if (!mi->common) {
free(path);
- return NULL;
+ RET( 0 );
}
if (strcmp(path, "\\") == 0) {
/* root directory is in fact ":" */
- common->dir = hfs_opendir(vol, ":");
- common->type = DIR;
+ mi->common->dir = hfs_opendir(mi->vol, ":");
+ mi->common->type = DIR;
free(path);
- return (file_desc_t*)common;
+ RET( -1 );
}
if (path[strlen(path) - 1] == '\\') {
@@ -287,183 +285,248 @@
strncpy( buf, s, n );
buf[n] = 0;
- if( hfs_chdir(vol, buf) ) {
- free(common);
+ if( hfs_chdir(mi->vol, buf) ) {
+ free(mi->common);
free(path);
- return NULL;
+ RET( 0 );
}
}
/* support the ':filetype' syntax */
if( *s == ':' ) {
- unsigned long id, oldid = hfs_getcwd(vol);
- file_desc_t *ret = NULL;
+ unsigned long id, oldid = hfs_getcwd(mi->vol);
hfsdirent ent;
hfsdir *dir;
s++;
id = oldid;
- hfs_dirinfo( vol, &id, buf );
- hfs_setcwd( vol, id );
+ hfs_dirinfo( mi->vol, &id, buf );
+ hfs_setcwd( mi->vol, id );
- if( !(dir=hfs_opendir(vol, buf)) ) {
- free(common);
+ if( !(dir=hfs_opendir(mi->vol, buf)) ) {
+ free(mi->common);
free(path);
- return NULL;
+ RET( 0 );
}
- hfs_setcwd( vol, oldid );
+ hfs_setcwd( mi->vol, oldid );
while( !hfs_readdir(dir, &ent) ) {
if( ent.flags & HFS_ISDIR )
continue;
if( !strncmp(s, ent.u.file.type, 4) ) {
- common->type = FILE;
- common->file = hfs_open( vol, ent.name );
- ret = (file_desc_t*)common;
+ mi->common->type = FILE;
+ mi->common->file = hfs_open( mi->vol, ent.name );
break;
}
}
hfs_closedir( dir );
free(path);
- return ret;
+ RET( -1 );
}
- common->dir = hfs_opendir(vol, s);
- if (!common->dir) {
- common->file = hfs_open( vol, s );
- if (common->file == NULL) {
- free(common);
+ mi->common->dir = hfs_opendir(mi->vol, s);
+ if (!mi->common->dir) {
+ mi->common->file = hfs_open( mi->vol, s );
+ if (mi->common->file == NULL) {
+ free(mi->common);
free(path);
- return NULL;
+ RET( 0 );
}
- common->type = FILE;
+ mi->common->type = FILE;
free(path);
- return (file_desc_t*)common;
+ RET( -1 );
}
- common->type = DIR;
+ mi->common->type = DIR;
free(path);
- return (file_desc_t*)common;
+
+ RET( -1 );
}
+/* ( -- ) */
static void
-close_fs( fs_ops_t *fs )
+hfs_files_close( hfs_info_t *mi )
{
- hfsvol *vol = (hfsvol*)fs->fs_data;
-
- hfs_umount( vol );
- /* callers responsibility to call free(fs) */
+ hfscommon *common = mi->common;
+ if (common->type == FILE)
+ hfs_close( common->file );
+ else if (common->type == DIR)
+ hfs_closedir( common->dir );
+ free(common);
}
-static const int days_month[12] =
- { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-static const int days_month_leap[12] =
- { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-
-static inline int is_leap(int year)
+/* ( buf len -- actlen ) */
+static void
+hfs_files_read( hfs_info_t *mi )
{
- return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
+ int count = POP();
+ char *buf = (char *)POP();
+
+ hfscommon *common = mi->common;
+ if (common->type != FILE)
+ RET( -1 );
+
+ RET ( hfs_read( common->file, buf, count ) );
}
+/* ( pos.d -- status ) */
static void
-print_date(time_t sec)
+hfs_files_seek( hfs_info_t *mi )
{
- unsigned int second, minute, hour, month, day, year;
- int current;
- const int *days;
+ llong pos = DPOP();
+ int offs = (int)pos;
+ int whence = SEEK_SET;
+ int ret;
+ hfscommon *common = mi->common;
- second = sec % 60;
- sec /= 60;
+ if (common->type != FILE)
+ RET( -1 );
- minute = sec % 60;
- sec /= 60;
+ switch( whence ) {
+ case SEEK_END:
+ whence = HFS_SEEK_END;
+ break;
+ default:
+ case SEEK_SET:
+ whence = HFS_SEEK_SET;
+ break;
+ }
- hour = sec % 24;
- sec /= 24;
+ ret = hfs_seek( common->file, offs, whence );
+ if (ret)
+ RET( -1 );
+ else
+ RET( 0 );
+}
- year = sec * 100 / 36525;
- sec -= year * 36525 / 100;
- year += 1970;
+/* ( addr -- size ) */
+static void
+hfs_files_load( hfs_info_t *mi )
+{
+ char *buf = (char *)POP();
+ int count;
- days = is_leap(year) ? days_month_leap : days_month;
+ hfscommon *common = mi->common;
+ if (common->type != FILE)
+ RET( -1 );
- current = 0;
- month = 0;
- while (month < 12) {
- if (sec <= current + days[month]) {
- break;
- }
- current += days[month];
- month++;
- }
- month++;
+ /* Seek to the end in order to get the file size */
+ hfs_seek(common->file, 0, HFS_SEEK_END);
+ count = common->file->pos;
+ hfs_seek(common->file, 0, HFS_SEEK_SET);
- day = sec - current + 1;
+ RET ( hfs_read( common->file, buf, count ) );
+}
- forth_printf("%d-%02d-%02d %02d:%02d:%02d ",
- year, month, day, hour, minute, second);
+/* ( -- success? ) */
+static void
+hfs_files_open_nwrom( hfs_info_t *mi )
+{
+ /* Switch to an existing ROM image file on the fs! */
+ if ( _do_search( mi, NULL ) )
+ RET( -1 );
+
+ RET( 0 );
}
+/* ( -- cstr ) */
static void
-dir_fs( file_desc_t *fd )
+hfs_files_get_path( hfs_info_t *mi )
{
- hfscommon *common = (hfscommon*)fd;
+ char buf[256], buf2[256];
+ hfscommon *common = mi->common;
+ hfsvol *vol = hfs_getvol( NULL );
hfsdirent ent;
+ int start, ns;
+ ulong id;
- if (common->type != DIR)
- return;
+ if (common->type != FILE)
+ RET( 0 );
- forth_printf("\n");
- while( !hfs_readdir(common->dir, &ent) ) {
- forth_printf("% 10d ", ent.u.file.dsize);
- print_date(ent.mddate);
- if( ent.flags & HFS_ISDIR )
- forth_printf("%s\\\n", ent.name);
- else
- forth_printf("%s\n", ent.name);
+ hfs_fstat( common->file, &ent );
+ start = sizeof(buf) - strlen(ent.name) - 1;
+ if( start <= 0 )
+ RET ( 0 );
+ strcpy( buf+start, ent.name );
+ buf[--start] = '\\';
+
+ ns = start;
+ for( id=ent.parid ; !hfs_dirinfo(vol, &id, buf2) ; ) {
+ start = ns;
+ ns -= strlen(buf2);
+ if( ns <= 0 )
+ RET( 0 );
+ strcpy( buf+ns, buf2 );
+ buf[--ns] = buf[start] = '\\';
}
+ if( strlen(buf) >= sizeof(buf) )
+ RET( 0 );
+
+ RET( (ucell) strdup(buf+start) );
}
-static const char *
-get_fstype( fs_ops_t *fs )
+/* ( -- cstr ) */
+static void
+hfs_files_get_fstype( hfs_info_t *mi )
{
- return ("HFS");
+ PUSH( (ucell)strdup("HFS") );
}
-static const fs_ops_t hfs_ops = {
- .dir = dir_fs,
- .close_fs = close_fs,
- .open_path = open_path,
- .search_rom = search_rom,
- .search_file = search_file,
- .vol_name = vol_name,
-
- .get_path = get_path,
- .close = file_close,
- .read = file_read,
- .lseek = file_lseek,
+/* ( -- cstr|0 ) */
+static void
+hfs_files_volume_name( hfs_info_t *mi )
+{
+ int fd;
+ char *volname = malloc(VOLNAME_SIZE);
- .get_fstype = get_fstype,
-};
+ fd = open_ih(my_self());
+ get_hfs_vol_name(fd, volname, VOLNAME_SIZE);
+ close_io(fd);
+
+ PUSH ((ucell)volname);
+}
-int
-fs_hfs_open( int os_fd, fs_ops_t *fs )
+/* static method, ( pos.d ih -- flag? ) */
+static void
+hfs_files_probe( hfs_info_t *dummy )
{
- hfsvol *vol = hfs_mount( os_fd, 0 );
+ ihandle_t ih = POP_ih();
+ llong offs = DPOP();
+ int fd, ret = 0;
- if( !vol )
- return -1;
+ fd = open_ih(ih);
+ if (hfs_probe(fd, offs))
+ ret = -1;
- *fs = hfs_ops;
- fs->fs_data = vol;
+ close_io(fd);
- return 0;
+ RET (ret);
}
-int
-fs_hfs_probe( int fd, llong offs )
+static void
+hfs_initializer( hfs_info_t *dummy )
{
- if (hfs_probe(fd, offs))
- return 0;
+ fword("register-fs-package");
+}
+
+NODE_METHODS( hfs ) = {
+ { "probe", hfs_files_probe },
+ { "open", hfs_files_open },
+ { "close", hfs_files_close },
+ { "read", hfs_files_read },
+ { "seek", hfs_files_seek },
+ { "load", hfs_files_load },
+
+ /* special */
+ { "open-nwrom", hfs_files_open_nwrom },
+ { "get-path", hfs_files_get_path },
+ { "get-fstype", hfs_files_get_fstype },
+ { "volume-name", hfs_files_volume_name },
- return -1;
+ { NULL, hfs_initializer },
+};
+
+void
+hfs_init( void )
+{
+ REGISTER_NODE( hfs );
}
Modified: trunk/openbios-devel/packages/init.c
==============================================================================
--- trunk/openbios-devel/packages/init.c Sun Jul 4 01:22:21 2010 (r811)
+++ trunk/openbios-devel/packages/init.c Sun Jul 4 01:29:37 2010 (r812)
@@ -33,6 +33,9 @@
#ifdef CONFIG_HFSP
hfsp_init();
#endif
+#ifdef CONFIG_HFS
+ hfs_init();
+#endif
#ifdef CONFIG_ISO9660
iso9660_init();
#endif
Modified: trunk/openbios-devel/packages/misc-files.c
==============================================================================
--- trunk/openbios-devel/packages/misc-files.c Sun Jul 4 01:22:21 2010 (r811)
+++ trunk/openbios-devel/packages/misc-files.c Sun Jul 4 01:29:37 2010 (r812)
@@ -57,12 +57,9 @@
err = (fd = open_ih(ih)) == -1;
if( !err ) {
- err = fs_hfs_open(fd, fs);
-
- if( err ) {
- err = fs_ext2_open(fd, fs);
- DPRINTF("--- ext2 returned %d\n", err);
- }
+
+ err = fs_ext2_open(fd, fs);
+ DPRINTF("--- ext2 returned %d\n", err);
if( err ) {
err = fs_grubfs_open(fd, fs);
@@ -341,13 +338,8 @@
err = (fd = open_ih(ih)) == -1;
if( !err ) {
- err = fs_hfs_probe(fd, offs);
- DPRINTF("--- HFS returned %d\n", err);
-
- if( err ) {
- err = fs_ext2_probe(fd, offs);
- DPRINTF("--- ext2 returned %d\n", err);
- }
+ err = fs_ext2_probe(fd, offs);
+ DPRINTF("--- ext2 returned %d\n", err);
if( err ) {
err = fs_grubfs_probe(fd, offs);
Modified: trunk/openbios-devel/packages/packages.h
==============================================================================
--- trunk/openbios-devel/packages/packages.h Sun Jul 4 01:22:21 2010 (r811)
+++ trunk/openbios-devel/packages/packages.h Sun Jul 4 01:29:37 2010 (r812)
@@ -22,6 +22,7 @@
extern void files_init( void );
extern void iso9660_init( void );
extern void hfsp_init( void );
+extern void hfs_init( void );
extern void macparts_init( void );
extern void pcparts_init( void );
extern void sunparts_init( void );
1
0