Blame view

lib/linux_compat.c 1.07 KB
0c06db598   Heiko Schocher   lib, linux: move ...
1
2
  
  #include <common.h>
336d4615f   Simon Glass   dm: core: Create ...
3
  #include <malloc.h>
e3332e1a1   Masahiro Yamada   Make kmalloc'ed m...
4
  #include <memalign.h>
0c06db598   Heiko Schocher   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   Masahiro Yamada   linux_compat: han...
21
  	void *p;
0c06db598   Heiko Schocher   lib, linux: move ...
22

e3332e1a1   Masahiro Yamada   Make kmalloc'ed m...
23
  	p = malloc_cache_aligned(size);
2ad98ab8f   Marek Szyprowski   linux_compat: fix...
24
  	if (p && flags & __GFP_ZERO)
6b9f9eadf   Masahiro Yamada   linux_compat: han...
25
26
27
  		memset(p, 0, size);
  
  	return p;
0c06db598   Heiko Schocher   lib, linux: move ...
28
  }
0c06db598   Heiko Schocher   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   Masahiro Yamada   Make kmalloc'ed m...
41
  	return malloc_cache_aligned(obj->sz);
0c06db598   Heiko Schocher   lib, linux: move ...
42
  }
4839e8689   AKASHI Takahiro   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;
  }