Content-type: text/html Man page of getaddressconf

getaddressconf

Section: System Calls (2)
Index Return to Main Contents
 

NAME

getaddressconf - Gets information about system address space configuration  

SYNOPSIS

#include <sys/types.h> #include <sys/addrconf.h>

int getaddressconf (        struct addressconf *buffer,
       size_t length );
 

PARAMETERS

Points to an array of addressconf structures. Specifies the size in bytes of the array pointed to by the buffer parameter.  

DESCRIPTION

The getaddressconf() function fills in the array of structures pointed to by the buffer parameter with information describing the configuration of process address spaces on this system. This information is intended to be used by programs such as the program loader, which need to manage the contents of a process' address space using the memory management primitives such as the mmap() function.

The buffer parameter points to an array of addressconf structures, occupying a total of length bytes. Each element of the array describes a single area of the process address space. The addressconf structure is defined in the sys/addrconf.h header file, and it contains the following members: caddr_t ac_base; unsigned ac_flags; The base virtual address of the area. For an upward-growing area, this is the lowest virtual address in the area; for a downward-growing area, this is the lowest virtual address above the area. The flags describe the area. They are also defined in the sys/addrconf.h header file, and are described as follows: The area grows towards higher addresses. The base address specified is the lowest address in the area. The area grows towards lower addresses. The base address specified is the lowest address above the area. The area always starts at the specified base address. For example, on many machines the text area is a fixed area. The area floats to the first available virtual address above the specified base address. For example, on many machines, the data area floats above the text area.

Each element in the array of addressconf structures describes a separate area of the process' address space. These areas have been defined in the sys/addrconf.h header file; other areas may be defined in the future or on other machine types. The array elements are indexed with the following constants: The area that normally contains the text region of an absolute executable program. The area that normally contains the data region of an absolute executable program. The area that normally contains the bss region of an absolute executable program. The area that normally contains the process' user-mode stack. The area reserved for the text region of the default program loader see the exec_with_loader() function. The area reserved for the data region of the default program loader. The area reserved for the bss region of the default program loader. The area that normally contains text regions of relocatable files loaded by the program loader, or otherwise mapped using the mmap() function. The area that normally contains data regions of relocatable files loaded by the program loader, or otherwise mapped using the mmap() function. The area that normally contains the bss regions of relocatable files loaded by the program loader, or anonymous regions mapped using the mmap() function.

The sys/addrconf.h header file also defines the AC_N_AREAS symbol to be the number of distinct areas currently defined for this system. Normally, the buffer parameter supplied to the getaddressconf() function should be large enough to hold information for AC_N_AREAS regions. If buffer is not large enough, the remaining information is truncated. The getaddressconf() call fills in the first AC_N_AREAS records in the user-supplied buffer with the address configuration information for this system, as described above.  

RETURN VALUES

Upon successful completion, the number of bytes actually written to the user's buffer is returned. If an error occurs, -1 is returned, and errno is set to indicate the error.  

ERRORS

If the getaddressconf() function fails, errno may be set to the following value: The address specified for buffer is not valid.  

RELATED INFORMATION

Functions: mmap(2), exec(2), exec_with_loader(2), brk(2) delim off


 

Index

NAME
SYNOPSIS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:40:14 GMT, October 02, 2010