#ifndef XMALLOC_H #define XMALLOC_H #include #include "built_in.h" #include "die.h" extern void *xmalloc(size_t size) __hidden __warn_unused_result; extern void *xcalloc(size_t nmemb, size_t size) __hidden __warn_unused_result; extern void *xzmalloc(size_t size) __hidden __warn_unused_result; extern void *xmallocz(size_t size) __hidden __warn_unused_result; extern void *xmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; extern void *xzmalloc_aligned(size_t size, size_t alignment) __hidden __warn_unused_result; extern void *xmemdupz(const void *data, size_t len) __hidden __warn_unused_result; extern void *xrealloc(void *ptr, size_t size) __hidden __warn_unused_result; extern void xfree_func(void *ptr) __hidden; extern char *xstrdup(const char *str) __hidden __warn_unused_result; extern char *xstrndup(const char *str, size_t size) __hidden __warn_unused_result; static inline void __xfree(void *ptr) { if (unlikely((ptr) == NULL)) panic("xfree: NULL pointer given as argument\n"); free(ptr); } #define xzfree(ptr, size) \ do { \ xmemset(ptr, 0, size); \ xfree(ptr); \ } while (0) #define xfree(ptr) \ do { \ __xfree(ptr); \ (ptr) = NULL; \ } while (0) #endif /* XMALLOC_H */ -loop-back net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
path: root/scripts/coccinelle/api
diff options
context:
space:
mode:
authorThierry Reding <thierry.reding@avionic-design.de>2013-01-21 11:08:54 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-22 09:41:43 -0800
commit75096579c3ac39ddc2f8b0d9a8924eba31f4d920 (patch)
tree15d50607ffc22358fdbf98ed61e0962c589779a9 /scripts/coccinelle/api
parent771d394fbd3af266c01813b40a82cec6c80af98d (diff)
lib: devres: Introduce devm_ioremap_resource()
The devm_request_and_ioremap() function is very useful and helps avoid a whole lot of boilerplate. However, one issue that keeps popping up is its lack of a specific error code to determine which of the steps that it performs failed. Furthermore, while the function gives an example and suggests what error code to return on failure, a wide variety of error codes are used throughout the tree. In an attempt to fix these problems, this patch adds a new function that drivers can transition to. The devm_ioremap_resource() returns a pointer to the remapped I/O memory on success or an ERR_PTR() encoded error code on failure. Callers can check for failure using IS_ERR() and determine its cause by extracting the error code using PTR_ERR(). devm_request_and_ioremap() is implemented as a wrapper around the new API and return NULL on failure as before. This ensures that backwards compatibility is maintained until all users have been converted to the new API, at which point the old devm_request_and_ioremap() function should be removed. A semantic patch is included which can be used to convert from the old devm_request_and_ioremap() API to the new devm_ioremap_resource() API. Some non-trivial cases may require manual intervention, though. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/coccinelle/api')