Re: Reserving the same virtual address space range in several programs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--- Vishnu M Menon <vishnu_m_menon@xxxxxxxxx> wrote:

> Hi,
> 
> I am trying to solve this problem: reserve the same
> virtual memory address range in a given set of
> programs so that no addresses falling within this
> range will be used by the processes for any other
> purpose. Later I'll map a shared memory region to
> this
> address using mmap(.) or shmat(.).
> 
> My question is: is there a way I can use GCC to
> achieve this VM address reservation? The programs
> are
> fully in my control and are extremely specialized,
> so
> I am at liberty to use techniques sane people would
> balk at.
> 
> To give a clearer idea of what I'm getting at,
> reserving 10 MB of memory space might be achieved
> through something like:
> 
> char g_MemArray[ 10 * ( 1 << 20 ) ];
> 
> int
> main()
> {
>     printf("Starts at %p\n", g_MemArray );
>     return 0;
> }
> 
> But of course, layout of global variables will vary
> from program to program. I am trying to see if
> somehow
> the layout can be specified so that VM addresses are
> guaranteed to be the same.
> 
> TIA for the replies. I would also welcome any
> solutions that do not involve gcc, though I realize
> this would be off-topic (for which I apologize in
> advance!). 
> 
> Regards,
> Vishnu
> 


there is an example on the web showing how to do this
on a unix system (it concerns fortran common blocks,
but the concepts are the same).

http://gfortran.info/pmwiki.php?n=CodeSnippets




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux