diff options
author | Ben Pfaff <blp@ovn.org> | 2018-05-24 10:32:59 -0700 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2018-05-25 13:36:05 -0700 |
commit | fa37affad362df15fc59db00aa96ee79cd5eebd9 (patch) | |
tree | f539cdab21f0951aa8bb7c8b6984d9854d33112d /ofproto | |
parent | 3d62892884d88cf1d0d02f58b3317e6ec0ca8971 (diff) | |
download | openvswitch-fa37affad362df15fc59db00aa96ee79cd5eebd9.tar.gz |
Embrace anonymous unions.
Several OVS structs contain embedded named unions, like this:
struct {
...
union {
...
} u;
};
C11 standardized a feature that many compilers already implemented
anyway, where an embedded union may be unnamed, like this:
struct {
...
union {
...
};
};
This is more convenient because it allows the programmer to omit "u."
in many places. OVS already used this feature in several places. This
commit embraces it in several others.
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Justin Pettit <jpettit@ovn.org>
Tested-by: Alin Gabriel Serdean <aserdean@ovn.org>
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'ofproto')
-rw-r--r-- | ofproto/ofproto-dpif-upcall.c | 66 | ||||
-rw-r--r-- | ofproto/ofproto.c | 12 |
2 files changed, 39 insertions, 39 deletions
diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index d26f201f4..d80a10d31 100644 --- a/ofproto/ofproto-dpif-upcall.c +++ b/ofproto/ofproto-dpif-upcall.c @@ -1553,15 +1553,15 @@ handle_upcalls(struct udpif *udpif, struct upcall *upcalls, op = &ops[n_ops++]; op->ukey = NULL; op->dop.type = DPIF_OP_EXECUTE; - op->dop.u.execute.packet = CONST_CAST(struct dp_packet *, packet); - op->dop.u.execute.flow = upcall->flow; + op->dop.execute.packet = CONST_CAST(struct dp_packet *, packet); + op->dop.execute.flow = upcall->flow; odp_key_to_dp_packet(upcall->key, upcall->key_len, - op->dop.u.execute.packet); - op->dop.u.execute.actions = upcall->odp_actions.data; - op->dop.u.execute.actions_len = upcall->odp_actions.size; - op->dop.u.execute.needs_help = (upcall->xout.slow & SLOW_ACTION) != 0; - op->dop.u.execute.probe = false; - op->dop.u.execute.mtu = upcall->mru; + op->dop.execute.packet); + op->dop.execute.actions = upcall->odp_actions.data; + op->dop.execute.actions_len = upcall->odp_actions.size; + op->dop.execute.needs_help = (upcall->xout.slow & SLOW_ACTION) != 0; + op->dop.execute.probe = false; + op->dop.execute.mtu = upcall->mru; } } @@ -2265,12 +2265,12 @@ delete_op_init__(struct udpif *udpif, struct ukey_op *op, { op->ukey = NULL; op->dop.type = DPIF_OP_FLOW_DEL; - op->dop.u.flow_del.key = flow->key; - op->dop.u.flow_del.key_len = flow->key_len; - op->dop.u.flow_del.ufid = flow->ufid_present ? &flow->ufid : NULL; - op->dop.u.flow_del.pmd_id = flow->pmd_id; - op->dop.u.flow_del.stats = &op->stats; - op->dop.u.flow_del.terse = udpif_use_ufid(udpif); + op->dop.flow_del.key = flow->key; + op->dop.flow_del.key_len = flow->key_len; + op->dop.flow_del.ufid = flow->ufid_present ? &flow->ufid : NULL; + op->dop.flow_del.pmd_id = flow->pmd_id; + op->dop.flow_del.stats = &op->stats; + op->dop.flow_del.terse = udpif_use_ufid(udpif); } static void @@ -2278,12 +2278,12 @@ delete_op_init(struct udpif *udpif, struct ukey_op *op, struct udpif_key *ukey) { op->ukey = ukey; op->dop.type = DPIF_OP_FLOW_DEL; - op->dop.u.flow_del.key = ukey->key; - op->dop.u.flow_del.key_len = ukey->key_len; - op->dop.u.flow_del.ufid = ukey->ufid_present ? &ukey->ufid : NULL; - op->dop.u.flow_del.pmd_id = ukey->pmd_id; - op->dop.u.flow_del.stats = &op->stats; - op->dop.u.flow_del.terse = udpif_use_ufid(udpif); + op->dop.flow_del.key = ukey->key; + op->dop.flow_del.key_len = ukey->key_len; + op->dop.flow_del.ufid = ukey->ufid_present ? &ukey->ufid : NULL; + op->dop.flow_del.pmd_id = ukey->pmd_id; + op->dop.flow_del.stats = &op->stats; + op->dop.flow_del.terse = udpif_use_ufid(udpif); } static void @@ -2292,16 +2292,16 @@ put_op_init(struct ukey_op *op, struct udpif_key *ukey, { op->ukey = ukey; op->dop.type = DPIF_OP_FLOW_PUT; - op->dop.u.flow_put.flags = flags; - op->dop.u.flow_put.key = ukey->key; - op->dop.u.flow_put.key_len = ukey->key_len; - op->dop.u.flow_put.mask = ukey->mask; - op->dop.u.flow_put.mask_len = ukey->mask_len; - op->dop.u.flow_put.ufid = ukey->ufid_present ? &ukey->ufid : NULL; - op->dop.u.flow_put.pmd_id = ukey->pmd_id; - op->dop.u.flow_put.stats = NULL; - ukey_get_actions(ukey, &op->dop.u.flow_put.actions, - &op->dop.u.flow_put.actions_len); + op->dop.flow_put.flags = flags; + op->dop.flow_put.key = ukey->key; + op->dop.flow_put.key_len = ukey->key_len; + op->dop.flow_put.mask = ukey->mask; + op->dop.flow_put.mask_len = ukey->mask_len; + op->dop.flow_put.ufid = ukey->ufid_present ? &ukey->ufid : NULL; + op->dop.flow_put.pmd_id = ukey->pmd_id; + op->dop.flow_put.stats = NULL; + ukey_get_actions(ukey, &op->dop.flow_put.actions, + &op->dop.flow_put.actions_len); } /* Executes datapath operations 'ops' and attributes stats retrieved from the @@ -2322,7 +2322,7 @@ push_dp_ops(struct udpif *udpif, struct ukey_op *ops, size_t n_ops) struct ukey_op *op = &ops[i]; struct dpif_flow_stats *push, *stats, push_buf; - stats = op->dop.u.flow_del.stats; + stats = op->dop.flow_del.stats; push = &push_buf; if (op->dop.type != DPIF_OP_FLOW_DEL) { @@ -2353,8 +2353,8 @@ push_dp_ops(struct udpif *udpif, struct ukey_op *ops, size_t n_ops) } if (push->n_packets || netflow_exists()) { - const struct nlattr *key = op->dop.u.flow_del.key; - size_t key_len = op->dop.u.flow_del.key_len; + const struct nlattr *key = op->dop.flow_del.key; + size_t key_len = op->dop.flow_del.key_len; struct netflow *netflow; struct reval_context ctx = { .netflow = &netflow, diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index b9d53dfdd..829ccd866 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -152,7 +152,7 @@ struct learned_cookie { /* In 'dead_cookies' list when removed from hmap. */ struct ovs_list list_node; - } u; + }; /* Key. */ ovs_be64 cookie OVS_GUARDED_BY(ofproto_mutex); @@ -3099,14 +3099,14 @@ learned_cookies_update_one__(struct ofproto *ofproto, uint32_t hash = hash_learned_cookie(learn->cookie, learn->table_id); struct learned_cookie *c; - HMAP_FOR_EACH_WITH_HASH (c, u.hmap_node, hash, &ofproto->learned_cookies) { + HMAP_FOR_EACH_WITH_HASH (c, hmap_node, hash, &ofproto->learned_cookies) { if (c->cookie == learn->cookie && c->table_id == learn->table_id) { c->n += delta; ovs_assert(c->n >= 0); if (!c->n) { - hmap_remove(&ofproto->learned_cookies, &c->u.hmap_node); - ovs_list_push_back(dead_cookies, &c->u.list_node); + hmap_remove(&ofproto->learned_cookies, &c->hmap_node); + ovs_list_push_back(dead_cookies, &c->list_node); } return; @@ -3115,7 +3115,7 @@ learned_cookies_update_one__(struct ofproto *ofproto, ovs_assert(delta > 0); c = xmalloc(sizeof *c); - hmap_insert(&ofproto->learned_cookies, &c->u.hmap_node, hash); + hmap_insert(&ofproto->learned_cookies, &c->hmap_node, hash); c->cookie = learn->cookie; c->table_id = learn->table_id; c->n = delta; @@ -3183,7 +3183,7 @@ learned_cookies_flush(struct ofproto *ofproto, struct ovs_list *dead_cookies) struct minimatch match; minimatch_init_catchall(&match); - LIST_FOR_EACH_POP (c, u.list_node, dead_cookies) { + LIST_FOR_EACH_POP (c, list_node, dead_cookies) { struct rule_criteria criteria; struct rule_collection rules; rule_criteria_init(&criteria, c->table_id, &match, 0, OVS_VERSION_MAX, |