[ovs-dev] [PATCH] ofproto: Add const to immutable members of ofgroup.
Andy Zhou
azhou at nicira.com
Thu May 22 04:47:41 UTC 2014
Signed-off-by: Andy Zhou <azhou at nicira.com>
---
ofproto/ofproto-provider.h | 12 ++++++------
ofproto/ofproto.c | 21 ++++++++++++---------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/ofproto/ofproto-provider.h b/ofproto/ofproto-provider.h
index e5f71c7..9f87ba9 100644
--- a/ofproto/ofproto-provider.h
+++ b/ofproto/ofproto-provider.h
@@ -489,15 +489,15 @@ struct ofgroup {
/* No lock is needed to protect the fields below since they are not
* modified after construction. */
- struct ofproto *ofproto; /* The ofproto that contains this group. */
- uint32_t group_id;
- enum ofp11_group_type type; /* One of OFPGT_*. */
+ const struct ofproto *ofproto; /* The ofproto that contains this group. */
+ const uint32_t group_id;
+ const enum ofp11_group_type type; /* One of OFPGT_*. */
- long long int created; /* Creation time. */
- long long int modified; /* Time of last modification. */
+ const long long int created; /* Creation time. */
+ const long long int modified; /* Time of last modification. */
struct list buckets; /* Contains "struct ofputil_bucket"s. */
- uint32_t n_buckets;
+ const uint32_t n_buckets;
};
bool ofproto_group_lookup(const struct ofproto *ofproto, uint32_t group_id,
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 7fd4ac1..7952984 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -5420,7 +5420,7 @@ static uint32_t
group_get_ref_count(struct ofgroup *group)
OVS_EXCLUDED(ofproto_mutex)
{
- struct ofproto *ofproto = group->ofproto;
+ struct ofproto *ofproto = CONST_CAST(struct ofproto *, group->ofproto);
struct rule_criteria criteria;
struct rule_collection rules;
struct match match;
@@ -5445,7 +5445,7 @@ static void
append_group_stats(struct ofgroup *group, struct list *replies)
{
struct ofputil_group_stats ogs;
- struct ofproto *ofproto = group->ofproto;
+ const struct ofproto *ofproto = group->ofproto;
long long int now = time_msec();
int error;
@@ -5597,6 +5597,7 @@ init_group(struct ofproto *ofproto, struct ofputil_group_mod *gm,
struct ofgroup **ofgroup)
{
enum ofperr error;
+ const long long int now = time_msec();
if (gm->group_id > OFPG_MAX) {
return OFPERR_OFPGMFC_INVALID_GROUP;
@@ -5611,14 +5612,16 @@ init_group(struct ofproto *ofproto, struct ofputil_group_mod *gm,
return OFPERR_OFPGMFC_OUT_OF_GROUPS;
}
- (*ofgroup)->ofproto = ofproto;
- (*ofgroup)->group_id = gm->group_id;
- (*ofgroup)->type = gm->type;
- (*ofgroup)->created = (*ofgroup)->modified = time_msec();
+ (*ofgroup)->ofproto = ofproto;
+ *CONST_CAST(uint32_t *, &((*ofgroup)->group_id)) = gm->group_id;
+ *CONST_CAST(enum ofp11_group_type *, &(*ofgroup)->type) = gm->type;
+ *CONST_CAST(long long int *, &((*ofgroup)->created)) = now;
+ *CONST_CAST(long long int *, &((*ofgroup)->modified)) = now;
ovs_refcount_init(&(*ofgroup)->ref_count);
list_move(&(*ofgroup)->buckets, &gm->buckets);
- (*ofgroup)->n_buckets = list_size(&(*ofgroup)->buckets);
+ *CONST_CAST(uint32_t *, &(*ofgroup)->n_buckets) =
+ list_size(&(*ofgroup)->buckets);
/* Construct called BEFORE any locks are held. */
error = ofproto->ofproto_class->group_construct(*ofgroup);
@@ -5722,8 +5725,8 @@ modify_group(struct ofproto *ofproto, struct ofputil_group_mod *gm)
}
/* The group creation time does not change during modification. */
- new_ofgroup->created = ofgroup->created;
- new_ofgroup->modified = time_msec();
+ *CONST_CAST(long long int *, &(new_ofgroup->created)) = ofgroup->created;
+ *CONST_CAST(long long int *, &(new_ofgroup->modified)) = time_msec();
error = ofproto->ofproto_class->group_modify(new_ofgroup);
if (error) {
--
1.9.1
More information about the dev
mailing list