Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linuxkpi/common/include/linux/uaccess.h
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | |||||
} while (0) | } while (0) | ||||
static inline bool | static inline bool | ||||
pagefault_disabled(void) | pagefault_disabled(void) | ||||
{ | { | ||||
return ((curthread->td_pflags & TDP_NOFAULTING) != 0); | return ((curthread->td_pflags & TDP_NOFAULTING) != 0); | ||||
} | } | ||||
static inline int | |||||
__copy_to_user_inatomic(void __user *to, const void *from, unsigned n) | |||||
{ | |||||
return (copyout_nofault(from, to, n) != 0 ? n : 0); | |||||
} | |||||
#define __copy_to_user_inatomic_nocache(to, from, n) \ | |||||
__copy_to_user_inatomic((to), (from), (n)) | |||||
static inline unsigned long | |||||
__copy_from_user_inatomic(void *to, const void __user *from, | |||||
unsigned long n) | |||||
{ | |||||
/* | |||||
* XXXKIB. Equivalent Linux function is implemented using | |||||
* MOVNTI for aligned moves. For unaligned head and tail, | |||||
* normal move is performed. As such, it is not incorrect, if | |||||
* only somewhat slower, to use normal copyin. All uses | |||||
* except shmem_pwrite_fast() have the destination mapped WC. | |||||
*/ | |||||
return ((copyin_nofault(__DECONST(void *, from), to, n) != 0 ? n : 0)); | |||||
} | |||||
#define __copy_from_user_inatomic_nocache(to, from, n) \ | |||||
__copy_from_user_inatomic((to), (from), (n)) | |||||
#endif /* _LINUXKPI_LINUX_UACCESS_H_ */ | #endif /* _LINUXKPI_LINUX_UACCESS_H_ */ |