summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c')
-rw-r--r--cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c b/cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c
new file mode 100644
index 0000000000..9cdac4c374
--- /dev/null
+++ b/cpukit/score/cpu/nios2/nios2-isr-is-in-progress.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2011 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/system.h>
+#include <rtems/score/isr.h>
+#include <rtems/score/nios2-utility.h>
+
+bool _ISR_Is_in_progress( void )
+{
+ if ( _Nios2_Has_internal_interrupt_controller() ) {
+ return _ISR_Nest_level != 0;
+ } else {
+ uint32_t status = _Nios2_Get_ctlreg_status();
+
+ return (status & NIOS2_STATUS_IH) != 0;
+ }
+}