[linux] Add stub phys_to_user() implementation

For symmetry with the stub user_to_phys() implementation, provide
phys_to_user() with the same underlying assumption that virtual
addresses are physical (since there is no way to know the real
physical address when running as a Linux userspace executable).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/631/head
Michael Brown 2022-03-23 14:41:36 +00:00
parent 27825e5557
commit 1e1b9593e6
1 changed files with 14 additions and 1 deletions

View File

@ -25,7 +25,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#endif #endif
/** /**
* Convert user buffer to physical address * Convert user pointer to physical address
* *
* @v userptr User pointer * @v userptr User pointer
* @v offset Offset from user pointer * @v offset Offset from user pointer
@ -46,6 +46,19 @@ UACCESS_INLINE ( linux, user_to_phys ) ( userptr_t userptr, off_t offset ) {
return ( userptr + offset ); return ( userptr + offset );
} }
/**
* Convert physical address to user pointer
*
* @v phys_addr Physical address
* @ret userptr User pointer
*/
static inline __always_inline userptr_t
UACCESS_INLINE ( linux, phys_to_user ) ( physaddr_t phys_addr ) {
/* For symmetry with the stub user_to_phys() */
return phys_addr;
}
static inline __always_inline userptr_t static inline __always_inline userptr_t
UACCESS_INLINE ( linux, virt_to_user ) ( volatile const void *addr ) { UACCESS_INLINE ( linux, virt_to_user ) ( volatile const void *addr ) {
return trivial_virt_to_user ( addr ); return trivial_virt_to_user ( addr );