From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <20060220145625.46347.qmail@domain.hid> Date: Mon, 20 Feb 2006 06:56:25 -0800 (PST) From: Cedric Herreman Subject: Re: [Xenomai-help] binding to memory heap from user space In-Reply-To: <17401.48496.769816.273046@domain.hid> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="0-1117652245-1140447385=:44600" Content-Transfer-Encoding: 8bit List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai-help --0-1117652245-1140447385=:44600 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Gilles Chanteperdrix wrote: Cedric Herreman wrote: > Hello, > > I have created a memory heap in the init_module routine of a kernel module : > rt_heap_create(&heap_data,"RT_LOG_HEAP",sizeof(ttv_log_data),H_FIFO|H_SHARED); > and > rt_heap_alloc(&heap_data,0,TM_NONBLOCK,&loc_ptr); > Both calls return succesful. > > When i try to bind to this memory in an user space application : > rt_heap_bind(&rt_heap,"RT_LOG_HEAP",TM_NONBLOCK); > the call returns with error -2, this error does not seem to be documented (i test on all the constants defined in the html API docs, xenomai v2.0). > > Can anyone give me a hint on what's wrong here ? -2 is -ENOENT, no such file or directory. You are probably missing the /dev/rtheap file. In order to create it, run "make devices" with root privileges. Gilles Chanteperdrix. Yes, i was. I added the file on the target system (doesn't have the src tree, so i can't "run make devices") like this : mknod /dev/rtheap b 1 0 Now, it is giving me the error : -EPERM. The doc says the call is made from a context that cannot sleep (interrupt, non-realtime, scheduler locked). Is it not possible to link to shared mem from a non-realtime userspace application in this way ? Cedric. --------------------------------- Brings words and photos together (easily) with PhotoMail - it's free and works with Yahoo! Mail. --0-1117652245-1140447385=:44600 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org> wrote:
Cedric Herreman wrote:
> Hello,
>
> I have created a memory heap in the init_module routine of a kernel module :
> rt_heap_create(&heap_data,"RT_LOG_HEAP",sizeof(ttv_log_data),H_FIFO|H_SHARED);
> and
> rt_heap_alloc(&heap_data,0,TM_NONBLOCK,&loc_ptr);
> Both calls return succesful.
>
> When i try to bind to this memory in an user space application :
> rt_heap_bind(&rt_heap,"RT_LOG_HEAP",TM_NONBLOCK);
> the call returns with error -2, this error does not seem to be documented (i test on all the constants defined in the html API docs, xenomai v2.0).
>
> Can anyone give me a hint on what's wrong here ?

-2 is -ENOENT, no such file or directory.

You are probably missing the /dev/rtheap file. In order to create it,
run "make devices" with root privileges.

Gilles Chanteperdrix.
Yes, i was. I added the file on the target system (doesn't have the src tree, so i can't "run make devices")  like this :
mknod /dev/rtheap b 1 0

Now, it is giving me the error : -EPERM. The doc says the call is made from a context that cannot sleep (interrupt, non-realtime, scheduler locked). Is it not possible to link to shared mem from a non-realtime userspace application in this way ?

Cedric.


Brings words and photos together (easily) with
PhotoMail - it's free and works with Yahoo! Mail. --0-1117652245-1140447385=:44600--