 |
Index for Section 2 |
|
 |
Alphabetical listing for G |
|
 |
Bottom of page |
|
getaddressconf(2)
NAME
getaddressconf - Get information about the system address space
configuration
SYNOPSIS
#include <sys/types.h>
#include <sys/addrconf.h>
int getaddressconf(
struct addressconf *buffer,
size_t length );
PARAMETERS
buffer Points to an array of addressconf structures.
length 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 space on the 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 by using 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
member definitions:
caddr_t ac_bas;
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.
unsigned ac_flags;
Flags that describe the area. Following are descriptions of these
flags, which are defined in the sys/addrconf.h header file:
AC_UPWARD
The area grows towards higher addresses. The base address
specified is the lowest address in the area.
AC_DOWNWARD
The area grows towards lower addresses. The base address
specified is the lowest address above the area.
AC_FIXED
The area always starts at the specified base address. For
example, on many machines the text area is a fixed area.
AC_FLOAT
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:
AC_TEXT The area that normally contains the text region of an absolute
executable program.
AC_DATA The area that normally contains the data region of an absolute
executable program.
AC_BSS The area that normally contains the bss region of an absolute
executable program.
AC_STACK
The area that normally contains the process' user-mode stack.
AC_LDR_TEXT
The area reserved for the text region of the default program loader
see the exec_with_loader() function.
AC_LDR_DATA
The area reserved for the data region of the default program
loader.
AC_LDR_BSS
The area reserved for the bss region of the default program loader.
AC_MMAP_TEXT
The area that normally contains text regions of relocatable files
loaded by the program loader, or otherwise mapped using the mmap()
function.
AC_MMAP_DATA
The area that normally contains data regions of relocatable files
loaded by the program loader, or otherwise mapped using the mmap()
function.
AC_MMAP_BSS
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 that are 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:
[EFAULT]
The address specified for buffer is not valid.
SEE ALSO
Functions: brk(2), exec(2), exec_with_loader(2), mmap(2)
 |
Index for Section 2 |
|
 |
Alphabetical listing for G |
|
 |
Top of page |
|