From a698082e6ea864f6096e1f98e4e2b5125e131dde Mon Sep 17 00:00:00 2001 From: Alexey Ishchuk Date: Mon, 19 Jan 2015 15:22:52 +0100 Subject: [PATCH] s390_pci_mmio_write.2: New page for s390 s390_pci_mmio_write() and s390_pci_mmio_read() New manual page for the new PCI MMIO memory access system calls, s390_pci_mmio_write() and s390_pci_mmio_read(), added for the s390 platform. Signed-off-by: Alexey Ishchuk Signed-off-by: Michael Kerrisk --- man2/s390_pci_mmio_write.2 | 102 +++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 man2/s390_pci_mmio_write.2 diff --git a/man2/s390_pci_mmio_write.2 b/man2/s390_pci_mmio_write.2 new file mode 100644 index 000000000..4757be251 --- /dev/null +++ b/man2/s390_pci_mmio_write.2 @@ -0,0 +1,102 @@ +.\" Copyright (c) IBM Corp. 2015 +.\" Author: Alexey Ishchuk +.\" +.\" %%%LICENSE_START(GPLv2+_DOC_FULL) +.\" This is free documentation; 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 of +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual 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 this manual; if not, see +.\" . +.\" %%%LICENSE_END +.\" +.TH S390_PCI_MMIO_WRITE 2 2015-01-15 "Linux Programmer's Manual" +.SH NAME +s390_pci_mmio_write, s390_pci_mmio_read \- transfer data to/from PCI +MMIO memory page +.SH SYNOPSIS +.nf +.B #include + +.BI "int s390_pci_mmio_write(unsigned long " mmio_addr ", +.BI " void *" user_buffer ", +.BI " size_t " length "); +.br +.BI "int s390_pci_mmio_read(unsigned long " mmio_addr ", +.BI " void *" user_buffer ", +.BI " size_t " length "); +.fi +.SH DESCRIPTION +The +.BR s390_pci_mmio_write () +system call writes data of length +.IR length +from the user space buffer +.IR user_buffer +to a PCI MMIO memory location. +The +.BR s390_pci_mmio_read () +system call reads data from a PCI MMIO memory location +to the user space buffer +.IR user_buffer +of +.IR length +bytes size. + +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 the user space on the Linux on System z +platform. +The address specified by the +.IR mmio_addr +parameter must belong to a PCI MMIO memory page mapping in the user +address space, and the data being written or read must not cross a +page boundary. The +.IR length +parameter value cannot be greater than the page size. +.SH RETURN VALUE +On success, +.BR s390_pci_mmio_write () +and +.BR s390_pci_mmio_read () +return 0. +On error, \-1 is returned and +.IR errno +is set to one of the error codes listed below. +.SH ERRORS +.TP +.B ENODEV +PCI support is not enabled. +.TP +.B ENOMEM +Insufficient memory. +.TP +.B EFAULT +Invalid address was specified. +.TP +.B EINVAL +Invalid parameter value. +.SH VERSIONS +These system calls are available since Linux 3.19. +.SH 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. +.SH NOTES +Glibc does not provide a wrapper for this system call, use +.BR syscall (2) +to call it. +.SH SEE ALSO +.BR syscall (2)