Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Apr 2015 14:47:27 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r281203 - head/sys/sys
Message-ID:  <201504071447.t37ElRIK068453@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Tue Apr  7 14:47:27 2015
New Revision: 281203
URL: https://svnweb.freebsd.org/changeset/base/281203

Log:
  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.

Modified:
  head/sys/sys/malloc.h

Modified: head/sys/sys/malloc.h
==============================================================================
--- head/sys/sys/malloc.h	Tue Apr  7 14:33:03 2015	(r281202)
+++ head/sys/sys/malloc.h	Tue Apr  7 14:47:27 2015	(r281203)
@@ -173,9 +173,11 @@ typedef void malloc_type_list_func_t(str
 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_typ
 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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504071447.t37ElRIK068453>