linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Malley <mail@chrismalley.co.uk>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: lkml - Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>, lguest <lguest@ozlabs.org>,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	Vivek Goyal <vgoyal@in.ibm.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH 5/5] lguest: loading bzImage directly
Date: Wed, 03 Oct 2007 10:37:01 +0100	[thread overview]
Message-ID: <1191404221.17247.15.camel@feisty> (raw)
In-Reply-To: <1191368457.17826.53.camel@localhost.localdomain>

Hi guys

Would it not be clearer to #include <asm/bootparam.h> and use 
the relevant named members of struct setup_header / struct boot_params
rather than the hard-coded values 0x202, 0x1F1, 0x214 ?

--
Chris


On Wed, 2007-10-03 at 09:40 +1000, Rusty Russell wrote:
[snip]
> +	u8 hdr[1024];
> +	int r;
> +	/* Modern bzImages get loaded at 1M. */
> +	void *p = from_guest_phys(0x100000);
> +
> +	/* Go back to the start of the file and read the header.  It should be
> +	 * a Linux boot header (see Documentation/i386/boot.txt) */
> +	lseek(fd, 0, SEEK_SET);
> +	read(fd, hdr, sizeof(hdr));
> +
> +	/* At offset 0x202, we expect the magic "HdrS" */
> +	if (memcmp(hdr + 0x202, "HdrS", 4) != 0)
> +		errx(1, "This doesn't look like a bzImage to me");
> +
> +	/* The byte at 0x1F1 tells us how many extra sectors of
> +	 * header: skip over them all. */
> +	lseek(fd, (unsigned long)(hdr[0x1F1]+1) * 512, SEEK_SET);
> +
> +	/* Now read everything into memory. in nice big chunks. */
> +	while ((r = read(fd, p, 65536)) > 0)
> +		p += r;
> +
> +	/* Finally, 0x214 tells us where to start the kernel. */
> +	return *(unsigned long *)&hdr[0x214];
>  }
>  
>  /*L:140 Loading the kernel is easy when it's a "vmlinux", but most kernels
> 



  reply	other threads:[~2007-10-03  9:44 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-02 23:34 [PATCH 0/5] Boot protocol changes Rusty Russell
2007-10-02 23:35 ` [PATCH 1/5] update boot spec to 2.07 Rusty Russell
2007-10-02 23:35   ` [PATCH 2/5] add WEAK() for creating weak asm labels Rusty Russell
2007-10-02 23:36     ` [PATCH 3/5] i386: paravirt boot sequence Rusty Russell
2007-10-02 23:39       ` [PATCH 4/5] Revert lguest magic and use hook in head.S Rusty Russell
2007-10-02 23:40         ` [PATCH 5/5] lguest: loading bzImage directly Rusty Russell
2007-10-03  9:37           ` Chris Malley [this message]
2007-10-03 17:12             ` H. Peter Anvin
2007-10-04  0:02             ` Rusty Russell
2007-10-04  0:26               ` H. Peter Anvin
2007-11-24 21:54               ` Kjartan Maraas
2007-11-24 22:14                 ` H. Peter Anvin
2007-11-25 12:32                   ` Kjartan Maraas
2007-10-30  6:38   ` [PATCH 1/5] update boot spec to 2.07 rae l
2007-10-02 23:44 ` [PATCH 0/5] Boot protocol changes H. Peter Anvin
2007-10-02 23:46 ` Jeremy Fitzhardinge
2007-10-02 23:53   ` H. Peter Anvin
2007-10-02 23:56     ` Jeremy Fitzhardinge
2007-10-03  0:43       ` H. Peter Anvin
2007-10-03  0:46         ` H. Peter Anvin
2007-10-03  0:58         ` Jeremy Fitzhardinge
2007-10-03  1:03           ` H. Peter Anvin

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=1191404221.17247.15.camel@feisty \
    --to=mail@chrismalley.co.uk \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=ebiederm@xmission.com \
    --cc=hpa@zytor.com \
    --cc=jeremy@goop.org \
    --cc=lguest@ozlabs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=vgoyal@in.ibm.com \
    /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).