]> git.buserror.net Git - polintos/scott/priv.git/blob - kernel/include/arch-x86/usercopy.h
f220cd9963867b43e76b5e356b7a8bc338bfcb00
[polintos/scott/priv.git] / kernel / include / arch-x86 / usercopy.h
1 #ifndef _ARCH_USERCOPY_H
2 #define _ARCH_USERCOPY_H
3
4 #include <kern/types.h>
5 #include <kern/libc.h>
6
7 namespace Arch {
8         template <typename T>
9         static inline T copyin(T *ptr)
10         {
11                 // FIXME
12                 return *ptr;
13         }
14
15         template <typename T>
16         static inline void copyin(T *ptr, T &data)
17         {
18                 // FIXME
19                 data = *ptr;
20         }
21         
22         template <typename T>
23         static inline void copyin(T *ptr, T *data, int count)
24         {
25                 // FIXME
26                 memcpy(data, ptr, count * sizeof(T));
27         }
28
29         template <typename T>
30         static inline void copyout(T *ptr, T &data)
31         {
32                 // FIXME
33                 *ptr = data;
34         }
35
36         template <typename T>
37         static inline void copyout(T *ptr, T *data, int count)
38         {
39                 // FIXME
40                 memcpy(ptr, data, count * sizeof(T));
41         }
42 }
43
44 #endif