Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Apropos / Subsearch:
optional field

 madvise(2)							  madvise(2)

      madvise() - advise the system of a process's expected paging behavior

      #include <&lt&lt&lt;sys/mman.h>&gt&gt&gt;

      int madvise(
	   caddr_t addr,
	   size_t len,
	   int behav );

      The madvise system call permits a process to advise the system about
      its expected future behavior in referencing a mapped file or an
      anonymous memory region.	Certain implementations can use this
      information to optimize the use of resources.

      addr and len specify the address and length in bytes of the region to
      which the advice refers.	For MADV_DONTNEED, the address and length
      must be contained within a successful call to mmap() (see mmap(2));
      otherwise, madvise() fails with an [EINVAL] error.

      The behav argument is one the following flags defined in the header

		Removes any previous advice and sets the default behavior.
		By default, the kernel tracks access patterns on data
		objects and performs I/Os based on process trends (that is,
		sequential versus random).  Sequential trends cause larger
		"read-ahead" I/Os, while random accesses reduce the amount
		of I/O to avoid unnecessary I/O.

		Informs the kernel that any objects mapped in this range
		will be accessed in a random matter.  The kernel will read
		only the minimal amount of data to satisfy the user fault.

		Informs the kernel that any objects mapped in this range
		will be accessed in a sequential matter.  The kernel will
		perform the maximum read-ahead for every fault.	 The kernel
		does not pay attention to access patterns and trends, but
		instead assumes sequentiality for every access on the

		Informs the kernel that the specified range is no longer
		needed by the process.	This allows the kernel to release
		the physical pages associated with an address range back to
		the system for use by other processes.

 Hewlett-Packard Company	    - 1 -   HP-UX Release 11i: November 2000

 madvise(2)							  madvise(2)

		MADV_DONTNEED is restricted to object ranges created with
		calls to mmap().  Attempting to use MADV_DONTNEED on an
		object that was not created using a call to mmap() will
		result in [EINVAL] being returned to the caller.

		Will need these pages.

		Ensure that resources are reserved.

      The current implementation of madvise() defines MADV_SPACEAVAIL and
      MADV_WILLNEED as null operations.

      madvise() returns the following values:

	    0	Successful completion.
	   -1	Failure.  errno is set to indicate the error.

      If madvise() fails, errno is set to one of the following values.

	   [EFAULT]	  The range specified by (addr, addr+len) is invalid
			  for a process's address space, or permission was
			  incorrect on the object for the behav specified.

	   [EINVAL]	  behav contains an invalid value, or addr is not a
			  multiple of the page size as returned by the
			  system call sysconf(_SC_PAGE_SIZE).

	   [EINVAL]	  The address range specified by addr and len was
			  not created by a successful call to mmap().

      madvise() was developed by HP and OSF.

      mmap(2), sysconf(2).

      madvise(): AES, SVID3

 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000