Blame view
lib/linux_compat.c
1.07 KB
0c06db598
|
1 2 |
#include <common.h> |
336d4615f
|
3 |
#include <malloc.h> |
e3332e1a1
|
4 |
#include <memalign.h> |
0c06db598
|
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <linux/compat.h> struct p_current cur = { .pid = 1, }; __maybe_unused struct p_current *current = &cur; unsigned long copy_from_user(void *dest, const void *src, unsigned long count) { memcpy((void *)dest, (void *)src, count); return 0; } void *kmalloc(size_t size, int flags) { |
6b9f9eadf
|
21 |
void *p; |
0c06db598
|
22 |
|
e3332e1a1
|
23 |
p = malloc_cache_aligned(size); |
2ad98ab8f
|
24 |
if (p && flags & __GFP_ZERO) |
6b9f9eadf
|
25 26 27 |
memset(p, 0, size); return p; |
0c06db598
|
28 |
} |
0c06db598
|
29 30 31 32 33 34 35 36 37 38 39 40 |
struct kmem_cache *get_mem(int element_sz) { struct kmem_cache *ret; ret = memalign(ARCH_DMA_MINALIGN, sizeof(struct kmem_cache)); ret->sz = element_sz; return ret; } void *kmem_cache_alloc(struct kmem_cache *obj, int flag) { |
e3332e1a1
|
41 |
return malloc_cache_aligned(obj->sz); |
0c06db598
|
42 |
} |
4839e8689
|
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/** * kmemdup - duplicate region of memory * * @src: memory region to duplicate * @len: memory region length * @gfp: GFP mask to use * * Return: newly allocated copy of @src or %NULL in case of error */ void *kmemdup(const void *src, size_t len, gfp_t gfp) { void *p; p = kmalloc(len, gfp); if (p) memcpy(p, src, len); return p; } |