El Divendres, 11 de desembre de 2015, a les 14:20:12, Gilles Chanteperdrix va escriure: > On Fri, Dec 11, 2015 at 01:44:01PM +0100, Leopold Palomo-Avellaneda wrote: > > Hi, > > > > I'm working to make a library to work with Xenomai. It's a library that > > has a thread and open a socket to communicate with an external device via > > network. > > > > I have read the guide "Porting a Linux application to Xenomai dual kernel > > [1]" but still I have some doubts in some details. So, here my topics > > without any importance order: > > > > - What is the recommended way to obtain the link, flags, etc information > > to > > build an application that use Xenomai? xeno-config, pkg-config, some build > > macros to find the information, ... > > Quoting the document you say you have read:
:-) > "Compilation flags > > To ease that task, the xeno-config script, installed when compiling > Xenomai user-space support, is able to give you these flags. (...) > Beware: this way of obtaining the compilation flags is recommended, > if for anything because it will make using a different release of > Xenomai easier: the flags may change between two different releases." ok, but this solution implies that xeno-config must be available. In any case as CMake user, following your indications the Macros should use xeno-config. For what I have seen in the net, not all the people use that. > > - I would like to have a code that could be used with an Standard POSIX or > > a Xenomai. I thought that protecting my code with some #ifdef __XENO__ I > > could choose which part is specific to Xenomai and which no. However, I'm > > a bit confused, because then, I don't understand what is the utility of > > the wrap script. Please, could you elaborate a bit more this part, > > especially focused in an application the could use an standard network > > interface or rtnet version. > > Quoting the documentation again: "Use of Linux original services > [....] No Gilles, that's the point that I don't understand. Maybe it could be a language problem. Are you saying that, for instance using a rtnet driver, it's the same to NOT use the wrap script and use this: /* Open a plain Linux UDP socket. */ #ifndef __XENO__ fd = socket(PF_INET, SOCK_DGRAM, 0); #else /* __XENO__ */ fd = rt_dev_socket(PF_INET, SOCK_DGRAM, 0); #endif /* __XENO__ */ Or, #ifndef __XENO__ printf("Stopping the robot.\n"); #else /* __XENO__ */ rt_printf("Stopping the robot.\n"); #endif /* __XENO__ */ And which are the implications of the use of the wrap script? Could I avoid the use of the script protecting the wrapped functions with __XENO__ and it's the same? > > > - In the document, there's a section about the mlockall option. So, may I > > understand that from xenomai <= 2.6.3 it's not needed that I call the > > mlockall function? > > Quoting the documentation again: " > Starting with version 2.6.3, as part of their initialization, > Xenomai libraries systematically call mlockall to commit and lock > the whole application memory. Ok, so why it's use it in your example: http://www.xenomai.org/documentation/xenomai-2.6/html/api/trivial-periodic_8c-example.html May I understand that that line is not needed? Thanks, Leopold -- -- Linux User 152692 GPG: 05F4A7A949A2D9AA Catalonia ------------------------------------- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part. URL: <http://xenomai.org/pipermail/xenomai/attachments/20151211/e165c3df/attachment.sig> _______________________________________________ Xenomai mailing list Xenomai@xenomai.org http://xenomai.org/mailman/listinfo/xenomai