All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Paolo Minazzi <Paolo.Minazzi@mitrol.it>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] Disable all iinterrupts on xenomai
Date: Fri, 28 Jun 2013 16:57:48 +0200	[thread overview]
Message-ID: <51CDA46C.6040100@xenomai.org> (raw)
In-Reply-To: <51CD99C6.2050409@mitrol.it>

On 06/28/2013 04:12 PM, Paolo Minazzi wrote:
> Hi to all
>
> I have to disable completely interrupts on arm on xenomai 2.5.6
> I have a small piece of code that no one must interrupt.
>
> I have seen there are a lot of #define and I have tried all.
> 1) rthal_local_irq_save
> 2) local_irq_save_hw
> 3) rthal_irq_disable (this seems to work but I have to disable all irq
> lines)

Nope. rthal_irq_disable() is the strict equivalent of 
local_irq_disable() from a non-virtualized IRQ context. This masks out 
interrupts at CPU level.

> 4) inline asm on cpsr register with mask 0x40 and 0x80
>

This may not be what you need, as this does not account for the 
virtualized interrupt state the interrupt pipeline manages.

> I have tried all, but the best way seems
>
> #define my_local_irq_save(x)      ((x) =
> ipipe_test_and_stall_pipeline_head() & 1)
> #define my_local_irq_restore(x)   ipipe_restore_pipeline_head(x)
>
> but sometimes seems not works.

Certainly it does work, always. The entire house is built on top of 
this. You may want to check your test code again.

>
> I only need the simple concept of local_irq_save and local_irq restore
> of standard linux.
> Is there something similar on xenomai ?
>

Over Xenomai 2.x, rthal_local_irq_save()/restore() is a wrapper to the 
proper implementation, which depends on the underlying I-pipe code.

-- 
Philippe.


      reply	other threads:[~2013-06-28 14:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-28 14:12 [Xenomai] Disable all iinterrupts on xenomai Paolo Minazzi
2013-06-28 14:57 ` Philippe Gerum [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51CDA46C.6040100@xenomai.org \
    --to=rpm@xenomai.org \
    --cc=Paolo.Minazzi@mitrol.it \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.