From: Frediano Ziglio <frediano.ziglio@citrix.com>
To: xen-devel@lists.xen.org
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>
Subject: [PATCH 5/7] vgabios: Reduce stack usage getting mode informations
Date: Fri, 4 May 2012 13:36:48 +0100 [thread overview]
Message-ID: <1336135010-26940-6-git-send-email-frediano.ziglio@citrix.com> (raw)
In-Reply-To: <1336135010-26940-1-git-send-email-frediano.ziglio@citrix.com>
Informations are stored in a structure that is smaller than final one.
Previous code copy this structure to stack extending with zeroes then
update it and copy to caller while now the not-extended version is
copied into stack and then is extended during copy reducing stack
usage.
Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
---
tools/firmware/vgabios/vbe.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/tools/firmware/vgabios/vbe.c b/tools/firmware/vgabios/vbe.c
index fff314e..0b8b736 100644
--- a/tools/firmware/vgabios/vbe.c
+++ b/tools/firmware/vgabios/vbe.c
@@ -914,9 +914,9 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI;
// error by default is 0x014f which means supported but error
Bit16u result=0x014f;
Bit16u ss=get_SS();
- ModeInfoBlock info;
ModeInfoListItem *cur_info;
Boolean using_lfb;
+ ModeInfoBlockCompact info;
#ifdef DEBUG
printf("VBE vbe_biosfn_return_mode_information ES%x DI%x CX%x\n",ES,DI,CX);
@@ -933,7 +933,6 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI;
#ifdef DEBUG
printf("VBE found mode %x\n",CX);
#endif
- memsetb(ss, &info, 0, sizeof(ModeInfoBlock));
memcpyb(ss, &info, 0xc000, &(cur_info->info), sizeof(ModeInfoBlockCompact));
if (using_lfb) {
info.NumberOfBanks = 1;
@@ -950,6 +949,10 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI;
info.PhysBasePtr |= inw(VBE_DISPI_IOPORT_DATA);
#endif
result = 0x4f;
+
+ // copy updates in mode_info_block back
+ memsetb(ES, DI, 0, sizeof(ModeInfoBlock));
+ memcpyb(ES, DI, ss, &info, sizeof(info));
}
else
{
@@ -957,12 +960,6 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI;
printf("VBE *NOT* found mode %x\n",CX);
#endif
}
-
- if (result == 0x4f)
- {
- // copy updates in mode_info_block back
- memcpyb(ES, DI, ss, &info, sizeof(info));
- }
write_word(ss, AX, result);
}
--
1.7.5.4
next prev parent reply other threads:[~2012-05-04 12:36 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-04 12:36 [PATCH 0/7] VGA BIOS patches Frediano Ziglio
2012-05-04 12:36 ` [PATCH 1/7] vgabios: Output to Qemu debug port instead of using Bochs one Frediano Ziglio
2012-05-04 14:04 ` Ian Campbell
2012-05-04 12:36 ` [PATCH 2/7] vgabios: Does not define cur_mode if not required Frediano Ziglio
2012-05-04 12:36 ` [PATCH 3/7] vgabios: Fix size computation overflow Frediano Ziglio
2012-05-04 14:12 ` Ian Campbell
2012-05-04 14:18 ` Frediano Ziglio
2012-05-04 14:26 ` Ian Campbell
2012-05-04 14:45 ` Frediano Ziglio
2012-05-04 14:47 ` Frediano Ziglio
2012-05-04 14:48 ` Frediano Ziglio
2012-05-04 12:36 ` [PATCH 4/7] vgabios: Report mode not supported getting mode informations Frediano Ziglio
2012-05-04 14:18 ` Ian Campbell
2012-05-04 12:36 ` Frediano Ziglio [this message]
2012-05-04 12:36 ` [PATCH 6/7] vgabios: Check if mode is currently supported as vesa specifications Frediano Ziglio
2012-05-04 12:36 ` [PATCH 7/7] vgabios: Make Windows 8 support greater resolutions Frediano Ziglio
2012-05-04 14:19 ` Ian Campbell
-- strict thread matches above, loose matches on Subject: below --
2012-05-01 13:52 VGABIOS patches Frediano Ziglio
2012-05-01 13:52 ` [PATCH 5/7] vgabios: Reduce stack usage getting mode informations Frediano Ziglio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336135010-26940-6-git-send-email-frediano.ziglio@citrix.com \
--to=frediano.ziglio@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).