[ovs-dev] [flow monitor 07/11] ofp-print: Slightly extend ofp_print_bit_names().
Ben Pfaff
blp at nicira.com
Sat Jun 30 05:40:21 UTC 2012
In an upcoming commit I want to print comma-separated, not space-separated,
names for a set of bits.
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
lib/ofp-print.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 5103c3e..e6d9151 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -461,7 +461,8 @@ compare_ports(const void *a_, const void *b_)
static void
ofp_print_bit_names(struct ds *string, uint32_t bits,
- const char *(*bit_to_name)(uint32_t bit))
+ const char *(*bit_to_name)(uint32_t bit),
+ char separator)
{
int n = 0;
int i;
@@ -478,7 +479,7 @@ ofp_print_bit_names(struct ds *string, uint32_t bits,
const char *name = bit_to_name(bit);
if (name) {
if (n++) {
- ds_put_char(string, ' ');
+ ds_put_char(string, separator);
}
ds_put_cstr(string, name);
bits &= ~bit;
@@ -488,7 +489,7 @@ ofp_print_bit_names(struct ds *string, uint32_t bits,
if (bits) {
if (n) {
- ds_put_char(string, ' ');
+ ds_put_char(string, separator);
}
ds_put_format(string, "0x%"PRIx32, bits);
}
@@ -524,7 +525,7 @@ netdev_feature_to_name(uint32_t bit)
static void
ofp_print_port_features(struct ds *string, enum netdev_features features)
{
- ofp_print_bit_names(string, features, netdev_feature_to_name);
+ ofp_print_bit_names(string, features, netdev_feature_to_name, ' ');
ds_put_char(string, '\n');
}
@@ -549,7 +550,7 @@ ofputil_port_config_to_name(uint32_t bit)
static void
ofp_print_port_config(struct ds *string, enum ofputil_port_config config)
{
- ofp_print_bit_names(string, config, ofputil_port_config_to_name);
+ ofp_print_bit_names(string, config, ofputil_port_config_to_name, ' ');
ds_put_char(string, '\n');
}
@@ -594,10 +595,11 @@ ofp_print_port_state(struct ds *string, enum ofputil_port_state state)
: "STP_BLOCK"));
state &= ~OFPUTIL_PS_STP_MASK;
if (state) {
- ofp_print_bit_names(string, state, ofputil_port_state_to_name);
+ ofp_print_bit_names(string, state, ofputil_port_state_to_name,
+ ' ');
}
} else {
- ofp_print_bit_names(string, state, ofputil_port_state_to_name);
+ ofp_print_bit_names(string, state, ofputil_port_state_to_name, ' ');
}
ds_put_char(string, '\n');
}
@@ -757,12 +759,12 @@ ofp_print_switch_features(struct ds *string,
ds_put_cstr(string, "capabilities: ");
ofp_print_bit_names(string, features.capabilities,
- ofputil_capabilities_to_name);
+ ofputil_capabilities_to_name, ' ');
ds_put_char(string, '\n');
ds_put_cstr(string, "actions: ");
ofp_print_bit_names(string, features.actions,
- ofputil_action_bitmap_to_name);
+ ofputil_action_bitmap_to_name, ' ');
ds_put_char(string, '\n');
ofp_print_phy_ports(string, osf->header.version, &b);
--
1.7.2.5
More information about the dev
mailing list