diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-22 17:09:52 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2010-06-22 17:09:52 -0700 |
commit | 134e5f60f81f3372407a771898c381afe394abbf (patch) | |
tree | 1a2252dcc954529bdc16556092d9319a0d537c2d | |
parent | 0b014e446285b7aad1e19163a15b9cc8936047d3 (diff) | |
download | syslinux-134e5f60f81f3372407a771898c381afe394abbf.tar.gz |
mtools: create an empty ADVsyslinux-4.00-pre58
Create an install an empty ADV.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | mtools/Makefile | 1 | ||||
-rw-r--r-- | mtools/syslinux.c | 13 |
2 files changed, 12 insertions, 2 deletions
diff --git a/mtools/Makefile b/mtools/Makefile index 5f08b2d3..70bed14c 100644 --- a/mtools/Makefile +++ b/mtools/Makefile @@ -9,6 +9,7 @@ LDFLAGS = -s SRCS = syslinux.c \ ../libinstaller/fat.c \ ../libinstaller/syslxmod.c \ + ../libinstaller/setadv.c \ ../libinstaller/bootsect_bin.c \ ../libinstaller/ldlinux_bin.c \ $(wildcard ../libfat/*.c) diff --git a/mtools/syslinux.c b/mtools/syslinux.c index 0f4ccf9c..ade84402 100644 --- a/mtools/syslinux.c +++ b/mtools/syslinux.c @@ -37,6 +37,7 @@ #include "syslinux.h" #include "libfat.h" +#include "setadv.h" char *program; /* Name of program */ char *device; /* Device to install to */ @@ -239,12 +240,20 @@ int main(int argc, char *argv[]) exit(1); } + /* + * Create a vacuous ADV in memory. This should be smarter. + */ + syslinux_reset_adv(syslinux_adv); + /* This command may fail legitimately */ system("mattrib -h -r -s s:/ldlinux.sys 2>/dev/null"); mtp = popen("mcopy -D o -D O -o - s:/ldlinux.sys", "w"); - if (!mtp || (fwrite(syslinux_ldlinux, 1, syslinux_ldlinux_len, mtp) - != syslinux_ldlinux_len) || + if (!mtp || + fwrite(syslinux_ldlinux, 1, syslinux_ldlinux_len, mtp) + != syslinux_ldlinux_len || + fwrite(syslinux_adv, 1, 2 * ADV_SIZE, mtp) + != 2 * ADV_SIZE || (status = pclose(mtp), !WIFEXITED(status) || WEXITSTATUS(status))) { die("failed to create ldlinux.sys"); } |