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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core