diff options
author | Alex Vesker <valex@mellanox.com> | 2018-07-12 15:13:10 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-12 17:37:13 -0700 |
commit | d7e5272282d93bedbbeb6174b8af8425d7dcfd6f (patch) | |
tree | 6b87e385cd12d9eaa3bf154ba6d06abbba04f5de /include/net/devlink.h | |
parent | ccadfa444b34c6ec7bb458eee17fdd8c9a456c63 (diff) | |
download | linux-stable-d7e5272282d93bedbbeb6174b8af8425d7dcfd6f.tar.gz linux-stable-d7e5272282d93bedbbeb6174b8af8425d7dcfd6f.tar.bz2 linux-stable-d7e5272282d93bedbbeb6174b8af8425d7dcfd6f.zip |
devlink: Add support for creating region snapshots
Each device address region can store multiple snapshots,
each snapshot is identified using a different numerical ID.
This ID is used when deleting a snapshot or showing an address
region specific snapshot. This patch exposes a callback to add
a new snapshot to an address region.
The snapshot will be deleted using the destructor function
when destroying a region or when a snapshot delete command
from devlink user tool.
Signed-off-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/devlink.h')
-rw-r--r-- | include/net/devlink.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/devlink.h b/include/net/devlink.h index f27d8593687a..905f0bb7b4ba 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -401,6 +401,8 @@ enum devlink_param_generic_id { struct devlink_region; +typedef void devlink_snapshot_data_dest_t(const void *data); + struct devlink_ops { int (*reload)(struct devlink *devlink, struct netlink_ext_ack *extack); int (*port_type_set)(struct devlink_port *devlink_port, @@ -553,6 +555,9 @@ struct devlink_region *devlink_region_create(struct devlink *devlink, u64 region_size); void devlink_region_destroy(struct devlink_region *region); u32 devlink_region_shapshot_id_get(struct devlink *devlink); +int devlink_region_snapshot_create(struct devlink_region *region, u64 data_len, + u8 *data, u32 snapshot_id, + devlink_snapshot_data_dest_t *data_destructor); #else @@ -800,6 +805,14 @@ devlink_region_shapshot_id_get(struct devlink *devlink) return 0; } +static inline int +devlink_region_snapshot_create(struct devlink_region *region, u64 data_len, + u8 *data, u32 snapshot_id, + devlink_snapshot_data_dest_t *data_destructor) +{ + return 0; +} + #endif #endif /* _NET_DEVLINK_H_ */ |