10c06db59SHeiko Schocher
20c06db59SHeiko Schocher #include <common.h>
30c06db59SHeiko Schocher #include <linux/compat.h>
40c06db59SHeiko Schocher
50c06db59SHeiko Schocher struct p_current cur = {
60c06db59SHeiko Schocher .pid = 1,
70c06db59SHeiko Schocher };
80c06db59SHeiko Schocher __maybe_unused struct p_current *current = &cur;
90c06db59SHeiko Schocher
copy_from_user(void * dest,const void * src,unsigned long count)100c06db59SHeiko Schocher unsigned long copy_from_user(void *dest, const void *src,
110c06db59SHeiko Schocher unsigned long count)
120c06db59SHeiko Schocher {
130c06db59SHeiko Schocher memcpy((void *)dest, (void *)src, count);
140c06db59SHeiko Schocher return 0;
150c06db59SHeiko Schocher }
160c06db59SHeiko Schocher
kmalloc(size_t size,int flags)170c06db59SHeiko Schocher void *kmalloc(size_t size, int flags)
180c06db59SHeiko Schocher {
19*6b9f9eadSMasahiro Yamada void *p;
200c06db59SHeiko Schocher
21*6b9f9eadSMasahiro Yamada p = memalign(ARCH_DMA_MINALIGN, size);
22*6b9f9eadSMasahiro Yamada if (flags & __GFP_ZERO)
23*6b9f9eadSMasahiro Yamada memset(p, 0, size);
24*6b9f9eadSMasahiro Yamada
25*6b9f9eadSMasahiro Yamada return p;
260c06db59SHeiko Schocher }
270c06db59SHeiko Schocher
get_mem(int element_sz)280c06db59SHeiko Schocher struct kmem_cache *get_mem(int element_sz)
290c06db59SHeiko Schocher {
300c06db59SHeiko Schocher struct kmem_cache *ret;
310c06db59SHeiko Schocher
320c06db59SHeiko Schocher ret = memalign(ARCH_DMA_MINALIGN, sizeof(struct kmem_cache));
330c06db59SHeiko Schocher ret->sz = element_sz;
340c06db59SHeiko Schocher
350c06db59SHeiko Schocher return ret;
360c06db59SHeiko Schocher }
370c06db59SHeiko Schocher
kmem_cache_alloc(struct kmem_cache * obj,int flag)380c06db59SHeiko Schocher void *kmem_cache_alloc(struct kmem_cache *obj, int flag)
390c06db59SHeiko Schocher {
400c06db59SHeiko Schocher return memalign(ARCH_DMA_MINALIGN, obj->sz);
410c06db59SHeiko Schocher }
42