1 /* Public domain. */ 2 3 #ifndef _LINUX_SLAB_H 4 #define _LINUX_SLAB_H 5 6 #include <sys/types.h> 7 #include <sys/malloc.h> 8 9 #include <linux/types.h> 10 #include <linux/workqueue.h> 11 #include <linux/gfp.h> 12 13 #include <linux/processor.h> /* for CACHELINESIZE */ 14 15 static inline void * 16 kmalloc(size_t size, int flags) 17 { 18 return malloc(size, M_DRM, flags); 19 } 20 21 static inline void * 22 kmalloc_array(size_t n, size_t size, int flags) 23 { 24 if (n != 0 && SIZE_MAX / n < size) 25 return NULL; 26 return malloc(n * size, M_DRM, flags); 27 } 28 29 static inline void * 30 kcalloc(size_t n, size_t size, int flags) 31 { 32 if (n != 0 && SIZE_MAX / n < size) 33 return NULL; 34 return malloc(n * size, M_DRM, flags | M_ZERO); 35 } 36 37 static inline void * 38 kzalloc(size_t size, int flags) 39 { 40 return malloc(size, M_DRM, flags | M_ZERO); 41 } 42 43 static inline void 44 kfree(const void *objp) 45 { 46 free((void *)objp, M_DRM, 0); 47 } 48 49 #endif 50