Add macro to flush per-CPU data
authorAchin Gupta <achin.gupta@arm.com>
Fri, 25 Jul 2014 13:47:05 +0000 (14:47 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Tue, 19 Aug 2014 13:29:23 +0000 (14:29 +0100)
This patch adds a macro which will flush the contents of the specified member of
the per-CPU data structure to the PoC. This is required to enable an update of a
per-CPU data member to be visible to all observers.

Change-Id: I20e0feb9b9f345dc5a1162e88adc7956a7ad7a64

include/bl31/cpu_data.h

index ef0b68cf15688b4e44e235fed0f961d566cebbb2..9015c4b3deef6b9528b7d452b3fe6a77559662e4 100644 (file)
@@ -104,6 +104,10 @@ void init_cpu_data_ptr(void);
 #define get_cpu_data_by_mpidr(_id, _m)    _cpu_data_by_mpidr(_id)->_m
 #define set_cpu_data_by_mpidr(_id, _m, _v) _cpu_data_by_mpidr(_id)->_m = _v
 
+#define flush_cpu_data(_m)        flush_dcache_range((uint64_t)          \
+                                                     &(_cpu_data()->_m), \
+                                                     sizeof(_cpu_data()->_m))
+
 
 #endif /* __ASSEMBLY__ */
 #endif /* __CPU_DATA_H__ */