summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/h8300
diff options
context:
space:
mode:
authorWeiY <wei.a.yang@gmail.com>2013-04-24 00:34:16 +0800
committerGedare Bloom <gedare@rtems.org>2013-05-01 10:28:48 -0400
commit9b605b28b497f398682a8ffd673f6860340957f8 (patch)
tree94e64336479fda8c8a6391357ab2894afb4a8d63 /cpukit/score/cpu/h8300
parentf6db560d291dcdfd47cd58cfab4b0aa7d9342f54 (diff)
downloadrtems-9b605b28b497f398682a8ffd673f6860340957f8.tar.bz2
Using the generic atomic ops to implement UP mode atomic for all architectures. SMP atomic port will be later.
Diffstat (limited to 'cpukit/score/cpu/h8300')
-rw-r--r--cpukit/score/cpu/h8300/Makefile.am1
-rw-r--r--cpukit/score/cpu/h8300/preinstall.am3
-rw-r--r--cpukit/score/cpu/h8300/rtems/score/cpuatomic.h40
3 files changed, 44 insertions, 0 deletions
diff --git a/cpukit/score/cpu/h8300/Makefile.am b/cpukit/score/cpu/h8300/Makefile.am
index 5a3a8cc680..db04025581 100644
--- a/cpukit/score/cpu/h8300/Makefile.am
+++ b/cpukit/score/cpu/h8300/Makefile.am
@@ -7,6 +7,7 @@ include_rtems_scoredir = $(includedir)/rtems/score
include_rtems_score_HEADERS = rtems/score/cpu.h
include_rtems_score_HEADERS += rtems/score/h8300.h
include_rtems_score_HEADERS += rtems/score/types.h
+include_rtems_score_HEADERS += rtems/score/cpuatomic.h
noinst_LIBRARIES = libscorecpu.a
libscorecpu_a_SOURCES = cpu.c cpu_asm.S
diff --git a/cpukit/score/cpu/h8300/preinstall.am b/cpukit/score/cpu/h8300/preinstall.am
index c3fb644817..0a4032ffa7 100644
--- a/cpukit/score/cpu/h8300/preinstall.am
+++ b/cpukit/score/cpu/h8300/preinstall.am
@@ -39,3 +39,6 @@ $(PROJECT_INCLUDE)/rtems/score/types.h: rtems/score/types.h $(PROJECT_INCLUDE)/r
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/types.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/types.h
+$(PROJECT_INCLUDE)/rtems/score/cpuatomic.h: rtems/score/cpuatomic.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/cpuatomic.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/cpuatomic.h
diff --git a/cpukit/score/cpu/h8300/rtems/score/cpuatomic.h b/cpukit/score/cpu/h8300/rtems/score/cpuatomic.h
new file mode 100644
index 0000000000..fd8064535e
--- /dev/null
+++ b/cpukit/score/cpu/h8300/rtems/score/cpuatomic.h
@@ -0,0 +1,40 @@
+/**
+ * @file rtems/score/cpuatomic.h
+ *
+ * This include file implements the atomic operations for h8300 and defines
+ * atomic data types which are used by the atomic operations API file. This
+ * file should use fixed name cpuatomic.h and should be included in atomic
+ * operations API file atomic.h. If the architecture works at the UP mode it
+ * will use a generic atomic ops using disable/enable-IRQ simulated. If the
+ * the architecture works at SMP mode, most of the parts of implementations
+ * are imported from FreeBSD kernel.
+ */
+
+#ifndef _RTEMS_SCORE_ATOMIC_CPU_H
+#define _RTEMS_SCORE_ATOMIC_CPU_H
+
+#include <rtems/score/genericcpuatomic.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup RTEMS atomic implementation
+ *
+ */
+
+/**@{*/
+
+#if !defined(RTEMS_SMP)
+#include <rtems/score/genericatomicops.h>
+#else
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/**@}*/
+#endif
+/* end of include file */