uaccess: add probe_kernel_write()
[sfrench/cifs-2.6.git] / include / linux / uaccess.h
index 975c963e57898aee95fed95e129bd91a1578a414..fec6decfb983503ec8ae24bafa793f09b5f902b2 100644 (file)
@@ -84,4 +84,26 @@ static inline unsigned long __copy_from_user_nocache(void *to,
                ret;                                    \
        })
 
                ret;                                    \
        })
 
+/*
+ * probe_kernel_read(): safely attempt to read from a location
+ * @dst: pointer to the buffer that shall take the data
+ * @src: address to read from
+ * @size: size of the data chunk
+ *
+ * Safely read from address @src to the buffer at @dst.  If a kernel fault
+ * happens, handle that and return -EFAULT.
+ */
+extern long probe_kernel_read(void *dst, void *src, size_t size);
+
+/*
+ * probe_kernel_write(): safely attempt to write to a location
+ * @dst: address to write to
+ * @src: pointer to the data that shall be written
+ * @size: size of the data chunk
+ *
+ * Safely write to address @dst from the buffer at @src.  If a kernel fault
+ * happens, handle that and return -EFAULT.
+ */
+extern long probe_kernel_write(void *dst, void *src, size_t size);
+
 #endif         /* __LINUX_UACCESS_H__ */
 #endif         /* __LINUX_UACCESS_H__ */