unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



getaddressconf(2)					    getaddressconf(2)



NAME

  getaddressconf - Gets	information about system address space configuration

SYNOPSIS

  #include <&lt;sys/types.h>&gt;
  #include <&lt;sys/addrconf.h>&gt;
  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 spaces on this system.  This information is intended to be
  used by programs such	as the program loader, which need to manage the	con-
  tents	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, occupy-
  ing 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;

  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.

  ac_flags  The	flags describe the area.  They are also	defined	in the
	    sys/addrconf.h header file,	and are	described as follows:

	    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 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.

RELATED	INFORMATION

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