.TP
.BR PROT_SEM " (since Linux 2.5.7)"
The memory can be used for atomic operations.
-It was introduced as part of
+This flag was introduced as part of the
.BR futex (2)
-implementation (in order to guarantee ability to perform atomic
-operations required by its commands such as
+implementation (in order to guarantee the ability to perform atomic
+operations required by commands such as
.BR FUTEX_WAIT ),
-but not actually used in any currently supported architecture so far.
-.\" aba46c5027cb59d98052231b36efcbbde9c77a1d ef3d3246a0d06be622867d21af25f997aeeb105f
+but is not currently used in on any architecture.
.TP
.BR PROT_SAO " (since Linux 2.6.26)"
+.\" commit aba46c5027cb59d98052231b36efcbbde9c77a1d
+.\" commit ef3d3246a0d06be622867d21af25f997aeeb105f
The memory should have strong access ordering.
This feature is specific to
-PowerPC architecture
-(version 2.06 of architecture specification adds SAO CPU feature,
+the PowerPC architecture
+(version 2.06 of the architecture specification adds the SAO CPU feature,
and it is available on POWER 7 or PowerPC A2, for example).
.PP
Additionally (since Linux 2.6.0),
.\" mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
.\" And calc_vm_flag_bits converts only GROWSDOWN/DENYWRITE/LOCKED.
.B PROT_GROWSUP
-Apply protection mode up to the end of the mapping which grows up
-(it should be a stack segment on HP PA-RISC,
-since there are no other ways to map a segment with
-.B VM_GROWSUP
-even if architecture has support for it.)
+Apply the protection mode up to the end of a mapping
+that grows upwards.
+(Such mappings are created for the stack area on
+architectures\(emfor example, HP-PARISC\(emthat
+have an upwardly growing stack.)
+.\" The VMA is one that was marked with VM_GROWSUP by the kernel
+.\" when the stack was created. Note that (unlike VM_GROWSDOWN),
+.\" there is no mmap() flag (analogous to MAP_GROWSDOWN) for
+.\" creating a VMA that is marked VM_GROWSUP.
.TP
.B PROT_GROWSDOWN
-Apply protection mode down to the beginning of the mapping which grows down
-(it should be stack segment or mapped with
+Apply the protection mode down to the beginning of a mapping
+that grows downward
+(which should be a stack segment or a segment mapped with the
.B MAP_GROWSDOWN
-flag set.)
+flag set).
.PP
Like
.BR mprotect (),
.IR prot .
.TP
.BR EINVAL
-Invalid (other than
-.BR PROT_READ ,
-.BR PROT_WRITE ,
-.BR PROT_EXEC ,
-.BR PROT_SEM ,
-.BR PROT_SAO
-(on PowerPC only),
-.BR PROT_GROWSUP ,
-.BR PROT_GROWSDOWN )
-flags specified in
+Invalid flags specified in
.IR prot .
.TP
.BR EINVAL
(PowerPC architecture)
.B PROT_SAO
-specified in
+was specified in
.IR prot ,
but SAO hardware feature is not available.
.TP