S390_PCI_MMIO_WRITE(2) manual page
Table of Contents
s390_pci_mmio_write, s390_pci_mmio_read - transfer
data to/from PCI MMIO memory page
#include <asm/unistd.h>int s390_pci_mmio_write(unsigned long mmio_addr,
void *user_buffer, size_t length);
int s390_pci_mmio_read(unsigned long mmio_addr,
void *user_buffer, size_t length);
The s390_pci_mmio_write()
system call writes length bytes of data from the user-space buffer user_buffer
to the PCI MMIO memory location specified by mmio_addr. The s390_pci_mmio_read()
system call reads length bytes of data from the PCI MMIO memory location
specified by mmio_addr to the user-space buffer user_buffer.
These system
calls must be used instead of the simple assignment or data-transfer operations
that are used to access the PCI MMIO memory areas mapped to user space
on the Linux System z platform. The address specified by mmio_addr must
belong to a PCI MMIO memory page mapping in the caller’s address space,
and the data being written or read must not cross a page boundary. The length
value cannot be greater than the system page size.
On success,
s390_pci_mmio_write() and s390_pci_mmio_read() return 0. On error, -1 is
returned and errno is set to one of the error codes listed below.
- EFAULT
- The address in mmio_addr is invalid.
- EFAULT
- user_buffer does not point to
a valid location in the caller’s address space.
- EINVAL
- Invalid length argument.
- ENODEV
- PCI support is not enabled.
- ENOMEM
- Insufficient memory.
These
system calls are available since Linux 3.19.
This Linux-specific
system call is available only on the s390 architecture. The required PCI
support is available beginning with System z EC12.
Glibc does not provide
a wrapper for this system call, use syscall(2)
to call it.
syscall(2)
This page is part of release 3.78 of the Linux man-pages project.
A description of the project, information about reporting bugs, and the
latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.
Table of Contents