aboutsummaryrefslogtreecommitdiff
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.h21
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