am a4f88fdc: Merge "Document the mallinfo struct, add missing attributes."
# Via Elliott Hughes (1) and Gerrit Code Review (1)
* commit 'a4f88fdcf0e9be084d04048ad65671716298c3c2':
Document the mallinfo struct, add missing attributes.
diff --git a/libc/include/malloc.h b/libc/include/malloc.h
index ec21926..8875e54 100644
--- a/libc/include/malloc.h
+++ b/libc/include/malloc.h
@@ -27,30 +27,30 @@
__BEGIN_DECLS
-extern __mallocfunc void* malloc(size_t);
-extern __mallocfunc void* calloc(size_t, size_t);
-extern void* realloc(void *, size_t);
-extern void free(void *);
+extern void* malloc(size_t byte_count) __mallocfunc __wur;
+extern void* calloc(size_t item_count, size_t item_size) __mallocfunc __wur;
+extern void* realloc(void* p, size_t byte_count) __wur;
+extern void free(void* p);
-extern void* memalign(size_t alignment, size_t bytesize);
-extern size_t malloc_usable_size(void*);
+extern void* memalign(size_t alignment, size_t byte_count) __mallocfunc __wur;
+extern size_t malloc_usable_size(void* p);
-extern void* valloc(size_t bytesize);
-extern void* pvalloc(size_t bytesize);
+extern void* valloc(size_t byte_count) __mallocfunc __wur;
+extern void* pvalloc(size_t byte_count) __mallocfunc __wur;
#ifndef STRUCT_MALLINFO_DECLARED
#define STRUCT_MALLINFO_DECLARED 1
struct mallinfo {
- size_t arena;
- size_t ordblks;
- size_t smblks;
- size_t hblks;
- size_t hblkhd;
- size_t usmblks;
- size_t fsmblks;
- size_t uordblks;
- size_t fordblks;
- size_t keepcost;
+ size_t arena; /* Total number of non-mmapped bytes currently allocated from OS. */
+ size_t ordblks; /* Number of free chunks. */
+ size_t smblks; /* (Unused.) */
+ size_t hblks; /* (Unused.) */
+ size_t hblkhd; /* Total number of bytes in mmapped regions. */
+ size_t usmblks; /* Maximum total allocated space; greater than total if trimming has occurred. */
+ size_t fsmblks; /* (Unused.) */
+ size_t uordblks; /* Total allocated space (normal or mmapped.) */
+ size_t fordblks; /* Total free space. */
+ size_t keepcost; /* Upper bound on number of bytes releasable by malloc_trim. */
};
#endif /* STRUCT_MALLINFO_DECLARED */
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index 937abe0..aa65b54 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -321,6 +321,12 @@
#define __always_inline
#endif
+#if __GNUC_PREREQ__(3, 4)
+#define __wur __attribute__((__warn_unused_result__))
+#else
+#define __wur
+#endif
+
/*
* Macros for manipulating "link sets". Link sets are arrays of pointers
* to objects, which are gathered up by the linker.