summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2015-04-07 14:47:27 +0000
committerpfg <pfg@FreeBSD.org>2015-04-07 14:47:27 +0000
commitae235f94bd8e004d0501d67e87e1486b2df2c971 (patch)
tree500a86a3586b227b895efe3a5249e87715d71eb9
parent05cd62f67a272e7af362fe52c5f41a0f86bbd7df (diff)
downloadFreeBSD-src-ae235f94bd8e004d0501d67e87e1486b2df2c971.zip
FreeBSD-src-ae235f94bd8e004d0501d67e87e1486b2df2c971.tar.gz
Make use of allocation attributes in system headers.
Start using 'alloc_size' attribute in the allocator functions. This is useful as it helps the compiler generate warnings on suspicious code and can also enable some small optimizations. This is based on r281130, which brought similar enhnacements to the standard libc headers.
-rw-r--r--sys/sys/malloc.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/sys/malloc.h b/sys/sys/malloc.h
index dcb4290..6b8a9c0 100644
--- a/sys/sys/malloc.h
+++ b/sys/sys/malloc.h
@@ -173,9 +173,11 @@ typedef void malloc_type_list_func_t(struct malloc_type *, void *);
void contigfree(void *addr, unsigned long size, struct malloc_type *type);
void *contigmalloc(unsigned long size, struct malloc_type *type, int flags,
vm_paddr_t low, vm_paddr_t high, unsigned long alignment,
- vm_paddr_t boundary) __malloc_like;
+ vm_paddr_t boundary) __malloc_like __result_use_check
+ __alloc_size(1);
void free(void *addr, struct malloc_type *type);
-void *malloc(unsigned long size, struct malloc_type *type, int flags) __malloc_like;
+void *malloc(unsigned long size, struct malloc_type *type, int flags)
+ __malloc_like __result_use_check __alloc_size(1);
void malloc_init(void *);
int malloc_last_fail(void);
void malloc_type_allocated(struct malloc_type *type, unsigned long size);
@@ -183,9 +185,9 @@ void malloc_type_freed(struct malloc_type *type, unsigned long size);
void malloc_type_list(malloc_type_list_func_t *, void *);
void malloc_uninit(void *);
void *realloc(void *addr, unsigned long size, struct malloc_type *type,
- int flags);
+ int flags) __result_use_check __alloc_size(2);
void *reallocf(void *addr, unsigned long size, struct malloc_type *type,
- int flags);
+ int flags) __alloc_size(2);
struct malloc_type *malloc_desc2type(const char *desc);
#endif /* _KERNEL */
OpenPOWER on IntegriCloud