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.

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to