2 /* SPDX-License-Identifier: GPL-2.0-or-later */
11 void *map_physical_exact(off_t phys_addr
, void *mapto
, size_t len
)
16 virt_addr
= mmap(mapto
, len
, PROT_WRITE
| PROT_READ
,
17 MAP_SHARED
| MAP_FIXED
, fd_mem
, phys_addr
);
19 if (virt_addr
== MAP_FAILED
) {
21 printf("Error mapping physical memory 0x%016jx [0x%zx] ERRNO=%d %s\n",
22 (uintmax_t)phys_addr
, len
, err
, strerror(err
));
29 void *map_physical(off_t phys_addr
, size_t len
)
34 virt_addr
= mmap(NULL
, len
, PROT_WRITE
| PROT_READ
, MAP_SHARED
, fd_mem
, phys_addr
);
36 if (virt_addr
== MAP_FAILED
) {
38 printf("Error mapping physical memory 0x%016jx [0x%zx] ERRNO=%d %s\n",
39 (uintmax_t)phys_addr
, len
, err
, strerror(err
));
46 void unmap_physical(void *virt_addr
, size_t len
)
48 munmap(virt_addr
, len
);