diff options
author | Joan Lledó <jlledom@member.fsf.org> | 2021-12-19 12:26:47 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-12-25 21:32:04 +0100 |
commit | 0fb7bdd65cb934e7d854aa333fec8f0e0cdf8b20 (patch) | |
tree | abedd788f25680e2688563713c6709e3ec002a99 /pci-arbiter/device_map.c | |
parent | 6f68c39ee5f08410936ba7e8cc3a15f120cec05c (diff) | |
download | hurd-0fb7bdd65cb934e7d854aa333fec8f0e0cdf8b20.tar.gz hurd-0fb7bdd65cb934e7d854aa333fec8f0e0cdf8b20.tar.bz2 hurd-0fb7bdd65cb934e7d854aa333fec8f0e0cdf8b20.zip |
pci-arbiter: Implement memory mapping over region files
* pci-arbiter/Makefile:
* Add device_map.c to sources
* pci-arbiter/device_map.c:
* pci-arbiter/device_map.h:
* New module for device mapping
* Relies on libpciaccess mapping methods
* pci-arbiter/func_files.c:
* io_region_file(): Use the new device mapping module
* pci-arbiter/netfs_impl.c:
* Implements netfs_get_filemap():
* Uses the device mapping module to map the region to the
arbiter space
* Calls the kernel RPC vm_region_create_proxy() to obtain the
memory object proxy
* Only region files are mapped for now
Message-Id: <20211219112647.11512-4-jlledom@mailfence.com>
Diffstat (limited to 'pci-arbiter/device_map.c')
-rw-r--r-- | pci-arbiter/device_map.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pci-arbiter/device_map.c b/pci-arbiter/device_map.c new file mode 100644 index 00000000..216adfb9 --- /dev/null +++ b/pci-arbiter/device_map.c @@ -0,0 +1,38 @@ +/* + Copyright (C) 2021 Free Software Foundation, Inc. + + This file is part of the GNU Hurd. + + The GNU Hurd is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2, or (at + your option) any later version. + + The GNU Hurd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* Implementation for device memory mapping functions */ + +#include <pciaccess.h> + +#include "device_map.h" + +error_t +device_map_region (struct pci_device *device, struct pci_mem_region *region) +{ + error_t err = 0; + + if (region->memory == 0) + { + err = pci_device_map_range (device, region->base_addr, region->size, + PCI_DEV_MAP_FLAG_WRITABLE, ®ion->memory); + } + + return err; +} |