diff options
author | Ben Pfaff <blp@nicira.com> | 2013-05-10 08:55:25 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2013-05-10 11:24:07 -0700 |
commit | 4b60911067a82fbdfa87b7c2824412da20287ed8 (patch) | |
tree | aa0447373eff8e4ca9cc67c3e5361bf3437dfa2c /lib/netdev-provider.h | |
parent | 0ad90c845b7e82090a846fbe9f927e8d1c84cfc9 (diff) |
netdev: Factor restoring flags into new "struct netdev_saved_flags".
This gets rid of the only per-instance data in "struct netdev", which
will make it possible to merge "struct netdev_dev" into "struct netdev" in
a later commit.
Ed Maste wrote the netdev-bsd changes in this commit.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Co-authored-by: Ed Maste <emaste@freebsd.org>
Signed-off-by: Ed Maste <emaste@freebsd.org>
Tested-by: Ed Maste <emaste@freebsd.org>
Diffstat (limited to 'lib/netdev-provider.h')
-rw-r--r-- | lib/netdev-provider.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h index 9db950cf..00799b11 100644 --- a/lib/netdev-provider.h +++ b/lib/netdev-provider.h @@ -38,6 +38,7 @@ struct netdev_dev { this device. */ int ref_cnt; /* Times this devices was opened. */ struct shash_node *node; /* Pointer to element in global map. */ + struct list saved_flags_list; /* Contains "struct netdev_saved_flags". */ }; void netdev_dev_init(struct netdev_dev *, const char *name, @@ -63,9 +64,6 @@ static inline void netdev_dev_assert_class(const struct netdev_dev *netdev_dev, struct netdev { struct netdev_dev *netdev_dev; /* Parent netdev_dev. */ struct list node; /* Element in global list. */ - - enum netdev_flags save_flags; /* Initial device flags. */ - enum netdev_flags changed_flags; /* Flags that we changed. */ }; void netdev_init(struct netdev *, struct netdev_dev *); @@ -572,14 +570,14 @@ struct netdev_class { int (*arp_lookup)(const struct netdev *netdev, ovs_be32 ip, uint8_t mac[6]); - /* Retrieves the current set of flags on 'netdev' into '*old_flags'. - * Then, turns off the flags that are set to 1 in 'off' and turns on the - * flags that are set to 1 in 'on'. (No bit will be set to 1 in both 'off' - * and 'on'; that is, off & on == 0.) + /* Retrieves the current set of flags on 'dev' into '*old_flags'. Then, + * turns off the flags that are set to 1 in 'off' and turns on the flags + * that are set to 1 in 'on'. (No bit will be set to 1 in both 'off' and + * 'on'; that is, off & on == 0.) * * This function may be invoked from a signal handler. Therefore, it * should not do anything that is not signal-safe (such as logging). */ - int (*update_flags)(struct netdev *netdev, enum netdev_flags off, + int (*update_flags)(struct netdev_dev *dev, enum netdev_flags off, enum netdev_flags on, enum netdev_flags *old_flags); /* Returns a sequence number which indicates changes in one of 'netdev''s |