This is an automated email from the ASF dual-hosted git repository. davids5 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 929e4380528803ba1e1c4464a53e1d49bbc7de26 Author: YAMAMOTO Takashi <[email protected]> AuthorDate: Fri Feb 12 14:10:07 2021 +0900 procfs: Use procfs_register_meminfo for "Kmem" --- fs/procfs/fs_procfsmeminfo.c | 23 ----------------------- mm/kmm_heap/kmm_initialize.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/fs/procfs/fs_procfsmeminfo.c b/fs/procfs/fs_procfsmeminfo.c index f89cc45..67d0724 100644 --- a/fs/procfs/fs_procfsmeminfo.c +++ b/fs/procfs/fs_procfsmeminfo.c @@ -319,29 +319,6 @@ static ssize_t meminfo_read(FAR struct file *filep, FAR char *buffer, } } -#ifdef CONFIG_MM_KERNEL_HEAP - if (totalsize < buflen) - { - struct mallinfo mem; - - buffer += copysize; - buflen -= copysize; - - /* Show kernel heap information */ - - mem = kmm_mallinfo(); - linesize = snprintf(procfile->line, MEMINFO_LINELEN, - "Kmem: %11lu%11lu%11lu%11lu\n", - (unsigned long)mem.arena, - (unsigned long)mem.uordblks, - (unsigned long)mem.fordblks, - (unsigned long)mem.mxordblk); - copysize = procfs_memcpy(procfile->line, linesize, buffer, buflen, - &offset); - totalsize += copysize; - } -#endif - #ifdef CONFIG_MM_PGALLOC if (totalsize < buflen) { diff --git a/mm/kmm_heap/kmm_initialize.c b/mm/kmm_heap/kmm_initialize.c index 1e1daef..7ff5f66 100644 --- a/mm/kmm_heap/kmm_initialize.c +++ b/mm/kmm_heap/kmm_initialize.c @@ -24,6 +24,7 @@ #include <nuttx/config.h> +#include <nuttx/fs/procfs.h> #include <nuttx/mm/mm.h> #ifdef CONFIG_MM_KERNEL_HEAP @@ -58,7 +59,16 @@ struct mm_heap_s g_kmmheap; void kmm_initialize(FAR void *heap_start, size_t heap_size) { - return mm_initialize(&g_kmmheap, heap_start, heap_size); + mm_initialize(&g_kmmheap, heap_start, heap_size); + +#if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MEMINFO) + static struct procfs_meminfo_entry_s g_kmm_procfs; + + g_kmm_procfs.name = "Kmem"; + g_kmm_procfs.mallinfo = (void *)mm_mallinfo; + g_kmm_procfs.user_data = &g_kmmheap; + procfs_register_meminfo(&g_kmm_procfs); +#endif } #endif /* CONFIG_MM_KERNEL_HEAP */
