summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/uaccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/ipxe/uaccess.h')
-rw-r--r--src/include/ipxe/uaccess.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/include/ipxe/uaccess.h b/src/include/ipxe/uaccess.h
index 95e943675..055bb2ca7 100644
--- a/src/include/ipxe/uaccess.h
+++ b/src/include/ipxe/uaccess.h
@@ -127,6 +127,23 @@ trivial_memmove_user ( userptr_t dest, off_t dest_off,
}
/**
+ * Compare data between user buffers
+ *
+ * @v first First buffer
+ * @v first_off First buffer offset
+ * @v second Second buffer
+ * @v second_off Second buffer offset
+ * @v len Length
+ * @ret diff Difference
+ */
+static inline __always_inline int
+trivial_memcmp_user ( userptr_t first, off_t first_off,
+ userptr_t second, off_t second_off, size_t len ) {
+ return memcmp ( ( ( void * ) first + first_off ),
+ ( ( void * ) second + second_off ), len );
+}
+
+/**
* Fill user buffer with a constant byte
*
* @v buffer User buffer
@@ -334,6 +351,19 @@ void memmove_user ( userptr_t dest, off_t dest_off,
userptr_t src, off_t src_off, size_t len );
/**
+ * Compare data between user buffers
+ *
+ * @v first First buffer
+ * @v first_off First buffer offset
+ * @v second Second buffer
+ * @v second_off Second buffer offset
+ * @v len Length
+ * @ret diff Difference
+ */
+int memcmp_user ( userptr_t first, off_t first_off,
+ userptr_t second, off_t second_off, size_t len );
+
+/**
* Fill user buffer with a constant byte
*
* @v userptr User buffer