diff options
Diffstat (limited to 'include/linux/objagg.h')
| -rw-r--r-- | include/linux/objagg.h | 21 | 
1 files changed, 19 insertions, 2 deletions
diff --git a/include/linux/objagg.h b/include/linux/objagg.h index 34f38c186ea0..78021777df46 100644 --- a/include/linux/objagg.h +++ b/include/linux/objagg.h @@ -6,14 +6,19 @@  struct objagg_ops {  	size_t obj_size; +	bool (*delta_check)(void *priv, const void *parent_obj, +			    const void *obj); +	int (*hints_obj_cmp)(const void *obj1, const void *obj2);  	void * (*delta_create)(void *priv, void *parent_obj, void *obj);  	void (*delta_destroy)(void *priv, void *delta_priv); -	void * (*root_create)(void *priv, void *obj); +	void * (*root_create)(void *priv, void *obj, unsigned int root_id); +#define OBJAGG_OBJ_ROOT_ID_INVALID UINT_MAX  	void (*root_destroy)(void *priv, void *root_priv);  };  struct objagg;  struct objagg_obj; +struct objagg_hints;  const void *objagg_obj_root_priv(const struct objagg_obj *objagg_obj);  const void *objagg_obj_delta_priv(const struct objagg_obj *objagg_obj); @@ -21,7 +26,8 @@ const void *objagg_obj_raw(const struct objagg_obj *objagg_obj);  struct objagg_obj *objagg_obj_get(struct objagg *objagg, void *obj);  void objagg_obj_put(struct objagg *objagg, struct objagg_obj *objagg_obj); -struct objagg *objagg_create(const struct objagg_ops *ops, void *priv); +struct objagg *objagg_create(const struct objagg_ops *ops, +			     struct objagg_hints *hints, void *priv);  void objagg_destroy(struct objagg *objagg);  struct objagg_obj_stats { @@ -36,6 +42,7 @@ struct objagg_obj_stats_info {  };  struct objagg_stats { +	unsigned int root_count;  	unsigned int stats_info_count;  	struct objagg_obj_stats_info stats_info[];  }; @@ -43,4 +50,14 @@ struct objagg_stats {  const struct objagg_stats *objagg_stats_get(struct objagg *objagg);  void objagg_stats_put(const struct objagg_stats *objagg_stats); +enum objagg_opt_algo_type { +	OBJAGG_OPT_ALGO_SIMPLE_GREEDY, +}; + +struct objagg_hints *objagg_hints_get(struct objagg *objagg, +				      enum objagg_opt_algo_type opt_algo_type); +void objagg_hints_put(struct objagg_hints *objagg_hints); +const struct objagg_stats * +objagg_hints_stats_get(struct objagg_hints *objagg_hints); +  #endif  |