*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> sgi_use_anyaddr (1)              


sgi_use_anyaddr(1)					    sgi_use_anyaddr(1)

NAME    [Toc]    [Back]

     sgi_use_anyaddr - disable reserved	range for auto-placed mappings

SYNOPSIS    [Toc]    [Back]

     sgi_use_anyaddr command [arguments]

DESCRIPTION    [Toc]    [Back]

     sgi_use_anyaddr executes command with the reserved	range of the virtual
     address space (from 0x30000000 to 0x40000000) disabled.  Normally,	the
     kernel does not auto-place	mappings made by mmap(2) and shmat(2) in the
     reserved range. By	disabling the reserved range with sgi_use_anyaddr, the
     kernel is permitted to use	any available virtual address for mapping
     requests made by command.	sgi_use_anyaddr	is implemented by invoking
     syssgi(2) with request parameter SGI_UNSUPPORTED_MAP_RESERVED_RANGE and
     then performing an	exec of	command. The effect of this option is the same
     as	if MAP_SGI_ANYADDR and SHM_SGI_ANYADDR were added to all future	calls
     to	mmap(2)	and shmat(2) respectively by command.  Note that this syssgi
     option is inherited across	fork and exec, so command and all its
     descendants will be affected by this.

     As	described in mmap(2), the kernel chooses a virtual address for a new
     mapping created by	mmap(2)	or shmat(2) when zero is passed	as the attach
     address.  When the	kernel auto-places a mapping in	this manner, it	is
     guaranteed	that it	will not place the mapping in the reserved range.  The
     only mappings that	can be placed in the reserved range are	those where
     the user explicitly specifies an attach address that is in	the reserved

     The reserved range	was originally created in the earlier 90's by a
     MIPS/UNIX standards body at the request of	application writers.  The
     application writers wanted	a portion of the virtual address space where
     they could	be assured they	could place their own mappings via mmap(2) and
     shmat(2) without the risk of overlapping other mappings placed by the
     kernel.  A	256 MB region from 0x30000000 to 0x40000000 was	reserved for
     use by applications to use	by specifying an explicit attach address with
     mmap(2) or	shmat(2). It is	guaranteed the kernel will never auto-place a
     mapping in	this range when	zero is	passed as the attach address to
     mmap(2) and shmat(2) because this range has been reserved for
     applications that specify explicit	attach addresses in this range.

     At	the time the reserved range was	created, applications were still
     relatively	small by today's standards, so having this 256 MB hole in the
     middle of the 2 GB	user virtual address space was not an issue.
     Application program size has grown	substantially over the years and some
     applications find they can	no longer easily fit in	the 2 GB address space
     available when running in 32-bit mode.  Having the	reserved range take
     away 256 MB makes it difficult for	some applications to allocate the
     memory space they require on 32-bit systems.  This	command, the
     flag to mmap(2), and the SHM_SGI_ANYADDR flag to shmat(2) together	allow
     the application to	control	when the reserved range	is used	so
     applications which	so choose may disable it.  For compatibility, the

									Page 1

sgi_use_anyaddr(1)					    sgi_use_anyaddr(1)

     reserved range is normally	enabled.

     The reserved range	is in effect for 64-bit	applications as	well, but
     since the virtual address space is	so large for these it is rarely	an
     issue.  In	general, 64-bit	applications do	not need to be concerned with
     these new flags and options to control the	reserved range.

FILES    [Toc]    [Back]

	  language-specific message file [See LANG on environ(5).]

SEE ALSO    [Toc]    [Back]

     mmap(2), shmat(2).	 syssgi(2).

WARNINGS    [Toc]    [Back]

     Some existing applications	are dependent on the reserved range being
     honored by	the kernel.  Using this	command	to disable the reserved	range
     for a command that	requires it may	cause it to fail, dump core, or
     otherwise execute incorrectly.  This applies to any other programs	the
     command may run via fork/exec since the option is inherited.  Therefore,
     this command and the syssgi(2) option must	be used	with extreme care.  It
     should only be used with programs the user	is certain are not dependent
     on	the reserved range.  The effect	this command may have on applications
     that are in some way dependent on the reserved range is strictly
     unsupported by SGI.

									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
configAutoLogin IRIX enable or disable auto login
glisasyncmarkersgix IRIX determine if a marker is reserved or in use
vx_ncsize HP-UX the number of bytes to be reserved for the directory
AFinitaeschanneldata IRIX set a flag in an AFfilesetup so that storage space for AES channel status data is reserved in / removed from a
vacation FreeBSD E-mail auto-responder
cd_idmap Tru64 sets or gets mappings of User and Group IDs on
cd_getdevmap Tru64 get mappings of major/minor numbers of a
cd_setdevmap Tru64 set mappings of major/minor numbers of a
netrc IRIX ftp auto-login initialization file
gzexe OpenBSD create auto-decompressing executables
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service