diff options
| author | Michael Brown | 2008-10-12 03:11:50 +0200 |
|---|---|---|
| committer | Michael Brown | 2008-10-12 03:15:34 +0200 |
| commit | aef6d0df5cf4e4c917e44d6b145802fa206da246 (patch) | |
| tree | 69218e362822816b15dc0e9b4c95b19a6c943778 /src/include | |
| parent | [i386] Remove obsolete functions from virtaddr.h (diff) | |
| download | ipxe-aef6d0df5cf4e4c917e44d6b145802fa206da246.tar.gz ipxe-aef6d0df5cf4e4c917e44d6b145802fa206da246.tar.xz ipxe-aef6d0df5cf4e4c917e44d6b145802fa206da246.zip | |
[ioapi] Absorb virt_to_phys() and phys_to_virt() into the I/O API
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/gpxe/io.h | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/src/include/gpxe/io.h b/src/include/gpxe/io.h index 58755e6f9..24cc180f1 100644 --- a/src/include/gpxe/io.h +++ b/src/include/gpxe/io.h @@ -149,28 +149,24 @@ } while ( 0 ) /** - * Map bus address as an I/O address + * Convert virtual address to a physical address * - * @v bus_addr Bus address - * @v len Length of region - * @ret io_addr I/O address + * @v addr Virtual address + * @ret phys_addr Physical address */ -void * ioremap ( unsigned long bus_addr, size_t len ); +unsigned long virt_to_phys ( volatile const void *addr ); /** - * Unmap I/O address + * Convert physical address to a virtual address * - * @v io_addr I/O address - */ -void iounmap ( volatile const void *io_addr ); - -/** - * Convert I/O address to bus address (for debug only) + * @v addr Virtual address + * @ret phys_addr Physical address * - * @v io_addr I/O address - * @ret bus_addr Bus address + * This operation isn't actually valid within our memory model, and is + * impossible to achieve under -DKEEP_IT_REAL. Some drivers haven't + * been updated to avoid it yet, though. */ -unsigned long io_to_bus ( volatile const void *io_addr ); +void * phys_to_virt ( unsigned long phys_addr ); /** * Convert virtual address to a bus address @@ -193,6 +189,30 @@ unsigned long virt_to_bus ( volatile const void *addr ); void * bus_to_virt ( unsigned long bus_addr ); /** + * Map bus address as an I/O address + * + * @v bus_addr Bus address + * @v len Length of region + * @ret io_addr I/O address + */ +void * ioremap ( unsigned long bus_addr, size_t len ); + +/** + * Unmap I/O address + * + * @v io_addr I/O address + */ +void iounmap ( volatile const void *io_addr ); + +/** + * Convert I/O address to bus address (for debug only) + * + * @v io_addr I/O address + * @ret bus_addr Bus address + */ +unsigned long io_to_bus ( volatile const void *io_addr ); + +/** * Read byte from memory-mapped device * * @v io_addr I/O address |
