[memdisk] Add installable INT 13h hooks for ISO-booting scenarios
authorShao Miller <shao.miller@yrdsb.edu.on.ca>
Sat, 1 Aug 2009 06:06:08 +0000 (02:06 -0400)
committerShao Miller <shao.miller@yrdsb.edu.on.ca>
Tue, 4 Aug 2009 02:09:37 +0000 (22:09 -0400)
As of this commit, these hooks do nothing special and are unused.  They are
intended to support the El Torito "No Emulation" (2048-byte sector size) and
"Floppy Emulation"/"HDD Emulation" (512-byte sector size) modes for bootable
optical disc drive media (CD/DVD).

memdisk/Makefile
memdisk/memdisk_iso_2048.asm [new file with mode: 0644]
memdisk/memdisk_iso_512.asm [new file with mode: 0644]
memdisk/setup.c

index 35d7bef..8e76f3d 100644 (file)
@@ -38,11 +38,15 @@ endif
 # Important: init.o16 must be first!!
 OBJS16   = init.o16 init32.o
 OBJS32   = start32.o setup.o msetup.o e820func.o conio.o memcpy.o memset.o \
-          memmove.o unzip.o memdisk_chs_512.o memdisk_edd_512.o dskprobe.o
+          memmove.o unzip.o dskprobe.o \
+          memdisk_chs_512.o memdisk_edd_512.o \
+          memdisk_iso_512.o memdisk_iso_2048.o
 
 CSRC     = setup.c msetup.c e820func.c conio.c unzip.c dskprobe.c
 SSRC     = start32.S memcpy.S memset.S memmove.S
-NASMSRC  = memdisk_chs_512.asm memdisk_edd_512.asm memdisk16.asm
+NASMSRC  = memdisk_chs_512.asm memdisk_edd_512.asm \
+          memdisk_iso_512.asm memdisk_iso_2048.asm \
+          memdisk16.asm
 
 all: memdisk # e820test
 
diff --git a/memdisk/memdisk_iso_2048.asm b/memdisk/memdisk_iso_2048.asm
new file mode 100644 (file)
index 0000000..84a0554
--- /dev/null
@@ -0,0 +1,3 @@
+%define EDD 1
+%define SECTORSIZE_LG2 11      ; log2(sector size)
+%include "memdisk.inc"
diff --git a/memdisk/memdisk_iso_512.asm b/memdisk/memdisk_iso_512.asm
new file mode 100644 (file)
index 0000000..fbd90c1
--- /dev/null
@@ -0,0 +1,3 @@
+%define EDD 1
+%define SECTORSIZE_LG2 9       ; log2(sector size)
+%include "memdisk.inc"
index 158a065..9fd5c9e 100644 (file)
@@ -30,6 +30,12 @@ extern const char _binary_memdisk_chs_512_bin_size[];
 extern const char _binary_memdisk_edd_512_bin_start[];
 extern const char _binary_memdisk_edd_512_bin_end[];
 extern const char _binary_memdisk_edd_512_bin_size[];
+extern const char _binary_memdisk_iso_512_bin_start[];
+extern const char _binary_memdisk_iso_512_bin_end[];
+extern const char _binary_memdisk_iso_512_bin_size[];
+extern const char _binary_memdisk_iso_2048_bin_start[];
+extern const char _binary_memdisk_iso_2048_bin_end[];
+extern const char _binary_memdisk_iso_2048_bin_size[];
 
 struct memdisk_header {
     uint16_t int13_offs;