From: Gene Cumm Date: Sun, 1 Aug 2010 16:55:27 +0000 (-0400) Subject: chain: Extra comments; shrink the new space to minimum X-Git-Tag: syslinux-4.03-pre1~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17cdc1e604dbed3c7a5aefc37a3fb303c539225e;p=platform%2Fupstream%2Fsyslinux.git chain: Extra comments; shrink the new space to minimum --- diff --git a/com32/modules/chain.c b/com32/modules/chain.c index 15c181c..6a5b115 100644 --- a/com32/modules/chain.c +++ b/com32/modules/chain.c @@ -1705,12 +1705,12 @@ int main(int argc, char *argv[]) } if (opt.drmk) { - /* DRMK entry is different */ + /* DRMK entry is different than MS-DOS/PC-DOS */ /* - * A new size, aligned to 16 bytes, with one full extra row to - * guarantee the needed space and ease other values. + * A new size, aligned to 16 bytes to ease use of ds:[bp+28]. + * We only really need 4 new, usable bytes at the end. */ - int tsize = (data[ndata].size + 31) & 0xfffffff0; + int tsize = (data[ndata].size + 19) & 0xfffffff0; regs.ss = regs.fs = regs.gs = 0; /* Used before initialized */ if (!realloc(data[ndata].data, tsize)) { error("Failed to realloc for DRMK\n"); @@ -1719,7 +1719,7 @@ int main(int argc, char *argv[]) data[ndata].size = tsize; /* ds:[bp+28] must be 0x0000003f */ regs.ds = (tsize >> 4) + (opt.seg - 2); - /* "Patch" into the extra row */ + /* "Patch" into tail of the new space */ *(int *)(data[ndata].data + tsize - 4) = 0x0000003f; }