xref: /openbsd/sys/dev/pci/drm/include/linux/slab.h (revision f005ef32)
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 #define ARCH_KMALLOC_MINALIGN CACHELINESIZE
16 
17 #define ZERO_SIZE_PTR		NULL
18 #define ZERO_OR_NULL_PTR(x)	((x) == NULL)
19 
20 static inline void *
kmalloc(size_t size,int flags)21 kmalloc(size_t size, int flags)
22 {
23 	return malloc(size, M_DRM, flags);
24 }
25 
26 static inline void *
kmalloc_array(size_t n,size_t size,int flags)27 kmalloc_array(size_t n, size_t size, int flags)
28 {
29 	if (n != 0 && SIZE_MAX / n < size)
30 		return NULL;
31 	return malloc(n * size, M_DRM, flags);
32 }
33 
34 static inline void *
kcalloc(size_t n,size_t size,int flags)35 kcalloc(size_t n, size_t size, int flags)
36 {
37 	if (n != 0 && SIZE_MAX / n < size)
38 		return NULL;
39 	return malloc(n * size, M_DRM, flags | M_ZERO);
40 }
41 
42 static inline void *
kzalloc(size_t size,int flags)43 kzalloc(size_t size, int flags)
44 {
45 	return malloc(size, M_DRM, flags | M_ZERO);
46 }
47 
48 static inline void
kfree(const void * objp)49 kfree(const void *objp)
50 {
51 	free((void *)objp, M_DRM, 0);
52 }
53 
54 #endif
55