#include <errno.h>
#endif
-#ifdef HAVE_SYS_SYSCTL_H
-#include <sys/sysctl.h>
-#endif
-
#include "e2fsck.h"
extern e2fsck_t e2fsck_global_ctx; /* Try your very best not to use this! */
char buf[256];
#ifdef DEBUG_ALLOCATE_MEMORY
- printf("Allocating %u bytes for %s...\n", size, description);
+ printf("Allocating %lu bytes for %s...\n", size, description);
#endif
if (ext2fs_get_memzero(size, &ret)) {
sprintf(buf, "Can't allocate %lu bytes for %s\n",
log_out(ctx, "%s: ", desc);
#define kbytes(x) (((unsigned long long)(x) + 1023) / 1024)
-#ifdef HAVE_MALLINFO
+#ifdef HAVE_MALLINFO2
+ if (1) {
+ struct mallinfo2 malloc_info = mallinfo2();
+
+ log_out(ctx, _("Memory used: %lluk/%lluk (%lluk/%lluk), "),
+ kbytes(malloc_info.arena), kbytes(malloc_info.hblkhd),
+ kbytes(malloc_info.uordblks),
+ kbytes(malloc_info.fordblks));
+ } else
+#elif defined HAVE_MALLINFO
/* don't use mallinfo() if over 2GB used, since it returns "int" */
if ((char *)sbrk(0) - (char *)track->brk_start < 2LL << 30) {
struct mallinfo malloc_info = mallinfo();
mmp->mmp_check_interval);
printf(" mmp_sequence: %08x\n", mmp->mmp_seq);
printf(" mmp_update_date: %s", ctime(&t));
- printf(" mmp_update_time: %lld\n", mmp->mmp_time);
+ printf(" mmp_update_time: %lld\n",
+ (long long) mmp->mmp_time);
printf(" mmp_node_name: %.*s\n",
EXT2_LEN_STR(mmp->mmp_nodename));
printf(" mmp_device_name: %.*s\n",
# elif defined(CTL_HW_UINT)
unsigned int size = 0;
# endif
-# if defined(CTL_HW_INT64) || defined(CTL_HW_UINT)
- size_t len = sizeof(size);
-
- if (sysctl(mib, 2, &size, &len, NULL, 0) == 0)
- return (unsigned long long)size;
-# endif
return 0;
#else
# warning "Don't know how to detect memory on your platform?"