summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-08-10 14:27:21 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-08-10 14:27:21 -0700
commitf87413e6b7a60e9cfc086232953b7f32a4d1c5f2 (patch)
treeee82aaaf95653123f26d1437d31fdbbcaef3847c
parentd74cbcd018244a834c60842b16ee18966a6ec020 (diff)
downloadsyslinux-f87413e6b7a60e9cfc086232953b7f32a4d1c5f2.tar.gz
core/diskstart.inc: make the root filesystem a configurable
Instead of using conditional compilation, just set the root filesystem type in the assembly stub. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--core/diskstart.inc24
-rw-r--r--core/extlinux.asm3
-rw-r--r--core/ldlinux.asm3
3 files changed, 11 insertions, 19 deletions
diff --git a/core/diskstart.inc b/core/diskstart.inc
index c160c8d5..36d513ed 100644
--- a/core/diskstart.inc
+++ b/core/diskstart.inc
@@ -722,26 +722,12 @@ expand_super:
pushad
-%if IS_PXELINUX
- extern pxe_fs_ops
- mov eax,pxe_fs_ops
-%else
- %if IS_EXTLINUX
- extern ext2_fs_ops
- mov eax,ext2_fs_ops
- %elif IS_SYSLINUX
- extern vfat_fs_ops
- mov eax,vfat_fs_ops
- %elif IS_ISOLINUX
- extern iso_fs_ops
- mov eax,iso_fs_ops
- %endif
- mov dl,[DriveNumber]
- mov dh,0 ; we are boot from disk not CDROM
- mov ecx,[bsHidden]
- mov ebx,[bsHidden+4]
+ mov eax,ROOT_FS_OPS
+ movzx dx,byte [DriveNumber]
+ ; DH = 0: we are boot from disk not CDROM
+ mov ecx,[bsHidden]
+ mov ebx,[bsHidden+4]
mov si,[bsHeads]
mov di,[bsSecPerTrack]
-%endif
pm_call fs_init
popad
diff --git a/core/extlinux.asm b/core/extlinux.asm
index 2a5526b8..0048cc1b 100644
--- a/core/extlinux.asm
+++ b/core/extlinux.asm
@@ -25,4 +25,7 @@
my_id equ extlinux_id
FILENAME_MAX_LG2 equ 8 ; log2(Max filename size Including final null)
+ extern ext2_fs_ops
+ROOT_FS_OPS equ ext2_fs_ops
+
%include "diskfs.inc"
diff --git a/core/ldlinux.asm b/core/ldlinux.asm
index 183262a3..b8b86b2e 100644
--- a/core/ldlinux.asm
+++ b/core/ldlinux.asm
@@ -31,4 +31,7 @@
my_id equ syslinux_id
FILENAME_MAX_LG2 equ 6 ; log2(Max filename size Including final null)
+ extern vfat_fs_ops
+ROOT_FS_OPS equ vfat_fs_ops
+
%include "diskfs.inc"