S
Hello, I've actually done what I said I would, and tried compiling the LinuxPLC source on the QNX Real Time Platform (RTP). Not much luck. Here's what I found: QNX RTP is totally POSIX compliant, but some of the code used in smm, gmm, and cmm are not. Specifically, including the headers <sys/shm.h> and <asm/page.h> are not standard POSIX files. Regarding the shm.h file (shared memory), the preferred POSIX compliant way to do shared memory is to use shm_open() and shm_unlink() to create and remove the shared memory object, and then use the functions from <sys/mman.h> to map that memory into your process. This will comply with the POSIX Real Time Interface (1003.1b). As for the page.h file, I think that the only reason you need this header is for the PAGE_SIZE constant. I guess we need to look at *why* you need this value, and where else we can get that from, or we could just have special cases for different platforms. Since QNX doesn't actually page to disk (for performance reasons) it could probably just be commented out in the QNX version. So, let me know about the PAGE_SIZE constant. I will be checking out how hard it will be for me to replace the function calls for shared memory with POSIX compliant ones. If Linux is also POSIX compliant in this area (and I'm sure it is), then we'll have a good cross platform code base going here in no time! The great thing about making it POSIX compliant, too, is that porting the PuffinPLC concept to LynxOS and other platforms will be that much easier in the future. Thanks, and keep up the good work, Scott _______________________________________________ LinuxPLC mailing list [email protected] http://linuxplc.org/mailman/listinfo/linuxplc