diff options
Diffstat (limited to 'src/include/ipxe/uaccess.h')
| -rw-r--r-- | src/include/ipxe/uaccess.h | 30 |
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 |
