Re: replace a legacy proprietary RTOS (Real-Time executive) with NetBSD!
Mindaugas Rasiukevicius <[email protected]> Mon, 12 Jan 2009 16:00:48 +0000
| Newsgroups | gmane.os.netbsd.devel.kernel,gmane.os.netbsd.ports.arm,gmane.os.netbsd.devel.embedded |
|---|---|
| Message-ID | <[email protected]> |
"Thirupathiah Annapureddy" <[email protected]> wrote: > Few other specific questions: > - Is there a message queue/mailbox mechanism inside the kernel for > communication between two kernel tasks? or do we need to go for a > custom implementation. > Depending what kind of message queue mechanism you mean exactly. There is no generic mechanism, like in DragonFlyBSD. However, it is very easy achievable by using mutex(9) + condvar(9) + queue(9). One can have a look at POSIX message queue implementation: http://nxr.netbsd.org/source/xref/sys/kern/sys_mqueue.c While it is an interface for user-space, it would be pretty much the same concept in a case of kernel interface (code could be just re-used). There is a generic cross-call facility, however it is designed for more specific use: http://nxr.netbsd.org/source/xref/sys/kern/subr_xcall.c No xcall(9) man page yet, but interface is very simple. > - is there a semaphore implementation for usage from kernel space? I > could see mutex(9), but not semaphore. > No. Addition of the kernel semaphore was considered about a year ago, but it seemed there was no use for in today's kernel. > - is there a kernel space timer APIs to handle addition of a soft > timer, deletion, modification etc functions. > There is callout(9) interface. There is a 3rd party patch to support high-resolution timers (with the support for ARM platform): http://mail-index.netbsd.org/tech-kern/2008/06/25/msg001847.html http://mail-index.netbsd.org/tech-kern/2008/09/15/msg002727.html However, it is not yet integrated, as the goal is to make them based on the same callout(9) interface. > - can the interrupts be field in the user-space in case we decide to > port some of the device/IO access code to the user space to minimize > the porting changes? Not sure what do you mean here, sorry. But well.. there is no standard way to control the interrupts from user-space. > > Thanks in advance, > Thiru -- Best regards, Mindaugas