diff --git a/arch/sim/src/sim/up_heap.c b/arch/sim/src/sim/up_heap.c index d05c746fe5..4ed5fd2c4b 100644 --- a/arch/sim/src/sim/up_heap.c +++ b/arch/sim/src/sim/up_heap.c @@ -148,8 +148,7 @@ FAR struct mm_heap_s *mm_initialize(FAR const char *name, #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MEMINFO) heap->mm_procfs.name = name; - heap->mm_procfs.mallinfo = (FAR void *)mm_mallinfo; - heap->mm_procfs.user_data = heap; + heap->mm_procfs.heap = heap; procfs_register_meminfo(&heap->mm_procfs); #endif diff --git a/fs/procfs/fs_procfsmeminfo.c b/fs/procfs/fs_procfsmeminfo.c index d15518fa15..c53f34e1f5 100644 --- a/fs/procfs/fs_procfsmeminfo.c +++ b/fs/procfs/fs_procfsmeminfo.c @@ -311,7 +311,7 @@ static ssize_t meminfo_read(FAR struct file *filep, FAR char *buffer, /* Show heap information */ - entry->mallinfo(entry->user_data, &minfo); + mm_mallinfo(entry->heap, &minfo); linesize = procfs_snprintf(procfile->line, MEMINFO_LINELEN, "%12s:%11lu%11lu%11lu%11lu%7lu%7lu\n", entry->name, @@ -476,7 +476,7 @@ static ssize_t memdump_write(FAR struct file *filep, FAR const char *buffer, for (entry = g_procfs_meminfo; entry != NULL; entry = entry->next) { - mm_memdump(entry->user_data, pid); + mm_memdump(entry->heap, pid); } return buflen; diff --git a/include/nuttx/fs/procfs.h b/include/nuttx/fs/procfs.h index b826560132..b68a2b7050 100644 --- a/include/nuttx/fs/procfs.h +++ b/include/nuttx/fs/procfs.h @@ -127,12 +127,11 @@ struct procfs_dir_priv_s /* An entry for procfs_register_meminfo */ +struct mm_heap_s; struct procfs_meminfo_entry_s { FAR const char *name; - CODE void (*mallinfo)(FAR void *user_data, FAR struct mallinfo *); - FAR void *user_data; - + FAR struct mm_heap_s *heap; struct procfs_meminfo_entry_s *next; }; diff --git a/mm/mm_heap/mm_initialize.c b/mm/mm_heap/mm_initialize.c index 5e8b52b775..d13c45cd3a 100644 --- a/mm/mm_heap/mm_initialize.c +++ b/mm/mm_heap/mm_initialize.c @@ -212,8 +212,7 @@ FAR struct mm_heap_s *mm_initialize(FAR const char *name, #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MEMINFO) #if defined(CONFIG_BUILD_FLAT) || defined(__KERNEL__) heap->mm_procfs.name = name; - heap->mm_procfs.mallinfo = (FAR void *)mm_mallinfo; - heap->mm_procfs.user_data = heap; + heap->mm_procfs.heap = heap; procfs_register_meminfo(&heap->mm_procfs); #endif #endif