From: H. Peter Anvin Date: Wed, 23 Jun 2010 00:09:52 +0000 (-0700) Subject: mtools: create an empty ADV X-Git-Tag: syslinux-4.00-pre58^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=134e5f60f81f3372407a771898c381afe394abbf;p=profile%2Fivi%2Fsyslinux.git mtools: create an empty ADV Create an install an empty ADV. Signed-off-by: H. Peter Anvin --- diff --git a/mtools/Makefile b/mtools/Makefile index 5f08b2d..70bed14 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 0f4ccf9..ade8440 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"); }