Manpages - s390_pci_mmio_write.2
Table of Contents
NAME
s390_pci_mmio_write, s390_pci_mmio_read - transfer data to/from PCI MMIO memory page
SYNOPSIS
#include <sys/syscall.h> /* Definition of SYS_* constants */ #include <unistd.h> int syscall(SYS_s390_pci_mmio_write, unsigned long mmio_addr, const void *user_buffer, size_t length); int syscall(SYS_s390_pci_mmio_read, unsigned long mmio_addr, void *user_buffer, size_t length);
Note: glibc provides no wrappers for these system calls, necessitating the use of *syscall*(2).
DESCRIPTION
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.
RETURN VALUE
On success, *s390_pci_mmio_write*() and *s390_pci_mmio_read*() return 0. On failure, -1 is returned and errno is set to indicate the error.
ERRORS
- 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.
VERSIONS
These system calls are available since Linux 3.19.
CONFORMING TO
This Linux-specific system call is available only on the s390 architecture. The required PCI support is available beginning with System z EC12.
SEE ALSO
*syscall*(2)
COLOPHON
This page is part of release 5.13 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 https://www.kernel.org/doc/man-pages/.