]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[uaccess] Rename userptr_sub() to userptr_diff()
authorMichael Brown <mcb30@ipxe.org>
Sun, 20 Apr 2025 16:18:06 +0000 (17:18 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sun, 20 Apr 2025 16:20:30 +0000 (17:20 +0100)
Clarify the intended usage of userptr_sub() by renaming it to
userptr_diff() (to avoid confusion with userptr_add()), and fix the
existing call sites that erroneously use userptr_sub() to subtract an
offset from a userptr_t value.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/image/bzimage.c
src/arch/x86/image/initrd.c
src/arch/x86/include/librm.h
src/include/ipxe/linux/linux_uaccess.h
src/include/ipxe/uaccess.h

index d2534bdaddce14cdb671024a66be0df75be330e9..b4a78cdfced0ed0f411b6f21d19887ac987c9506 100644 (file)
@@ -476,7 +476,7 @@ static void bzimage_load_initrds ( struct image *image,
        /* Find highest initrd */
        for_each_image ( initrd ) {
                if ( ( highest == NULL ) ||
-                    ( userptr_sub ( initrd->data, highest->data ) > 0 ) ) {
+                    ( userptr_diff ( initrd->data, highest->data ) > 0 ) ) {
                        highest = initrd;
                }
        }
index d7b1f57738de8e32a6b5e9b3394aeeeb7c997881..c0a56b7f6a2c1bb04614ea00efd18ed595ed090d 100644 (file)
@@ -61,10 +61,10 @@ static userptr_t initrd_squash_high ( userptr_t top ) {
                /* Find the highest image not yet in its final position */
                highest = NULL;
                for_each_image ( initrd ) {
-                       if ( ( userptr_sub ( initrd->data, current ) < 0 ) &&
+                       if ( ( userptr_diff ( initrd->data, current ) < 0 ) &&
                             ( ( highest == NULL ) ||
-                              ( userptr_sub ( initrd->data,
-                                              highest->data ) > 0 ) ) ) {
+                              ( userptr_diff ( initrd->data,
+                                               highest->data ) > 0 ) ) ) {
                                highest = initrd;
                        }
                }
@@ -74,7 +74,7 @@ static userptr_t initrd_squash_high ( userptr_t top ) {
                /* Move this image to its final position */
                len = ( ( highest->len + INITRD_ALIGN - 1 ) &
                        ~( INITRD_ALIGN - 1 ) );
-               current = userptr_sub ( current, len );
+               current = userptr_add ( current, -len );
                DBGC ( &images, "INITRD squashing %s [%#08lx,%#08lx)->"
                       "[%#08lx,%#08lx)\n", highest->name,
                       user_to_phys ( highest->data, 0 ),
@@ -87,10 +87,10 @@ static userptr_t initrd_squash_high ( userptr_t top ) {
 
        /* Copy any remaining initrds (e.g. embedded images) to the region */
        for_each_image ( initrd ) {
-               if ( userptr_sub ( initrd->data, top ) >= 0 ) {
+               if ( userptr_diff ( initrd->data, top ) >= 0 ) {
                        len = ( ( initrd->len + INITRD_ALIGN - 1 ) &
                                ~( INITRD_ALIGN - 1 ) );
-                       current = userptr_sub ( current, len );
+                       current = userptr_add ( current, -len );
                        DBGC ( &images, "INITRD copying %s [%#08lx,%#08lx)->"
                               "[%#08lx,%#08lx)\n", initrd->name,
                               user_to_phys ( initrd->data, 0 ),
@@ -235,7 +235,7 @@ void initrd_reshuffle ( userptr_t bottom ) {
 
        /* Calculate limits of available space for initrds */
        top = initrd_top;
-       if ( userptr_sub ( initrd_bottom, bottom ) > 0 )
+       if ( userptr_diff ( initrd_bottom, bottom ) > 0 )
                bottom = initrd_bottom;
 
        /* Debug */
@@ -248,7 +248,7 @@ void initrd_reshuffle ( userptr_t bottom ) {
 
        /* Calculate available free space */
        free = bottom;
-       free_len = userptr_sub ( used, free );
+       free_len = userptr_diff ( used, free );
 
        /* Bubble-sort initrds into desired order */
        while ( initrd_swap_any ( free, free_len ) ) {}
@@ -270,9 +270,9 @@ int initrd_reshuffle_check ( size_t len, userptr_t bottom ) {
 
        /* Calculate limits of available space for initrds */
        top = initrd_top;
-       if ( userptr_sub ( initrd_bottom, bottom ) > 0 )
+       if ( userptr_diff ( initrd_bottom, bottom ) > 0 )
                bottom = initrd_bottom;
-       available = userptr_sub ( top, bottom );
+       available = userptr_diff ( top, bottom );
 
        /* Allow for a sensible minimum amount of free space */
        len += INITRD_MIN_FREE_LEN;
index 84b345d3aad69420e057a83d895f8d764db07175..c664bff2c24d5bfeed5015546186f3b797324cd0 100644 (file)
@@ -143,9 +143,9 @@ UACCESS_INLINE ( librm, userptr_add ) ( userptr_t userptr, off_t offset ) {
 }
 
 static inline __always_inline off_t
-UACCESS_INLINE ( librm, userptr_sub ) ( userptr_t userptr,
-                                       userptr_t subtrahend ) {
-       return trivial_userptr_sub ( userptr, subtrahend );
+UACCESS_INLINE ( librm, userptr_diff ) ( userptr_t userptr,
+                                        userptr_t subtrahend ) {
+       return trivial_userptr_diff ( userptr, subtrahend );
 }
 
 static inline __always_inline void
index a642b61631e11b602b557a87935121ae438fc312..b29aa14bdaaee557031bda2cddab4607eec7d21b 100644 (file)
@@ -75,9 +75,9 @@ UACCESS_INLINE ( linux, userptr_add ) ( userptr_t userptr, off_t offset ) {
 }
 
 static inline __always_inline off_t
-UACCESS_INLINE ( linux, userptr_sub ) ( userptr_t userptr,
-                                       userptr_t subtrahend ) {
-       return trivial_userptr_sub ( userptr, subtrahend );
+UACCESS_INLINE ( linux, userptr_diff ) ( userptr_t userptr,
+                                        userptr_t subtrahend ) {
+       return trivial_userptr_diff ( userptr, subtrahend );
 }
 
 static inline __always_inline void
index b71361cab1236da7adeb2b55e471e1db2d451905..2575faca5ea1cfb2cec9faf93f472efcd7b00883 100644 (file)
@@ -96,7 +96,7 @@ trivial_userptr_add ( userptr_t userptr, off_t offset ) {
  * @ret offset         Offset
  */
 static inline __always_inline off_t
-trivial_userptr_sub ( userptr_t userptr, userptr_t subtrahend ) {
+trivial_userptr_diff ( userptr_t userptr, userptr_t subtrahend ) {
        return ( userptr - subtrahend );
 }
 
@@ -248,9 +248,9 @@ UACCESS_INLINE ( flat, userptr_add ) ( userptr_t userptr, off_t offset ) {
 }
 
 static inline __always_inline off_t
-UACCESS_INLINE ( flat, userptr_sub ) ( userptr_t userptr,
-                                      userptr_t subtrahend ) {
-       return trivial_userptr_sub ( userptr, subtrahend );
+UACCESS_INLINE ( flat, userptr_diff ) ( userptr_t userptr,
+                                       userptr_t subtrahend ) {
+       return trivial_userptr_diff ( userptr, subtrahend );
 }
 
 static inline __always_inline void
@@ -349,7 +349,7 @@ userptr_t userptr_add ( userptr_t userptr, off_t offset );
  * @v subtrahend       User pointer to be subtracted
  * @ret offset         Offset
  */
-off_t userptr_sub ( userptr_t userptr, userptr_t subtrahend );
+off_t userptr_diff ( userptr_t userptr, userptr_t subtrahend );
 
 /**
  * Convert virtual address to a physical address