struct pool_registration {
struct list list; /* link element */
const char *name; /* name of the pool */
+ const char *file; /* where the pool is declared */
+ unsigned int line; /* line in the file where the pool is declared, 0 if none */
unsigned int size; /* expected object size */
unsigned int flags; /* MEM_F_* */
unsigned int align; /* expected alignment; 0=unspecified */
#define __REGISTER_POOL(_line, _ptr, _name, _size) \
static struct pool_registration __pool_reg_##_line = { \
.name = _name, \
+ .file = __FILE__, \
+ .line = __LINE__, \
.size = _size, \
.flags = MEM_F_STATREG, \
.align = 0, \
if (detailed) {
struct pool_registration *reg;
- list_for_each_entry(reg, &pool_info[i].entry->regs, list)
- chunk_appendf(&trash, " > %-12s: size=%u flags=%#x align=%u\n", reg->name, reg->size, reg->flags, reg->align);
+ list_for_each_entry(reg, &pool_info[i].entry->regs, list) {
+ chunk_appendf(&trash, " > %-12s: size=%u flags=%#x align=%u", reg->name, reg->size, reg->flags, reg->align);
+ if (reg->file && reg->line)
+ chunk_appendf(&trash, " [%s:%u]", reg->file, reg->line);
+ chunk_appendf(&trash, "\n");
+ }
}
}