Jan Kiszka wrote:
 > Gilles Chanteperdrix wrote:
 > > Jan Kiszka wrote:
 > >  > Gilles Chanteperdrix wrote:
 > >  > > Philippe Gerum wrote:
 > >  > >  > Gilles Chanteperdrix wrote:
 > >  > >  > > Since binding of the semaphore heaps is now made by 
 > > xeno_skin_bind, there is
 > >  > >  > > much less modifications in src/skins/posix/init.c. However, I 
 > > had to do
 > >  > >  > > something really ugly: since binding the semaphore heaps by 
 > > xeno_skin_bind
 > >  > >  > > requires calls to open, ioctl, mmap, close and munmap, I 
 > > redefined these symbols
 > >  > >  > > to be the __real_ variants before including bind.h.
 > >  > >  > 
 > >  > >  > Is there any upside to do this instead of simply calling the 
 > > __real_*
 > >  > >  > placeholders, since we do already provide weak wrappers for those 
 > > when the
 > >  > >  > linker's wrapping magic is not invoked?
 > >  > > 
 > >  > > The point is that the wrappers and linker magic only take place for
 > >  > > POSIX skins. Other skins have to call the genuine open, ioctl, mmap,
 > >  > > close and munmap services.
 > >  > 
 > >  > What about controlling the desired prefix for generic functions in
 > >  > bind.h via some #define that the caller has to/can set before including
 > >  > the header:
 > >  > 
 > >  > #define POSIX_PREFIX    __real_
 > >  > #include <asm-generic/bits/bind.h>
 > >  > 
 > >  > and there we would have:
 > >  > 
 > >  > POSIX_PREFIX##open(...);
 > >  > 
 > >  > Looks a bit cleaner to me.
 > > 
 > > Well, in this case we end up cluttering the code with the POSIX_PREFIX
 > > macro, even in the non posix case where no prefix is needed.
 > 
 > Yes, but there are only few spots. The advantage of this strategy is
 > that it is explicit in-place (ie. inside bind.h). That avoids potential
 > collateral damage in the future when other services are added to that
 > helper which shall not be wrapped.

Actually, the only important call is open. Since once the file
descriptor has been created with __real_open, all syscall wrappers will
automatically fall back to the __real syscall variants.

-- 


                                            Gilles.

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to