struct mallinfo mallinfo(void) { struct mallinfo info; mm_mallinfo(&g_mmheap, &info); return info; }
static ssize_t ccm_read(FAR struct file *filep, FAR char *buffer, size_t buflen) { FAR struct ccm_file_s *priv; ssize_t ret = 0; size_t linesize; size_t copysize; size_t remaining; size_t totalsize; struct mallinfo mem; off_t offset = filep->f_pos; fvdbg("buffer=%p buflen=%d\n", buffer, (int)buflen); /* Recover our private data from the struct file instance */ priv = (FAR struct ccm_file_s *)filep->f_priv; DEBUGASSERT(priv); mm_mallinfo(&g_ccm_heap, &mem); remaining = buflen; totalsize = 0; linesize = snprintf(priv->line, CCM_LINELEN, " total used free largest\n"); copysize = procfs_memcpy(priv->line, linesize, buffer, remaining, &offset); totalsize += copysize; buffer += copysize; remaining -= copysize; if (totalsize >= buflen) { return totalsize; } linesize = snprintf(priv->line, CCM_LINELEN, "Mem: %11d%11d%11d%11d\n", mem.arena, mem.uordblks, mem.fordblks, mem.mxordblk); copysize = procfs_memcpy(priv->line, linesize, buffer, remaining, &offset); totalsize += copysize; /* Update the file offset */ if (totalsize > 0) { filep->f_pos += totalsize; } return totalsize; }
void print_user_heap_mallinfo(void) { struct mallinfo info; mm_mallinfo(&g_mmheap_user, &info); trace(": %db used (%%%d) out of %db\n", info.uordblks, info.uordblks * 100 / info.arena, info.arena); }
int kmm_mallinfo(struct mallinfo *info) { return mm_mallinfo(&g_kmmheap, info); }
int mallinfo(struct mallinfo *info) { return mm_mallinfo(USR_HEAP, info); }
struct mallinfo mallinfo(void) { struct mallinfo info; mm_mallinfo(USR_HEAP, &info); return info; }