> >> [EMAIL PROTECTED] wrote:
> >>> I did so and called, within the library, every 
> >> posix_rt-function with
> >>> the prefix __wrap_ : e.g. __wrap_shm_open then I compiled my
> >>> application, which does not use any Xenomai-function, and 
> linked it
> >>> with pthread_rt an rt (-lpthread_rt -lrt) and my new 
> Xenomai-library
> >>> (linking without any wrapping defined). Linking and 
> >> compiling did not
> >>> produce any error. But, when I call a function in my 
> library, which
> >>> in turn calls __wrap_shm_open, then shm_open fails. When I link my
> >>> application with wrapping (as provided by the XENO_CONFIG-script)
> >>> then everything is fine. Do you have an explanation for 
> >> this behavior
> >>> or even better a solution ?
> >> __wrap_shm_open only works if you have the 
> CONFIG_XENO_OPT_POSIX_SHM
> >> option enabled. Is it enabled?
> > 
> > yes it is : 
> > CONFIG_XENO_OPT_POSIX_SHM=y
> > otherwise, I think, my application linked with wrappings 
> defined wouldn´t work ? But it does.
> > 
> >> Note that xenomai posix skin shm support
> >> is mainly useful for sharing memory between kernel and 
> >> user-space. 
> > O.k., I just want to share SHM between applications. What 
> SHM construct should I use instead ?
> > 
> >> If it is enabled, then please tell us what is the value of 
> errno when
> >> __wrap_shm_open fails.
> >>
> > 
> > shm_open fails. errno=2
> > shm_open fails : : No such file or directory
> > 
> > I don´t know what this should mean ??
> 
> Well, it means that the shared memory does not exist.

I am quite shure that it exist. It is created by an other process.
Is there a /proc-entry or something else which lists existing shared memories ?

> 
> > I call shm_open in the following way :
> > #define LOGSHMNAME   "/var/logshm"
> > oflags=O_RDWR;
> > *shmfd = shm_open(LOGSHMNAME, oflags, 0);
> 
> a shm name should contain one slash at the beginning and no 
> other slash,
> for best portability.

As I expected, reducing the number of slashes to one does not change the 
behavior.

> If you want to create a shared memory, you should pass the 
> O_CREAT flag.

As mentioned above, an other process creates the shared memory.
What I still don´t understand is, what influence the wrapper defines have on 
linking.
With wrappers : aplication works fine. Without wrappers : application does not 
work !?

Roderik

Achtung: Neue E-Mail-Adresse! Attention: New e-mail-address! [EMAIL PROTECTED]
--------------------------------------------------------
manroland AG
Vorsitzender des Aufsichtsrates: Hanno C. Fiedler
Vorstand: Gerd Finkbeiner (Vorsitzender), Dr. Ingo Koch, Dr. Markus Rall, Paul 
Steidle   
Sitz der Gesellschaft: Offenbach am Main, Registergericht: Amtsgericht 
Offenbach HRB-Nr. 42592
USt-Ident-Nr. DE 250200933

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to