- update to 3.28
- move all additional man-pages to one source (man-pages-additional-20101006.tar.bz2) - remove additional man-pages without the info about license
This commit is contained in:
parent
479e4576aa
commit
f27a7a1b6a
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1,3 @@
|
||||
man-pages-extralocale.tar.bz2
|
||||
man-suid-bins.tar.bz2
|
||||
man-pages-posix-2003-a.tar.bz2
|
||||
man-pages_add-02.tar.bz2
|
||||
man-pages_syscalls-03.tar.bz2
|
||||
/man-pages-3.27.tar.bz2
|
||||
/man-pages-3.28.tar.bz2
|
||||
/man-pages-additional-20101006.tar.bz2
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- man-pages-1.51/man1/iconv.1.stdin 2002-06-12 14:44:12.000000000 -0400
|
||||
+++ man-pages-1.51/man1/iconv.1 2002-06-12 14:44:26.000000000 -0400
|
||||
@@ -211,7 +211,7 @@
|
||||
.PP
|
||||
\fB--output\fR, \fB\-o\fR \fIfile\fR
|
||||
.PP
|
||||
-Specify output file (instead of stdin)
|
||||
+Specify output file (instead of stdout)
|
||||
.PP
|
||||
\fB--verbose\fR
|
||||
.PP
|
@ -1,43 +0,0 @@
|
||||
--- man-pages-2.55/man1/getent.1~ 2001-03-09 18:27:32.000000000 +0200
|
||||
+++ man-pages-2.55/man1/getent.1 2007-07-18 01:50:51.000000000 +0300
|
||||
@@ -93,7 +93,7 @@
|
||||
.nr % 0
|
||||
.rr F
|
||||
.\}
|
||||
-.TH GETENT 1 "Match 2001" "Red Hat Linux"
|
||||
+.TH GETENT 1 "July 2007" "Red Hat Linux"
|
||||
.UC
|
||||
.if n .hy 0
|
||||
.if n .na
|
||||
@@ -192,10 +192,20 @@ getent \- get entries from administrativ
|
||||
.SH "SYNOPSIS"
|
||||
\fBgetent\fR \fIdatabase\fR [\fIkey\fR ...]
|
||||
.SH "DESCRIPTION"
|
||||
-The \fIgetent\fR program gathers entries from the specified
|
||||
+The \fBgetent\fR program gathers entries from the specified
|
||||
administrative database using the specified search keys.
|
||||
-Where \fIdatabase\fR is one of aliases, ethers, group, hosts,
|
||||
-netgroup, networks, passwd, protocols, rpc, services or shadow.
|
||||
+\fIdatabase\fR is one of ahosts, ahostsv4, ahostsv6, aliases, ethers,
|
||||
+group, hosts, netgroup, networks, passwd, protocols, rpc, services or
|
||||
+shadow.
|
||||
+.SH "EXIT STATUS"
|
||||
+.IP 0
|
||||
+Success; the requested entries were found.
|
||||
+.IP 1
|
||||
+Wrong number of or invalid arguments.
|
||||
+.IP 2
|
||||
+One or more of the requested entries could not be found.
|
||||
+.IP 3
|
||||
+Unsupported operation.
|
||||
.SH "AUTHOR"
|
||||
getent is written by Thorsten Kukuk for the GNU C Library.
|
||||
.PP
|
||||
@@ -213,5 +223,7 @@ for GNU C Library 2.2.2 getent changes.
|
||||
|
||||
.IX Header "DESCRIPTION"
|
||||
|
||||
+.IX Header "EXIT STATUS"
|
||||
+
|
||||
.IX Header "AUTHOR"
|
||||
|
@ -1,19 +0,0 @@
|
||||
--- man-pages-2.63/man1/iconv.1.pom 2007-08-07 14:08:32.000000000 +0200
|
||||
+++ man-pages-2.63/man1/iconv.1 2007-08-07 14:35:22.000000000 +0200
|
||||
@@ -216,6 +216,16 @@ Specify output file (instead of stdout)
|
||||
\fB--verbose\fR
|
||||
.PP
|
||||
Print progress information.
|
||||
+.SH "EXAMPLES"
|
||||
+Following examples convert from code set ISO88592 "input.txt" to UTF8
|
||||
+code set or ASCII and stores the result as "output.txt".
|
||||
+\fB
|
||||
+iconv -f ISO88592 -t UTF8 < input.txt > output.txt
|
||||
+.sp
|
||||
+iconv -f ISO88592 -t ASCII//TRANSLIT < input.txt > output.txt
|
||||
+\fp
|
||||
+.fi
|
||||
+
|
||||
.SH "AUTHOR"
|
||||
iconv is written by Ulrich Drepper as part of the GNU C Library.
|
||||
.PP
|
@ -1,29 +0,0 @@
|
||||
diff -up man-pages-3.22/man5/gai.conf.5.pom man-pages-3.22/man5/gai.conf.5
|
||||
--- man-pages-3.22/man5/gai.conf.5.pom 2006-05-15 10:18:05.000000000 +0200
|
||||
+++ man-pages-3.22/man5/gai.conf.5 2009-08-11 08:55:22.000000000 +0200
|
||||
@@ -51,7 +51,7 @@ value.
|
||||
.TP
|
||||
\fBprecedence\fR \fInetmask\fR \fIprecedence\fR
|
||||
This keyword is similar to \fBlabel\fR but instead the value is added
|
||||
-to the precendence table as specified in RFC 3484. Once again, the
|
||||
+to the precedence table as specified in RFC 3484. Once again, the
|
||||
presence of a single \fBprecedence\fR line in the configuration file
|
||||
causes the default table to not be used.
|
||||
|
||||
@@ -74,11 +74,11 @@ label ::/0 1
|
||||
label 2002::/16 2
|
||||
label ::/96 3
|
||||
label ::ffff:0:0/96 4
|
||||
-precendence ::1/128 50
|
||||
-precendence ::/0 40
|
||||
-precendence 2002::/16 30
|
||||
-precendence ::/96 20
|
||||
-precendence ::ffff:0:0/96 10
|
||||
+precedence ::1/128 50
|
||||
+precedence ::/0 40
|
||||
+precedence 2002::/16 30
|
||||
+precedence ::/96 20
|
||||
+precedence ::ffff:0:0/96 10
|
||||
|
||||
|
||||
.SH FILES
|
@ -1,65 +0,0 @@
|
||||
diff -up man-pages-3.23/man1/iconv.1.pom man-pages-3.23/man1/iconv.1
|
||||
--- man-pages-3.23/man1/iconv.1.pom 2010-01-26 15:23:10.000000000 +0100
|
||||
+++ man-pages-3.23/man1/iconv.1 2010-01-27 15:03:09.000000000 +0100
|
||||
@@ -196,26 +196,42 @@ The \fBiconv\fR program converts the enc
|
||||
\fIinputfile\fR from one coded character set to another. The result is
|
||||
written to standard output unless otherwise specified by the
|
||||
\fB--output\fR option.
|
||||
-.PP
|
||||
+.SS
|
||||
+Input/Output format specification:
|
||||
+.TP
|
||||
\fB--from-code\fR, \fB\-f\fR \fIencoding\fR
|
||||
-.PP
|
||||
Convert characters from \fIencoding\fR
|
||||
-.PP
|
||||
+.TP
|
||||
\fB--to-code\fR, \fB\-t\fR \fIencoding\fR
|
||||
-.PP
|
||||
Convert characters to \fIencoding\fR
|
||||
-.PP
|
||||
+.SS
|
||||
+Information:
|
||||
+.TP
|
||||
\fB--list\fR
|
||||
-.PP
|
||||
List known coded character sets
|
||||
-.PP
|
||||
+.SS
|
||||
+Output control:
|
||||
+.TP
|
||||
+\fB-c\fR
|
||||
+omit invalid characters from output
|
||||
+.TP
|
||||
\fB--output\fR, \fB\-o\fR \fIfile\fR
|
||||
-.PP
|
||||
Specify output file (instead of stdout)
|
||||
-.PP
|
||||
+.TP
|
||||
+\fB--silent\fR, \fB-s\fR
|
||||
+suppress warnings
|
||||
+.TP
|
||||
\fB--verbose\fR
|
||||
-.PP
|
||||
Print progress information.
|
||||
+.TP
|
||||
+\fB-?\fR, \fB--help\fR
|
||||
+Give this help list
|
||||
+.TP
|
||||
+\fB--usage\fR
|
||||
+Give a short usage message
|
||||
+.TP
|
||||
+\fB-V\fR, \fB--version\fR
|
||||
+Print program version
|
||||
.SH "EXAMPLES"
|
||||
Following examples convert from code set ISO88592 "input.txt" to UTF8
|
||||
code set or ASCII and stores the result as "output.txt".
|
||||
@@ -225,7 +241,7 @@ iconv -f ISO88592 -t UTF8 < input.txt >
|
||||
iconv -f ISO88592 -t ASCII//TRANSLIT < input.txt > output.txt
|
||||
\fp
|
||||
.fi
|
||||
-
|
||||
+\fR
|
||||
.SH "AUTHOR"
|
||||
iconv is written by Ulrich Drepper as part of the GNU C Library.
|
||||
.PP
|
@ -3,36 +3,27 @@
|
||||
|
||||
Summary: Man (manual) pages from the Linux Documentation Project
|
||||
Name: man-pages
|
||||
Version: 3.27
|
||||
Release: 3%{?dist}
|
||||
Version: 3.28
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+ and GPL+ and BSD and MIT and Copyright only and IEEE
|
||||
Group: Documentation
|
||||
URL: http://www.kernel.org/pub/linux/docs/manpages/
|
||||
|
||||
Source0: http://www.kernel.org/pub/linux/docs/manpages/man-pages-%{version}.tar.bz2
|
||||
# POSIX man pages
|
||||
Source1: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/man-pages-posix-%{posix_version}-%{posix_release}.tar.bz2
|
||||
Source2: man-pages_add-02.tar.bz2
|
||||
Source3: man-pages-extralocale.tar.bz2
|
||||
Source4: man-pages_syscalls-03.tar.bz2
|
||||
# IBM-supplied man pages for suid binaries:
|
||||
Source5: man-suid-bins.tar.bz2
|
||||
Source6: mmap.2
|
||||
Patch1: man-pages-1.51-iconv.patch
|
||||
# additional man-pages, the source tarball is fedora only
|
||||
# all man-pages have a license info
|
||||
Source2: man-pages-additional-20101006.tar.bz2
|
||||
Patch28: man-pages-2.46-nscd.patch
|
||||
Patch36: man-pages-2.63-unimplemented.patch
|
||||
Patch45: man-pages-2.48-passwd.patch
|
||||
Patch46: man-pages-2.51-nscd-conf.patch
|
||||
Patch49: man-pages-2.63-getent.patch
|
||||
Patch50: man-pages-2.63-iconv.patch
|
||||
Patch53: man-pages-2.78-stream.patch
|
||||
Patch54: man-pages-2.80-malloc_h.patch
|
||||
Patch55: man-pages-3.22-gai.conf.patch
|
||||
Patch57: man-pages-3.22-nsswitch.conf.patch
|
||||
Patch58: man-pages-3.23-proc.patch
|
||||
Patch59: man-pages-3.23-ld.so.patch
|
||||
Patch60: man-pages-3.22-sched_setaffinity.patch
|
||||
Patch61: man-pages-3.23-iconv.patch
|
||||
Patch62: man-pages-3.23-printf.patch
|
||||
Patch63: man-pages-3.24-getnameinfo.patch
|
||||
Patch67: man-pages-3.24-mmap64.patch
|
||||
@ -48,27 +39,21 @@ A large collection of man pages (documentation) from the Linux
|
||||
Documentation Project (LDP).
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version} -a 1 -a 2 -a 3 -a 4 -a 5
|
||||
%setup -q -n %{name}-%{version} -a 1 -a 2
|
||||
|
||||
mv man-pages-posix-%{posix_version}-%{posix_release}/* ./
|
||||
mv man-pages-posix-%{posix_version}-%{posix_release}/Changes{,.posix}
|
||||
mv man-pages-posix-%{posix_version}-%{posix_release}/* ./
|
||||
rmdir man-pages-posix-%{posix_version}-%{posix_release}
|
||||
cp %{SOURCE6} man2/mmap.2
|
||||
|
||||
%patch1 -p1
|
||||
%patch28 -p1
|
||||
%patch36 -p1
|
||||
%patch45 -p1
|
||||
%patch46 -p1
|
||||
%patch49 -p1
|
||||
%patch50 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch57 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch67 -p1
|
||||
@ -89,15 +74,9 @@ rm -v man2/{,f,l}{get,list,remove,set}xattr.2
|
||||
# Problem with db x db4 (#198597) - man pages are obsolete
|
||||
rm -v man3/{db,btree,dbopen,hash,mpool,recno}.3
|
||||
|
||||
# Remove rpcinfo page - obsolete
|
||||
rm -v man8/rpcinfo.8
|
||||
|
||||
# Deprecated
|
||||
rm -v man2/pciconfig_{write,read,iobase}.2
|
||||
|
||||
# Part of squid
|
||||
rm -v man8/ncsa_auth.8
|
||||
|
||||
# Part of numactl package
|
||||
rm -v man5/numa_maps.5
|
||||
|
||||
@ -144,6 +123,12 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%lang(en) %{_mandir}/en/man*/*
|
||||
|
||||
%changelog
|
||||
* Wed Oct 6 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 3.28-1
|
||||
- update to 3.28
|
||||
- move all additional man-pages to one source
|
||||
(man-pages-additional-20101006.tar.bz2)
|
||||
- remove additional man-pages without the info about license
|
||||
|
||||
* Thu Sep 23 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 3.27-3
|
||||
- Resolves: #634626
|
||||
remove link to non-existing man page
|
||||
|
675
mmap.2
675
mmap.2
@ -1,675 +0,0 @@
|
||||
.\" Hey Emacs! This file is -*- nroff -*- source.
|
||||
.\"
|
||||
.\" Copyright (C) 1996 Andries Brouwer <aeb@cwi.nl>
|
||||
.\" and Copyright (C) 2006, 2007 Michael Kerrisk <mtk.manpages@gmail.com>
|
||||
.\"
|
||||
.\" Permission is granted to make and distribute verbatim copies of this
|
||||
.\" manual provided the copyright notice and this permission notice are
|
||||
.\" preserved on all copies.
|
||||
.\"
|
||||
.\" Permission is granted to copy and distribute modified versions of this
|
||||
.\" manual under the conditions for verbatim copying, provided that the
|
||||
.\" entire resulting derived work is distributed under the terms of a
|
||||
.\" permission notice identical to this one.
|
||||
.\"
|
||||
.\" Since the Linux kernel and libraries are constantly changing, this
|
||||
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
||||
.\" responsibility for errors or omissions, or for damages resulting from
|
||||
.\" the use of the information contained herein. The author(s) may not
|
||||
.\" have taken the same level of care in the production of this manual,
|
||||
.\" which is licensed free of charge, as they might when working
|
||||
.\" professionally.
|
||||
.\"
|
||||
.\" Formatted or processed versions of this manual, if unaccompanied by
|
||||
.\" the source, must acknowledge the copyright and authors of this work.
|
||||
.\"
|
||||
.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
|
||||
.\" Modified 2000-03-25 by Jim Van Zandt <jrv@vanzandt.mv.com>
|
||||
.\" Modified 2001-10-04 by John Levon <moz@compsoc.man.ac.uk>
|
||||
.\" Modified 2003-02-02 by Andi Kleen <ak@muc.de>
|
||||
.\" Modified 2003-05-21 by Michael Kerrisk <mtk.manpages@gmail.com>
|
||||
.\" MAP_LOCKED works from 2.5.37
|
||||
.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
|
||||
.\" Modified 2004-09-11 by aeb
|
||||
.\" Modified 2004-12-08, from Eric Estievenart <eric.estievenart@free.fr>
|
||||
.\" Modified 2004-12-08, mtk, formatting tidy-ups
|
||||
.\" Modified 2006-12-04, mtk, various parts rewritten
|
||||
.\" 2007-07-10, mtk, Added an example program.
|
||||
.\" 2008-11-18, mtk, document MAP_STACK
|
||||
.\"
|
||||
.TH MMAP 2 2009-09-26 "Linux" "Linux Programmer's Manual"
|
||||
.SH NAME
|
||||
mmap, mmap64, munmap \- map or unmap files or devices into memory
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
.B #include <sys/mman.h>
|
||||
.sp
|
||||
.BI "void *mmap(void *" addr ", size_t " length \
|
||||
", int " prot ", int " flags ,
|
||||
.BI " int " fd ", off_t " offset );
|
||||
.BI "void *mmap64(void *" addr ", size_t " length \
|
||||
", int " prot ", int " flags ,
|
||||
.BI " int " fd ", off64_t " offset );
|
||||
.BI "int munmap(void *" addr ", size_t " length );
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.BR mmap ()
|
||||
creates a new mapping in the virtual address space of
|
||||
the calling process.
|
||||
The starting address for the new mapping is specified in
|
||||
.IR addr .
|
||||
The
|
||||
.I length
|
||||
argument specifies the length of the mapping.
|
||||
|
||||
If
|
||||
.I addr
|
||||
is NULL,
|
||||
then the kernel chooses the address at which to create the mapping;
|
||||
this is the most portable method of creating a new mapping.
|
||||
If
|
||||
.I addr
|
||||
is not NULL,
|
||||
then the kernel takes it as a hint about where to place the mapping;
|
||||
on Linux, the mapping will be created at a nearby page boundary.
|
||||
.\" Before Linux 2.6.24, the address was rounded up to the next page
|
||||
.\" boundary; since 2.6.24, it is rounded down!
|
||||
The address of the new mapping is returned as the result of the call.
|
||||
|
||||
The contents of a file mapping (as opposed to an anonymous mapping; see
|
||||
.B MAP_ANONYMOUS
|
||||
below), are initialized using
|
||||
.I length
|
||||
bytes starting at offset
|
||||
.I offset
|
||||
in the file (or other object) referred to by the file descriptor
|
||||
.IR fd .
|
||||
.I offset
|
||||
must be a multiple of the page size as returned by
|
||||
.IR sysconf(_SC_PAGE_SIZE) .
|
||||
.LP
|
||||
The
|
||||
.I prot
|
||||
argument describes the desired memory protection of the mapping
|
||||
(and must not conflict with the open mode of the file).
|
||||
It is either
|
||||
.B PROT_NONE
|
||||
or the bitwise OR of one or more of the following flags:
|
||||
.TP 1.1i
|
||||
.B PROT_EXEC
|
||||
Pages may be executed.
|
||||
.TP
|
||||
.B PROT_READ
|
||||
Pages may be read.
|
||||
.TP
|
||||
.B PROT_WRITE
|
||||
Pages may be written.
|
||||
.TP
|
||||
.B PROT_NONE
|
||||
Pages may not be accessed.
|
||||
.LP
|
||||
The
|
||||
.I flags
|
||||
argument determines whether updates to the mapping
|
||||
are visible to other processes mapping the same region,
|
||||
and whether updates are carried through to the underlying file.
|
||||
This behavior is determined by including exactly one
|
||||
of the following values in
|
||||
.IR flags :
|
||||
.TP 1.1i
|
||||
.B MAP_SHARED
|
||||
Share this mapping.
|
||||
Updates to the mapping are visible to other processes that map this file,
|
||||
and are carried through to the underlying file.
|
||||
The file may not actually be updated until
|
||||
.BR msync (2)
|
||||
or
|
||||
.BR munmap ()
|
||||
is called.
|
||||
.TP
|
||||
.B MAP_PRIVATE
|
||||
Create a private copy-on-write mapping.
|
||||
Updates to the mapping are not visible to other processes
|
||||
mapping the same file, and are not carried through to
|
||||
the underlying file.
|
||||
It is unspecified whether changes made to the file after the
|
||||
.BR mmap ()
|
||||
call are visible in the mapped region.
|
||||
.LP
|
||||
Both of these flags are described in POSIX.1-2001.
|
||||
|
||||
In addition, zero or more of the following values can be ORed in
|
||||
.IR flags :
|
||||
.TP
|
||||
.BR MAP_32BIT " (since Linux 2.4.20, 2.6)"
|
||||
Put the mapping into the first 2 Gigabytes of the process address space.
|
||||
This flag is only supported on x86-64, for 64-bit programs.
|
||||
It was added to allow thread stacks to be allocated somewhere
|
||||
in the first 2GB of memory,
|
||||
so as to improve context-switch performance on some early
|
||||
64-bit processors.
|
||||
.\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08
|
||||
Modern x86-64 processors no longer have this performance problem,
|
||||
so use of this flag is not required on those systems.
|
||||
The
|
||||
.B MAP_32BIT
|
||||
flag is ignored when
|
||||
.B MAP_FIXED
|
||||
is set.
|
||||
.TP
|
||||
.B MAP_ANON
|
||||
Synonym for
|
||||
.BR MAP_ANONYMOUS .
|
||||
Deprecated.
|
||||
.TP
|
||||
.B MAP_ANONYMOUS
|
||||
The mapping is not backed by any file;
|
||||
its contents are initialized to zero.
|
||||
The
|
||||
.I fd
|
||||
and
|
||||
.I offset
|
||||
arguments are ignored;
|
||||
however, some implementations require
|
||||
.I fd
|
||||
to be \-1 if
|
||||
.B MAP_ANONYMOUS
|
||||
(or
|
||||
.BR MAP_ANON )
|
||||
is specified,
|
||||
and portable applications should ensure this.
|
||||
The use of
|
||||
.B MAP_ANONYMOUS
|
||||
in conjunction with
|
||||
.B MAP_SHARED
|
||||
is only supported on Linux since kernel 2.4.
|
||||
.TP
|
||||
.B MAP_DENYWRITE
|
||||
This flag is ignored.
|
||||
.\" Introduced in 1.1.36, removed in 1.3.24.
|
||||
(Long ago, it signaled that attempts to write to the underlying file
|
||||
should fail with
|
||||
.BR ETXTBUSY .
|
||||
But this was a source of denial-of-service attacks.)
|
||||
.TP
|
||||
.B MAP_EXECUTABLE
|
||||
This flag is ignored.
|
||||
.\" Introduced in 1.1.38, removed in 1.3.24. Flag tested in proc_follow_link.
|
||||
.\" (Long ago, it signaled that the underlying file is an executable.
|
||||
.\" However, that information was not really used anywhere.)
|
||||
.\" Linus talked about DOS related to MAP_EXECUTABLE, but he was thinking of
|
||||
.\" MAP_DENYWRITE?
|
||||
.TP
|
||||
.B MAP_FILE
|
||||
Compatibility flag.
|
||||
Ignored.
|
||||
.\" On some systems, this was required as the opposite of
|
||||
.\" MAP_ANONYMOUS -- mtk, 1 May 2007
|
||||
.TP
|
||||
.B MAP_FIXED
|
||||
Don't interpret
|
||||
.I addr
|
||||
as a hint: place the mapping at exactly that address.
|
||||
.I addr
|
||||
must be a multiple of the page size.
|
||||
If the memory region specified by
|
||||
.I addr
|
||||
and
|
||||
.I len
|
||||
overlaps pages of any existing mapping(s), then the overlapped
|
||||
part of the existing mapping(s) will be discarded.
|
||||
If the specified address cannot be used,
|
||||
.BR mmap ()
|
||||
will fail.
|
||||
Because requiring a fixed address for a mapping is less portable,
|
||||
the use of this option is discouraged.
|
||||
.TP
|
||||
.B MAP_GROWSDOWN
|
||||
Used for stacks.
|
||||
Indicates to the kernel virtual memory system that the mapping
|
||||
should extend downwards in memory.
|
||||
.TP
|
||||
.BR MAP_HUGETLB " (since Linux 2.6.32)"
|
||||
Allocate the mapping using "huge pages."
|
||||
See the kernel source file
|
||||
.I Documentation/vm/hugetlbpage.txt
|
||||
for further information.
|
||||
.TP
|
||||
.BR MAP_LOCKED " (since Linux 2.5.37)"
|
||||
Lock the pages of the mapped region into memory in the manner of
|
||||
.BR mlock (2).
|
||||
This flag is ignored in older kernels.
|
||||
.\" If set, the mapped pages will not be swapped out.
|
||||
.TP
|
||||
.BR MAP_NONBLOCK " (since Linux 2.5.46)"
|
||||
Only meaningful in conjunction with
|
||||
.BR MAP_POPULATE .
|
||||
Don't perform read-ahead:
|
||||
only create page tables entries for pages
|
||||
that are already present in RAM.
|
||||
Since Linux 2.6.23, this flag causes
|
||||
.BR MAP_POPULATE
|
||||
to do nothing.
|
||||
One day the combination of
|
||||
.BR MAP_POPULATE
|
||||
and
|
||||
.BR MAP_NONBLOCK
|
||||
may be reimplemented.
|
||||
.TP
|
||||
.B MAP_NORESERVE
|
||||
Do not reserve swap space for this mapping.
|
||||
When swap space is reserved, one has the guarantee
|
||||
that it is possible to modify the mapping.
|
||||
When swap space is not reserved one might get
|
||||
.B SIGSEGV
|
||||
upon a write
|
||||
if no physical memory is available.
|
||||
See also the discussion of the file
|
||||
.I /proc/sys/vm/overcommit_memory
|
||||
in
|
||||
.BR proc (5).
|
||||
In kernels before 2.6, this flag only had effect for
|
||||
private writable mappings.
|
||||
.TP
|
||||
.BR MAP_POPULATE " (since Linux 2.5.46)"
|
||||
Populate (prefault) page tables for a mapping.
|
||||
For a file mapping, this causes read-ahead on the file.
|
||||
Later accesses to the mapping will not be blocked by page faults.
|
||||
.BR MAP_POPULATE
|
||||
is only supported for private mappings since Linux 2.6.23.
|
||||
.LP
|
||||
Of the above flags, only
|
||||
.B MAP_FIXED
|
||||
is specified in POSIX.1-2001.
|
||||
However, most systems also support
|
||||
.B MAP_ANONYMOUS
|
||||
(or its synonym
|
||||
.BR MAP_ANON ).
|
||||
.TP
|
||||
.BR MAP_STACK " (since Linux 2.6.27)"
|
||||
Allocate the mapping at an address suitable for a process
|
||||
or thread stack.
|
||||
This flag is currently a no-op,
|
||||
but is used in the glibc threading implementation so that
|
||||
if some architectures require special treatment for stack allocations,
|
||||
support can later be transparently implemented for glibc.
|
||||
.\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08
|
||||
.\" commit cd98a04a59e2f94fa64d5bf1e26498d27427d5e7
|
||||
.\" http://thread.gmane.org/gmane.linux.kernel/720412
|
||||
.\" "pthread_create() slow for many threads; also time to revisit 64b
|
||||
.\" context switch optimization?"
|
||||
.LP
|
||||
Some systems document the additional flags
|
||||
.BR MAP_AUTOGROW ,
|
||||
.BR MAP_AUTORESRV ,
|
||||
.BR MAP_COPY ,
|
||||
and
|
||||
.BR MAP_LOCAL .
|
||||
.LP
|
||||
Memory mapped by
|
||||
.BR mmap ()
|
||||
is preserved across
|
||||
.BR fork (2),
|
||||
with the same attributes.
|
||||
.LP
|
||||
A file is mapped in multiples of the page size.
|
||||
For a file that is not
|
||||
a multiple of the page size, the remaining memory is zeroed when mapped,
|
||||
and writes to that region are not written out to the file.
|
||||
The effect of
|
||||
changing the size of the underlying file of a mapping on the pages that
|
||||
correspond to added or removed regions of the file is unspecified.
|
||||
.SS mmap64()
|
||||
The
|
||||
.BR mmap64 ()
|
||||
system call operates in exactly the same way as
|
||||
.BR mmap (),
|
||||
except that the final argument specifies the offset as
|
||||
a 64-bit off64_t. This enables applications to aceess the large
|
||||
files.
|
||||
.SS munmap()
|
||||
The
|
||||
.BR munmap ()
|
||||
system call deletes the mappings for the specified address range, and
|
||||
causes further references to addresses within the range to generate
|
||||
invalid memory references.
|
||||
The region is also automatically unmapped
|
||||
when the process is terminated.
|
||||
On the other hand, closing the file
|
||||
descriptor does not unmap the region.
|
||||
.LP
|
||||
The address
|
||||
.I addr
|
||||
must be a multiple of the page size.
|
||||
All pages containing a part
|
||||
of the indicated range are unmapped, and subsequent references
|
||||
to these pages will generate
|
||||
.BR SIGSEGV .
|
||||
It is not an error if the
|
||||
indicated range does not contain any mapped pages.
|
||||
.SS Timestamps changes for file-backed mappings
|
||||
For file-backed mappings, the
|
||||
.I st_atime
|
||||
field for the mapped file may be updated at any time between the
|
||||
.BR mmap ()
|
||||
and the corresponding unmapping; the first reference to a mapped
|
||||
page will update the field if it has not been already.
|
||||
.LP
|
||||
The
|
||||
.I st_ctime
|
||||
and
|
||||
.I st_mtime
|
||||
field for a file mapped with
|
||||
.B PROT_WRITE
|
||||
and
|
||||
.B MAP_SHARED
|
||||
will be updated after
|
||||
a write to the mapped region, and before a subsequent
|
||||
.BR msync (2)
|
||||
with the
|
||||
.B MS_SYNC
|
||||
or
|
||||
.B MS_ASYNC
|
||||
flag, if one occurs.
|
||||
.SH "RETURN VALUE"
|
||||
On success,
|
||||
.BR mmap ()
|
||||
returns a pointer to the mapped area.
|
||||
On error, the value
|
||||
.B MAP_FAILED
|
||||
(that is,
|
||||
.IR "(void\ *)\ \-1" )
|
||||
is returned, and
|
||||
.I errno
|
||||
is set appropriately.
|
||||
On success,
|
||||
.BR munmap ()
|
||||
returns 0, on failure \-1, and
|
||||
.I errno
|
||||
is set (probably to
|
||||
.BR EINVAL ).
|
||||
.SH ERRORS
|
||||
.TP
|
||||
.B EACCES
|
||||
A file descriptor refers to a non-regular file.
|
||||
Or
|
||||
.B MAP_PRIVATE
|
||||
was requested, but
|
||||
.I fd
|
||||
is not open for reading.
|
||||
Or
|
||||
.B MAP_SHARED
|
||||
was requested and
|
||||
.B PROT_WRITE
|
||||
is set, but
|
||||
.I fd
|
||||
is not open in read/write
|
||||
.RB ( O_RDWR )
|
||||
mode.
|
||||
Or
|
||||
.B PROT_WRITE
|
||||
is set, but the file is append-only.
|
||||
.TP
|
||||
.B EAGAIN
|
||||
The file has been locked, or too much memory has been locked (see
|
||||
.BR setrlimit (2)).
|
||||
.TP
|
||||
.B EBADF
|
||||
.I fd
|
||||
is not a valid file descriptor (and
|
||||
.B MAP_ANONYMOUS
|
||||
was not set).
|
||||
.TP
|
||||
.B EINVAL
|
||||
We don't like
|
||||
.IR addr ,
|
||||
.IR length ,
|
||||
or
|
||||
.I offset
|
||||
(e.g., they are too large, or not aligned on a page boundary).
|
||||
.TP
|
||||
.B EINVAL
|
||||
(since Linux 2.6.12)
|
||||
.I length
|
||||
was 0.
|
||||
.TP
|
||||
.B EINVAL
|
||||
.I flags
|
||||
contained neither
|
||||
.B MAP_PRIVATE
|
||||
or
|
||||
.BR MAP_SHARED ,
|
||||
or contained both of these values.
|
||||
.TP
|
||||
.B ENFILE
|
||||
.\" This is for shared anonymous segments
|
||||
.\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp()
|
||||
The system limit on the total number of open files has been reached.
|
||||
.\" .TP
|
||||
.\" .B ENOEXEC
|
||||
.\" A file could not be mapped for reading.
|
||||
.TP
|
||||
.B ENODEV
|
||||
The underlying file system of the specified file does not support
|
||||
memory mapping.
|
||||
.TP
|
||||
.B ENOMEM
|
||||
No memory is available, or the process's maximum number of mappings would
|
||||
have been exceeded.
|
||||
.TP
|
||||
.B EPERM
|
||||
The
|
||||
.I prot
|
||||
argument asks for
|
||||
.B PROT_EXEC
|
||||
but the mapped area belongs to a file on a file system that
|
||||
was mounted no-exec.
|
||||
.\" (Since 2.4.25 / 2.6.0.)
|
||||
.TP
|
||||
.B ETXTBSY
|
||||
.B MAP_DENYWRITE
|
||||
was set but the object specified by
|
||||
.I fd
|
||||
is open for writing.
|
||||
.LP
|
||||
Use of a mapped region can result in these signals:
|
||||
.TP
|
||||
.B SIGSEGV
|
||||
Attempted write into a region mapped as read-only.
|
||||
.TP
|
||||
.B SIGBUS
|
||||
Attempted access to a portion of the buffer that does not correspond
|
||||
to the file (for example, beyond the end of the file, including the
|
||||
case where another process has truncated the file).
|
||||
.SH "CONFORMING TO"
|
||||
SVr4, 4.4BSD, POSIX.1-2001.
|
||||
.\" SVr4 documents additional error codes ENXIO and ENODEV.
|
||||
.\" SUSv2 documents additional error codes EMFILE and EOVERFLOW.
|
||||
.SH AVAILABILITY
|
||||
On POSIX systems on which
|
||||
.BR mmap (),
|
||||
.BR msync (2)
|
||||
and
|
||||
.BR munmap ()
|
||||
are available,
|
||||
.B _POSIX_MAPPED_FILES
|
||||
is defined in \fI<unistd.h>\fP to a value greater than 0.
|
||||
(See also
|
||||
.BR sysconf (3).)
|
||||
.\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
|
||||
.\" -1: unavailable, 0: ask using sysconf().
|
||||
.\" glibc defines it to 1.
|
||||
.SH NOTES
|
||||
Since kernel 2.4, this system call has been superseded by
|
||||
.BR mmap2 (2).
|
||||
Nowadays,
|
||||
.\" Since around glibc 2.1/2.2, depending on the platform.
|
||||
the glibc
|
||||
.BR mmap ()
|
||||
wrapper function invokes
|
||||
.BR mmap2 (2)
|
||||
with a suitably adjusted value for
|
||||
.IR offset .
|
||||
|
||||
On some hardware architectures (e.g., i386),
|
||||
.B PROT_WRITE
|
||||
implies
|
||||
.BR PROT_READ .
|
||||
It is architecture dependent whether
|
||||
.B PROT_READ
|
||||
implies
|
||||
.B PROT_EXEC
|
||||
or not.
|
||||
Portable programs should always set
|
||||
.B PROT_EXEC
|
||||
if they intend to execute code in the new mapping.
|
||||
|
||||
The portable way to create a mapping is to specify
|
||||
.I addr
|
||||
as 0 (NULL), and omit
|
||||
.B MAP_FIXED
|
||||
from
|
||||
.IR flags .
|
||||
In this case, the system chooses the address for the mapping;
|
||||
the address is chosen so as not to conflict with any existing mapping,
|
||||
and will not be 0.
|
||||
If the
|
||||
.B MAP_FIXED
|
||||
flag is specified, and
|
||||
.I addr
|
||||
is 0 (NULL), then the mapped address will be 0 (NULL).
|
||||
.SH BUGS
|
||||
On Linux there are no guarantees like those suggested above under
|
||||
.BR MAP_NORESERVE .
|
||||
By default, any process can be killed
|
||||
at any moment when the system runs out of memory.
|
||||
|
||||
In kernels before 2.6.7, the
|
||||
.B MAP_POPULATE
|
||||
flag only has effect if
|
||||
.I prot
|
||||
is specified as
|
||||
.BR PROT_NONE .
|
||||
|
||||
SUSv3 specifies that
|
||||
.BR mmap ()
|
||||
should fail if
|
||||
.I length
|
||||
is 0.
|
||||
However, in kernels before 2.6.12,
|
||||
.BR mmap ()
|
||||
succeeded in this case: no mapping was created and the call returned
|
||||
.IR addr .
|
||||
Since kernel 2.6.12,
|
||||
.BR mmap ()
|
||||
fails with the error
|
||||
.B EINVAL
|
||||
for this case.
|
||||
.SH EXAMPLE
|
||||
.\" FIXME . Add an example here that uses an anonymous shared region for
|
||||
.\" IPC between parent and child.
|
||||
.PP
|
||||
The following program prints part of the file specified in
|
||||
its first command-line argument to standard output.
|
||||
The range of bytes to be printed is specified via offset and length
|
||||
values in the second and third command-line arguments.
|
||||
The program creates a memory mapping of the required
|
||||
pages of the file and then uses
|
||||
.BR write (2)
|
||||
to output the desired bytes.
|
||||
.nf
|
||||
|
||||
#include <sys/mman.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define handle_error(msg) \\
|
||||
do { perror(msg); exit(EXIT_FAILURE); } while (0)
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char *addr;
|
||||
int fd;
|
||||
struct stat sb;
|
||||
off_t offset, pa_offset;
|
||||
size_t length;
|
||||
ssize_t s;
|
||||
|
||||
if (argc < 3 || argc > 4) {
|
||||
fprintf(stderr, "%s file offset [length]\\n", argv[0]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
fd = open(argv[1], O_RDONLY);
|
||||
if (fd == \-1)
|
||||
handle_error("open");
|
||||
|
||||
if (fstat(fd, &sb) == \-1) /* To obtain file size */
|
||||
handle_error("fstat");
|
||||
|
||||
offset = atoi(argv[2]);
|
||||
pa_offset = offset & ~(sysconf(_SC_PAGE_SIZE) \- 1);
|
||||
/* offset for mmap() must be page aligned */
|
||||
|
||||
if (offset >= sb.st_size) {
|
||||
fprintf(stderr, "offset is past end of file\\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (argc == 4) {
|
||||
length = atoi(argv[3]);
|
||||
if (offset + length > sb.st_size)
|
||||
length = sb.st_size \- offset;
|
||||
/* Can\(aqt display bytes past end of file */
|
||||
|
||||
} else { /* No length arg ==> display to end of file */
|
||||
length = sb.st_size \- offset;
|
||||
}
|
||||
|
||||
addr = mmap(NULL, length + offset \- pa_offset, PROT_READ,
|
||||
MAP_PRIVATE, fd, pa_offset);
|
||||
if (addr == MAP_FAILED)
|
||||
handle_error("mmap");
|
||||
|
||||
s = write(STDOUT_FILENO, addr + offset \- pa_offset, length);
|
||||
if (s != length) {
|
||||
if (s == \-1)
|
||||
handle_error("write");
|
||||
|
||||
fprintf(stderr, "partial write");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
exit(EXIT_SUCCESS);
|
||||
} /* main */
|
||||
.fi
|
||||
.SH "SEE ALSO"
|
||||
.BR getpagesize (2),
|
||||
.BR mincore (2),
|
||||
.BR mlock (2),
|
||||
.BR mmap2 (2),
|
||||
.BR mprotect (2),
|
||||
.BR mremap (2),
|
||||
.BR msync (2),
|
||||
.BR remap_file_pages (2),
|
||||
.BR setrlimit (2),
|
||||
.BR shmat (2),
|
||||
.BR shm_open (3),
|
||||
.BR shm_overview (7)
|
||||
.br
|
||||
B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
|
||||
.\"
|
||||
.\" Repeat after me: private read-only mappings are 100% equivalent to
|
||||
.\" shared read-only mappings. No ifs, buts, or maybes. -- Linus
|
||||
.SH COLOPHON
|
||||
This page is part of release 3.24 of the Linux
|
||||
.I man-pages
|
||||
project.
|
||||
A description of the project,
|
||||
and information about reporting bugs,
|
||||
can be found at
|
||||
http://www.kernel.org/doc/man-pages/.
|
7
sources
7
sources
@ -1,6 +1,3 @@
|
||||
57f2e0500d177e05647990eae439a8ee man-pages-extralocale.tar.bz2
|
||||
a9c6a14e5b34c18c3684a0b68322572f man-suid-bins.tar.bz2
|
||||
7c78aff03c0a6767ba483d34f19e4b09 man-pages-posix-2003-a.tar.bz2
|
||||
4a222811a5589cf6d80cb0b4e1789fe8 man-pages_add-02.tar.bz2
|
||||
bf80e51c1db4fdf6d0ee21e2f9c49485 man-pages_syscalls-03.tar.bz2
|
||||
e09dbba0bba9b54c2253a550fdb602cc man-pages-3.27.tar.bz2
|
||||
adc79328fce994eb88e9ac9ddfd84b6f man-pages-3.28.tar.bz2
|
||||
6cea268fa2debf9b6440ee5c37cd4bc8 man-pages-additional-20101006.tar.bz2
|
||||
|
Loading…
Reference in New Issue
Block a user