Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/807495/?format=api
{ "id": 807495, "url": "http://patchwork.ozlabs.org/api/patches/807495/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504081950-2528-4-git-send-email-peterx@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504081950-2528-4-git-send-email-peterx@redhat.com>", "list_archive_url": null, "date": "2017-08-30T08:32:00", "name": "[RFC,v2,03/33] bitmap: provide to_le/from_le helpers", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "ef36bad56d8600998b0f9310ba10926c63f80505", "submitter": { "id": 67717, "url": "http://patchwork.ozlabs.org/api/people/67717/?format=api", "name": "Peter Xu", "email": "peterx@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504081950-2528-4-git-send-email-peterx@redhat.com/mbox/", "series": [ { "id": 552, "url": "http://patchwork.ozlabs.org/api/series/552/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=552", "date": "2017-08-30T08:31:59", "name": "Migration: postcopy failure recovery", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/552/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/807495/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/807495/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com", "ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=peterx@redhat.com" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xhzVS4kB8z9t1t\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 18:40:48 +1000 (AEST)", "from localhost ([::1]:49043 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dmyYI-0004kG-9t\n\tfor incoming@patchwork.ozlabs.org; Wed, 30 Aug 2017 04:40:46 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:33923)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <peterx@redhat.com>) id 1dmyQj-0006sn-RL\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 04:32:58 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <peterx@redhat.com>) id 1dmyQe-00039a-U6\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 04:32:57 -0400", "from mx1.redhat.com ([209.132.183.28]:46752)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <peterx@redhat.com>) id 1dmyQe-00039G-Ln\n\tfor qemu-devel@nongnu.org; Wed, 30 Aug 2017 04:32:52 -0400", "from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id AA2A580F75;\n\tWed, 30 Aug 2017 08:32:51 +0000 (UTC)", "from pxdev.xzpeter.org.com (dhcp-14-103.nay.redhat.com\n\t[10.66.14.103])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id E5CBD84792;\n\tWed, 30 Aug 2017 08:32:47 +0000 (UTC)" ], "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com AA2A580F75", "From": "Peter Xu <peterx@redhat.com>", "To": "qemu-devel@nongnu.org", "Date": "Wed, 30 Aug 2017 16:32:00 +0800", "Message-Id": "<1504081950-2528-4-git-send-email-peterx@redhat.com>", "In-Reply-To": "<1504081950-2528-1-git-send-email-peterx@redhat.com>", "References": "<1504081950-2528-1-git-send-email-peterx@redhat.com>", "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.15", "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tWed, 30 Aug 2017 08:32:51 +0000 (UTC)", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "209.132.183.28", "Subject": "[Qemu-devel] [RFC v2 03/33] bitmap: provide to_le/from_le helpers", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "Laurent Vivier <lvivier@redhat.com>,\n\tAndrea Arcangeli <aarcange@redhat.com>, \n\tJuan Quintela <quintela@redhat.com>,\n\tAlexey Perevalov <a.perevalov@samsung.com>, peterx@redhat.com,\n\t\"Dr . David Alan Gilbert\" <dgilbert@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "Provide helpers to convert bitmaps to little endian format. It can be\nused when we want to send one bitmap via network to some other hosts.\n\nOne thing to mention is that, these helpers only solve the problem of\nendianess, but it does not solve the problem of different word size on\nmachines (the bitmaps managing same count of bits may contains different\nsize when malloced). So we need to take care of the size alignment issue\non the callers for now.\n\nSigned-off-by: Peter Xu <peterx@redhat.com>\n---\n include/qemu/bitmap.h | 7 +++++++\n util/bitmap.c | 32 ++++++++++++++++++++++++++++++++\n 2 files changed, 39 insertions(+)", "diff": "diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h\nindex a13bd28..4481975 100644\n--- a/include/qemu/bitmap.h\n+++ b/include/qemu/bitmap.h\n@@ -39,6 +39,8 @@\n * bitmap_clear(dst, pos, nbits)\t\tClear specified bit area\n * bitmap_test_and_clear_atomic(dst, pos, nbits) Test and clear area\n * bitmap_find_next_zero_area(buf, len, pos, n, mask)\tFind bit free area\n+ * bitmap_to_le(dst, src, nbits) Convert bitmap to little endian\n+ * bitmap_from_le(dst, src, nbits) Convert bitmap from little endian\n */\n \n /*\n@@ -247,4 +249,9 @@ static inline unsigned long *bitmap_zero_extend(unsigned long *old,\n return new;\n }\n \n+void bitmap_to_le(unsigned long *dst, const unsigned long *src,\n+ long nbits);\n+void bitmap_from_le(unsigned long *dst, const unsigned long *src,\n+ long nbits);\n+\n #endif /* BITMAP_H */\ndiff --git a/util/bitmap.c b/util/bitmap.c\nindex 3446d72..f7aad58 100644\n--- a/util/bitmap.c\n+++ b/util/bitmap.c\n@@ -370,3 +370,35 @@ long slow_bitmap_count_one(const unsigned long *bitmap, long nbits)\n \n return result;\n }\n+\n+static void bitmap_to_from_le(unsigned long *dst,\n+ const unsigned long *src, long nbits)\n+{\n+ long len = BITS_TO_LONGS(nbits);\n+\n+#ifdef HOST_WORDS_BIGENDIAN\n+ long index;\n+\n+ for (index = 0; index < len; index++) {\n+# if __WORD_SIZE == 64\n+ dst[index] = bswap64(src[index]);\n+# else\n+ dst[index] = bswap32(src[index]);\n+# endif\n+ }\n+#else\n+ memcpy(dst, src, len * sizeof(unsigned long));\n+#endif\n+}\n+\n+void bitmap_from_le(unsigned long *dst, const unsigned long *src,\n+ long nbits)\n+{\n+ bitmap_to_from_le(dst, src, nbits);\n+}\n+\n+void bitmap_to_le(unsigned long *dst, const unsigned long *src,\n+ long nbits)\n+{\n+ bitmap_to_from_le(dst, src, nbits);\n+}\n", "prefixes": [ "RFC", "v2", "03/33" ] }