This patch introduce libqblock API, make libqblock.la 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.
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 neither 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. Wenchao Xia (6): libqblock API design libqblock type and structure defines libqblock error handling libqblock export some qemu block function libqblock building system libqblock test example Makefile | 22 +- Makefile.objs | 6 + block.c | 2 +- block.h | 1 + libqblock/Makefile | 64 +++ libqblock/libqblock-error.c | 60 +++ libqblock/libqblock-error.h | 50 ++ libqblock/libqblock-internal.h | 50 ++ libqblock/libqblock-types.h | 251 +++++++++ libqblock/libqblock.c | 1077 ++++++++++++++++++++++++++++++++++++++ libqblock/libqblock.h | 292 +++++++++++ tests/Makefile | 3 + tests/libqblock/Makefile | 28 + tests/libqblock/libqblock-test.c | 231 ++++++++ 14 files changed, 2135 insertions(+), 2 deletions(-) create mode 100644 libqblock/Makefile 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 tests/libqblock/Makefile create mode 100644 tests/libqblock/libqblock-test.c