diff options
Diffstat (limited to 'src/include/ipxe/uaccess.h')
-rw-r--r-- | src/include/ipxe/uaccess.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/include/ipxe/uaccess.h b/src/include/ipxe/uaccess.h index b574c31..95e9436 100644 --- a/src/include/ipxe/uaccess.h +++ b/src/include/ipxe/uaccess.h @@ -83,6 +83,18 @@ trivial_userptr_add ( userptr_t userptr, off_t offset ) { } /** + * Subtract user pointers + * + * @v userptr User pointer + * @v subtrahend User pointer to be subtracted + * @ret offset Offset + */ +static inline __always_inline off_t +trivial_userptr_sub ( userptr_t userptr, userptr_t subtrahend ) { + return ( userptr - subtrahend ); +} + +/** * Copy data between user buffers * * @v dest Destination @@ -240,6 +252,15 @@ void * user_to_virt ( userptr_t userptr, off_t offset ); userptr_t userptr_add ( userptr_t userptr, off_t offset ); /** + * Subtract user pointers + * + * @v userptr User pointer + * @v subtrahend User pointer to be subtracted + * @ret offset Offset + */ +off_t userptr_sub ( userptr_t userptr, userptr_t subtrahend ); + +/** * Convert virtual address to a physical address * * @v addr Virtual address |