1// syscall_args.h 2 3#ifndef _SYSCALL_ARGS_H 4#define _SYSCALL_ARGS_H 5 6#include <kernel.h> 7 8 9// copy_ref_var_from_user 10template<typename T> 11inline 12status_t 13copy_ref_var_from_user(T *user, T &kernel) 14{ 15 if (!IS_USER_ADDRESS(user)) 16 return B_BAD_ADDRESS; 17 return user_memcpy(&kernel, user, sizeof(T)); 18} 19 20// copy_ref_var_to_user 21template<typename T> 22inline 23status_t 24copy_ref_var_to_user(T &kernel, T *user) 25{ 26 if (!IS_USER_ADDRESS(user)) 27 return B_BAD_ADDRESS; 28 return user_memcpy(user, &kernel, sizeof(T)); 29} 30 31 32#endif // _SYSCALL_ARGS_H 33