|
@@ -46,6 +46,8 @@ struct debug_obj {
|
|
* fails
|
|
* fails
|
|
* @fixup_free: fixup function, which is called when the free check
|
|
* @fixup_free: fixup function, which is called when the free check
|
|
* fails
|
|
* fails
|
|
|
|
+ * @fixup_assert_init: fixup function, which is called when the assert_init
|
|
|
|
+ * check fails
|
|
*/
|
|
*/
|
|
struct debug_obj_descr {
|
|
struct debug_obj_descr {
|
|
const char *name;
|
|
const char *name;
|
|
@@ -54,6 +56,7 @@ struct debug_obj_descr {
|
|
int (*fixup_activate) (void *addr, enum debug_obj_state state);
|
|
int (*fixup_activate) (void *addr, enum debug_obj_state state);
|
|
int (*fixup_destroy) (void *addr, enum debug_obj_state state);
|
|
int (*fixup_destroy) (void *addr, enum debug_obj_state state);
|
|
int (*fixup_free) (void *addr, enum debug_obj_state state);
|
|
int (*fixup_free) (void *addr, enum debug_obj_state state);
|
|
|
|
+ int (*fixup_assert_init)(void *addr, enum debug_obj_state state);
|
|
};
|
|
};
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_OBJECTS
|
|
#ifdef CONFIG_DEBUG_OBJECTS
|
|
@@ -64,6 +67,7 @@ extern void debug_object_activate (void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
|
|
extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
|
|
|
|
+extern void debug_object_assert_init(void *addr, struct debug_obj_descr *descr);
|
|
|
|
|
|
/*
|
|
/*
|
|
* Active state:
|
|
* Active state:
|
|
@@ -89,6 +93,8 @@ static inline void
|
|
debug_object_destroy (void *addr, struct debug_obj_descr *descr) { }
|
|
debug_object_destroy (void *addr, struct debug_obj_descr *descr) { }
|
|
static inline void
|
|
static inline void
|
|
debug_object_free (void *addr, struct debug_obj_descr *descr) { }
|
|
debug_object_free (void *addr, struct debug_obj_descr *descr) { }
|
|
|
|
+static inline void
|
|
|
|
+debug_object_assert_init(void *addr, struct debug_obj_descr *descr) { }
|
|
|
|
|
|
static inline void debug_objects_early_init(void) { }
|
|
static inline void debug_objects_early_init(void) { }
|
|
static inline void debug_objects_mem_init(void) { }
|
|
static inline void debug_objects_mem_init(void) { }
|