qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v13 0/7] libqblock qemu block layer library
Date: Sun, 09 Dec 2012 12:52:03 +0800	[thread overview]
Message-ID: <50C418F3.8010900@linux.vnet.ibm.com> (raw)
In-Reply-To: <1354256243-8375-1-git-send-email-xiawenc@linux.vnet.ibm.com>

Hi, Paolo
   Do you think this version still needs more improvement?

>    These patches introduce libqblock API, make subdir-libqblock and make
> check-libqblock could build this library.
> Functionalities:
>   1 create a new image.
>   2 sync access of an image.
>   3 basic image information retrieving such as backing file.
>   4 detect if a sector is allocated in an image.
> Supported Formats:
>   ALL using file protocols.
>
>    Patch 1 to 3 prepares qemu to accept libqblock.
>
> v2:
>    Insert reserved bytes into union.
>    Use uint64_t instead of size_t, offset.
>    Use const char * in filename pointer.
>    Initialization function removed and it was automatically executed when
> library is loaded.
>    Added compile flag visibility=hidden, to avoid name space pollution.
>    Structure naming style changed.
>    Using byte unit instead of sector for every API.
>    Added a member in image static information structure, to report logical
> sector size, which is always 512 now.
>    Read and write API can take request not aligned to 512 now. It returns the
> byte number that have succeed in operation, but now either negative value
> or the number requested would be returned, because qemu block sync I/O API
> would not return such number.
>    Typo fix due to comments and improved documents.
>
> v3:
>    Removed the code about OOM error, introduced GError.
>    Used a table to map from string to enum types about format.
>    Use typedef for every structure.
>    Improved the gcc compiler macro to warn if gcc was not used.
>    Global variable name changed with prefix libqb_.
>    The struct QBlockStaticInfo was changed to folder full format related
> information inside, and a new member with pointers pointing to the mostly used
> members, such as backing file, virt size, was added. This would allow the user
> to get full information about how it is created in the future.
>    Each patch in the serial can work with qemu now.
>    Typo fixes.
>
> v4:
>    Renamed QBroker to QBlockContext.
>    Removed tool objs out of libqblock.
>    Added a check in initialization about structure size for ABI.
>    Added a new helper API to duplicate protocol information, helps to open files
> in a backing file chain.
>    Check-libqblock will not rebuild libqblock every time now.
>    Test case file renamed to "libqblock-[FMT].c".
>    Test use gtest framework now.
>    Test do random creation of test file now, added check for information API in
> it.
>    Test do random sync io instead of fixed offset io now.
>    Test accept one parameter about where to place the test image, now it is
> ./tests/libqblock/test_images.
>
> v5:
>    Makefile of libqblock was adjusted to be similar as libcacard, added spec
> file and install section.
>    Removed warning when GCC was not found.
>    Structure names were changed to better ones.
>    Removed the union typedef that contain reserved bytes to reduce the folder
> depth.
>    Some format related enum options was changed to better name.
>    Added accessors about image static information, hide indirect accessing
> member detail in the structure.
>    Test Makefile do not create diretory now, test case create it themself.
>    Test build system do not use libtool now, and removed qtest-obj-y in its
> dependency, make check will automatically execute test anyway now.
>    Removed "ifeq ($(LIBTOOL),)" in Makefile.
>
> v6:
>    Remove address pointer member in image static info structure.
>
> v7:
>    Support out of tree building.
>
> v8:
>    Fix a bug in out of tree building.
>
> v9:
>    Rebase and splitted out small fix patch for qemu.
>
> v10:
>    Rebased to upstream, adjusted libqblock build system according to Paolo's
> comments.
>
> v11:
>    Adjusting code in patch 4 to 7, details are in the child patch's commit
> message.
>
> v12:
>    Split a patch to add a function in stubs, other change are in patch 4 to 7
> commit messages.
>
> v13:
>    Moved another function into stubs, added xml rule in tests/makefile, little
> changes in patch 4, 6, 7.
>
> Wenchao Xia (7):
>    Build system clean tests directory clearly
>    block export function path_has_protocol
>    stubs add set_fd_handler and signalfd_available
>    libqblock build system
>    libqblock API design and type defines
>    libqblock API implement
>    libqblock test example
>
>   .gitignore                     |    2 +
>   Makefile                       |   31 +-
>   block.c                        |    2 +-
>   block.h                        |    2 +
>   configure                      |   41 ++-
>   libqblock/Makefile             |   75 +++
>   libqblock/libqblock-aio.c      |   78 +++
>   libqblock/libqblock-aio.h      |    8 +
>   libqblock/libqblock-error.c    |   57 ++
>   libqblock/libqblock-error.h    |   49 ++
>   libqblock/libqblock-internal.h |   68 +++
>   libqblock/libqblock-types.h    |  245 +++++++++
>   libqblock/libqblock.c          | 1180 ++++++++++++++++++++++++++++++++++++++++
>   libqblock/libqblock.h          |  355 ++++++++++++
>   libqblock/libqblock.pc.in      |   13 +
>   rules.mak                      |    4 +
>   stubs/Makefile.objs            |    1 +
>   stubs/set-fd-handler.c         |    8 +
>   stubs/signalfd.c               |    7 +
>   tests/Makefile                 |   38 ++-
>   tests/check-libqblock-qcow2.c  |  392 +++++++++++++
>   21 files changed, 2645 insertions(+), 11 deletions(-)
>   create mode 100644 libqblock/Makefile
>   create mode 100644 libqblock/libqblock-aio.c
>   create mode 100644 libqblock/libqblock-aio.h
>   create mode 100644 libqblock/libqblock-error.c
>   create mode 100644 libqblock/libqblock-error.h
>   create mode 100644 libqblock/libqblock-internal.h
>   create mode 100644 libqblock/libqblock-types.h
>   create mode 100644 libqblock/libqblock.c
>   create mode 100644 libqblock/libqblock.h
>   create mode 100644 libqblock/libqblock.pc.in
>   create mode 100644 stubs/signalfd.c
>   create mode 100644 tests/check-libqblock-qcow2.c
>
>


-- 
Best Regards

Wenchao Xia

  parent reply	other threads:[~2012-12-09  4:52 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-30  6:17 [Qemu-devel] [PATCH v13 0/7] libqblock qemu block layer library Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 1/7] Build system clean tests directory clearly Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 2/7] block export function path_has_protocol Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 3/7] stubs add set_fd_handler and signalfd_available Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 4/7] libqblock build system Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 5/7] libqblock API design and type defines Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 6/7] libqblock API implement Wenchao Xia
2012-11-30  6:17 ` [Qemu-devel] [PATCH v13 7/7] libqblock test example Wenchao Xia
2012-12-09  4:52 ` Wenchao Xia [this message]
2012-12-14 10:06 ` [Qemu-devel] [PATCH v13 0/7] libqblock qemu block layer library Wenchao Xia
2012-12-14 10:17   ` Paolo Bonzini
2013-01-21 11:15     ` Paolo Bonzini

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=50C418F3.8010900@linux.vnet.ibm.com \
    --to=xiawenc@linux.vnet.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=pbonzini@redhat.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).