Blame view
lib/linux_compat.c
1.07 KB
0c06db598 lib, linux: move ... |
1 2 |
#include <common.h> |
336d4615f dm: core: Create ... |
3 |
#include <malloc.h> |
e3332e1a1 Make kmalloc'ed m... |
4 |
#include <memalign.h> |
0c06db598 lib, linux: move ... |
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 linux_compat: han... |
21 |
void *p; |
0c06db598 lib, linux: move ... |
22 |
|
e3332e1a1 Make kmalloc'ed m... |
23 |
p = malloc_cache_aligned(size); |
2ad98ab8f linux_compat: fix... |
24 |
if (p && flags & __GFP_ZERO) |
6b9f9eadf linux_compat: han... |
25 26 27 |
memset(p, 0, size); return p; |
0c06db598 lib, linux: move ... |
28 |
} |
0c06db598 lib, linux: move ... |
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 Make kmalloc'ed m... |
41 |
return malloc_cache_aligned(obj->sz); |
0c06db598 lib, linux: move ... |
42 |
} |
4839e8689 linux_compat: mov... |
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; } |