From c913c64be22f0b91552fdebb16b1505591a32c64 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 9 Jun 2009 23:41:35 -0700 Subject: ARM: Add a memory_barrier function to the "comm page". This function doesn't actually provide a memory barrier (I don't think they're implemented) and instead just returns. --- src/arch/arm/linux/process.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/arch/arm/linux') diff --git a/src/arch/arm/linux/process.cc b/src/arch/arm/linux/process.cc index bc6388b73..a36d1fd8f 100644 --- a/src/arch/arm/linux/process.cc +++ b/src/arch/arm/linux/process.cc @@ -482,6 +482,14 @@ ArmLinuxProcess::startup() swiNeg1, sizeof(swiNeg1)); } + // We don't have barriers, so just return. + uint8_t memory_barrier[] = + { + 0x0e, 0xf0, 0xa0, 0xe1 //usr_ret lr + }; + tc->getMemPort()->writeBlob(commPage + 0x0fa0, memory_barrier, + sizeof(memory_barrier)); + // This -should- be atomic, but I don't think all the support that we'd // need is implemented. There should also be memory barriers around it. uint8_t cmpxchg[] = -- cgit v1.2.3