qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: ali saeedi <ali.saeedi56@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] BIT_WORD(start >> TARGET_PAGE_BITS)
Date: Fri, 30 Jun 2017 08:19:56 -0500	[thread overview]
Message-ID: <715c7cf5-0311-425a-9ea0-9a9986b3655b@redhat.com> (raw)
In-Reply-To: <CAGKXQyct2Y0DTbSRxCjyDJpR0eSZg3L245mce6QvmtPNJexcrw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1795 bytes --]

On 06/30/2017 08:02 AM, ali saeedi wrote:
> Hello
> what does the following code do?
> 'unsigned long page = BIT_WORD(start >> TARGET_PAGE_BITS)' ?

I've noticed you've been asking a lot of questions (each as a new
thread, rather than replying to previous answers), that seem like you
are not trying very hard to read the code and find an answer for
yourself.  Rather than just answer you, I'm going to try to teach you
how to read the source and answer the question yourself.  You may also
get better answers to your future questions if you ask in the form of
"this code is confusing me, I think it means this, based on what I read
at xyz, but would like confirmation or correction" (showing WHAT you
have already researched) rather than just "what does this code do" (and
making it feel like you are off-loading the research work onto others).

First, figure out what BIT_WORD does:

$ git grep 'define BIT_WORD'

That should have only one hit, in include/qemu/bitops.h.  Reading it in
context doesn't have any more comments, but it looks like it is
computing the number of bits that are available in a word, and looks
like it is defining a word to be the type most efficiently operated on
for the current ABI (a long is 32 bits on a 32-bit OS, and 64 bits on a
64-bit OS).

It also looks like you are scaling a start address by the number of bits
in a target page.

So it probably means you are computing the index for which page 'start'
occurs on (depending on values, it might mean that 'start == 0x0' is
page 0, 'start == 0x10000' is page 1, and so on), where start is
initially in the form of the number of bits per page.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2017-06-30 13:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-30 13:02 [Qemu-devel] BIT_WORD(start >> TARGET_PAGE_BITS) ali saeedi
2017-06-30 13:19 ` Eric Blake [this message]
2017-06-30 13:49   ` ali saeedi
2017-06-30 13:53 ` Stefan Hajnoczi

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=715c7cf5-0311-425a-9ea0-9a9986b3655b@redhat.com \
    --to=eblake@redhat.com \
    --cc=ali.saeedi56@gmail.com \
    --cc=qemu-devel@nongnu.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).