From patchwork Tue Nov 24 22:15:58 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Zhou X-Patchwork-Id: 548312 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (li376-54.members.linode.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 8E10A1402A8 for ; Wed, 25 Nov 2015 09:16:16 +1100 (AEDT) Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id D542B1066F; Tue, 24 Nov 2015 14:16:15 -0800 (PST) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e4.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id 8B4721066C for ; Tue, 24 Nov 2015 14:16:14 -0800 (PST) Received: from bar2.cudamail.com (unknown [192.168.21.12]) by mx1e4.cudamail.com (Postfix) with ESMTPS id 10F841E00BC for ; Tue, 24 Nov 2015 15:16:14 -0700 (MST) X-ASG-Debug-ID: 1448403373-03dc5332c3101b30001-byXFYA Received: from mx1-pf1.cudamail.com ([192.168.24.1]) by bar2.cudamail.com with ESMTP id s0imi5FJOHAIwBuI (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 24 Nov 2015 15:16:13 -0700 (MST) X-Barracuda-Envelope-From: azhou.ovn@gmail.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.24.1 Received: from unknown (HELO mail-pa0-f51.google.com) (209.85.220.51) by mx1-pf1.cudamail.com with ESMTPS (RC4-SHA encrypted); 24 Nov 2015 22:16:13 -0000 Received-SPF: pass (mx1-pf1.cudamail.com: SPF record at _netblocks.google.com designates 209.85.220.51 as permitted sender) X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.51 Received: by pabfh17 with SMTP id fh17so36004913pab.0 for ; Tue, 24 Nov 2015 14:16:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=from:to:cc:subject:date:message-id; bh=49LVJEHXhZYaXxsTO0X4gL5skoCDMMA0Bv87UTq/Ksc=; b=TLfwh6eOwJl2Y7Pp4L6wrhtwjyuPWGxP9VlznZ9ra7xLWi515nK5O5Se3O6f5gGQA3 0/aPe3GHLNSkUo+bxQO12ycaZF5np4fWASakHvOgRBDrm4hARWCb9++pNxwsCd2NDc2r 6l6qWd6ziXbMMxiXaknNgkv5c3EbXS/XnWyEJGWG5sbJbMi1Pztg2CN7f2xdFtgHp+om Oc8608mEBUaTaoiBkdB7IJoQVvpVZ1dBmjt/hUoAEgyKfkrIWhxwoMmgAlCZubtu/wSE um72ZC70MtvAg6DjL4+JHDBkFwFgFYv8e5FU5J+feUvdgLOAi9rQ8dH87IX98Kx4diVU ZbTw== X-Received: by 10.98.43.18 with SMTP id r18mr26598224pfr.2.1448403372560; Tue, 24 Nov 2015 14:16:12 -0800 (PST) Received: from ubuntu.localdomain ([208.91.1.34]) by smtp.gmail.com with ESMTPSA id b15sm16374570pfj.7.2015.11.24.14.16.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Nov 2015 14:16:11 -0800 (PST) X-CudaMail-Envelope-Sender: azhou.ovn@gmail.com X-Barracuda-Apparent-Source-IP: 208.91.1.34 From: Andy Zhou To: dev@openvswitch.org X-CudaMail-Whitelist-To: dev@openvswitch.org X-CudaMail-MID: CM-E1-1123095388 X-CudaMail-DTE: 112415 X-CudaMail-Originating-IP: 209.85.220.51 Date: Tue, 24 Nov 2015 14:15:58 -0800 X-ASG-Orig-Subj: [##CM-E1-1123095388##][monitor2 v2 1/9] ovsdb: refactor, add ovsdb_monitor_max_columns() Message-Id: <1448403366-21460-1-git-send-email-azhou@ovn.org> X-Mailer: git-send-email 1.9.1 X-Barracuda-Connect: UNKNOWN[192.168.24.1] X-Barracuda-Start-Time: 1448403373 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-ASG-Whitelist: Header =?UTF-8?B?eFwtY3VkYW1haWxcLXdoaXRlbGlzdFwtdG8=?= X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 Subject: [ovs-dev] [monitor2 v2 1/9] ovsdb: refactor, add ovsdb_monitor_max_columns() X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" From: Andy Zhou This function will have multiple callers in later patches. Signed-off-by: Andy Zhou Acked-by: Ben Pfaff --- ovsdb/monitor.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c index 7805c60..daf69cd 100644 --- a/ovsdb/monitor.c +++ b/ovsdb/monitor.c @@ -545,6 +545,21 @@ ovsdb_monitor_compose_row_update( return row_json; } +static size_t +ovsdb_monitor_max_columns(struct ovsdb_monitor *dbmon) +{ + struct shash_node *node; + size_t max_columns = 0; + + SHASH_FOR_EACH (node, &dbmon->tables) { + struct ovsdb_monitor_table *mt = node->data; + + max_columns = MAX(max_columns, mt->n_columns); + } + + return max_columns; +} + /* Constructs and returns JSON for a object (as described in * RFC 7047) for all the outstanding changes within 'monitor', starting from * 'transaction'. */ @@ -553,17 +568,9 @@ ovsdb_monitor_compose_update(struct ovsdb_monitor *dbmon, bool initial, uint64_t transaction) { struct shash_node *node; - unsigned long int *changed; struct json *json; - size_t max_columns; - - max_columns = 0; - SHASH_FOR_EACH (node, &dbmon->tables) { - struct ovsdb_monitor_table *mt = node->data; - - max_columns = MAX(max_columns, mt->n_columns); - } - changed = xmalloc(bitmap_n_bytes(max_columns)); + size_t max_columns = ovsdb_monitor_max_columns(dbmon); + unsigned long int *changed = xmalloc(bitmap_n_bytes(max_columns)); json = NULL; SHASH_FOR_EACH (node, &dbmon->tables) {