Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mprotect(2) — Motorola System V 88k Release 4 Version 4.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

memcntl(2)

mmap(2)

plock(2)

mlock(3C)

mlockall(3C)

sysconf(3C)

mprotect(2)  —  SYSTEM CALLS

NAME

mprotect − set protection of memory mapping

SYNOPSIS

#include <sys/types.h>
#include <sys/mman.h>
int mprotect(caddr_t addr, size_t len, int prot);

DESCRIPTION

The function mprotect changes the access protections on the mappings specified by the range [addr, addr + len) to be that specified by prot. Legitimate values for prot are the same as those permitted for mmap and are defined in sys/mman.h as:

PROT_READ/∗ page can be read ∗/
PROT_WRITE/∗ page can be written ∗/
PROT_EXEC/∗ page can be executed ∗/
PROT_NONE/∗ page can not be accessed ∗/

See the System V Application Binary Interface for further information concerning combinations of the PROT_READ, PROT_WRITE, and PROT_EXEC flags. 

RETURN VALUE

Upon successful completion, the function mprotect returns a value of 0; otherwise, it returns a value of −1 and sets errno to indicate an error. 

ERRORS

Under the following conditions, the function mprotect fails and sets errno to:

EACCES
if prot specifies a protection that violates the access permission the process has to the underlying memory object. 

EAGAIN if prot specifies PROT_WRITE over a MAP_PRIVATE mapping and there are insufficient memory resources to reserve for locking the private page. 

EINVAL if addr is not a multiple of the page size as returned by ­sysconf. 

EINVAL The argument len has a value less than or equal to 0. 

ENOMEM
if addresses in the range [addr, addr + len) are invalid for the address space of a process, or specify one or more pages which are not mapped. 

When mprotect fails for reasons other than EINVAL, the protections on some of the pages in the range [addr, addr + len) may have been changed.  If the error occurs on some page at addr2, then the protections of all whole pages in the range [addr, addr2] will have been modified.

SEE ALSO

memcntl(2), mmap(2), plock(2), mlock(3C), mlockall(3C), sysconf(3C)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026