diff options
author | nanger <zhenyinan@huawei.com> | 2018-08-20 11:14:15 +0800 |
---|---|---|
committer | yinan zhen <zhenyinan@huawei.com> | 2018-08-24 01:00:15 +0000 |
commit | b63ec47559ad7b90f348dd733b805d78d156893d (patch) | |
tree | 2118aca2dd56f41972d96b7e478c00af55206d95 /src/framework/common/include/arch | |
parent | 866a942c3581440bef9ebda5d84c039490bb3179 (diff) |
Feat: add new share memory module
Change-Id: I25e6ca1bd3d2acc0031926e3f46d4501e8d78f1a
Signed-off-by: nanger <zhenyinan@huawei.com>
Diffstat (limited to 'src/framework/common/include/arch')
-rw-r--r-- | src/framework/common/include/arch/x86/dmm_atomic.h | 21 | ||||
-rw-r--r-- | src/framework/common/include/arch/x86/dmm_barrier.h | 21 | ||||
-rw-r--r-- | src/framework/common/include/arch/x86/dmm_pause.h | 30 | ||||
-rw-r--r-- | src/framework/common/include/arch/x86/dmm_rwlock.h | 21 | ||||
-rw-r--r-- | src/framework/common/include/arch/x86/dmm_spinlock.h | 21 |
5 files changed, 114 insertions, 0 deletions
diff --git a/src/framework/common/include/arch/x86/dmm_atomic.h b/src/framework/common/include/arch/x86/dmm_atomic.h new file mode 100644 index 0000000..fae99c2 --- /dev/null +++ b/src/framework/common/include/arch/x86/dmm_atomic.h @@ -0,0 +1,21 @@ +/* +* +* Copyright (c) 2018 Huawei Technologies Co.,Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at: +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +#ifndef _DMM_ATOMIC_H__ARCH_X86_ +#define _DMM_ATOMIC_H__ARCH_X86_ + +#include "generic/dmm_atomic.h" + +#endif /* #ifndef _DMM_ATOMIC_H__ARCH_X86_ */ diff --git a/src/framework/common/include/arch/x86/dmm_barrier.h b/src/framework/common/include/arch/x86/dmm_barrier.h new file mode 100644 index 0000000..bf53650 --- /dev/null +++ b/src/framework/common/include/arch/x86/dmm_barrier.h @@ -0,0 +1,21 @@ +/* +* +* Copyright (c) 2018 Huawei Technologies Co.,Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at: +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +#ifndef _DMM_BARRIER_H__ARCH_X86_ +#define _DMM_BARRIER_H__ARCH_X86_ + +#include "generic/dmm_barrier.h" + +#endif /* #ifndef _DMM_BARRIER_H__ARCH_X86_ */ diff --git a/src/framework/common/include/arch/x86/dmm_pause.h b/src/framework/common/include/arch/x86/dmm_pause.h new file mode 100644 index 0000000..56c60f0 --- /dev/null +++ b/src/framework/common/include/arch/x86/dmm_pause.h @@ -0,0 +1,30 @@ +/* +* +* Copyright (c) 2018 Huawei Technologies Co.,Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at: +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +#ifndef _DMM_PAUSE_H_ +#define _DMM_PAUSE_H_ + +#include <emmintrin.h> + +inline static void +dmm_pause (void) +{ + _mm_pause (); +} + +#define DMM_PAUSE_WHILE(cond) do { dmm_pause(); } while (!!(cond)) +#define DMM_WHILE_PAUSE(cond) do { while (!!(cond)) dmm_pause(); } while (0) + +#endif /* #ifndef _DMM_PAUSE_H_ */ diff --git a/src/framework/common/include/arch/x86/dmm_rwlock.h b/src/framework/common/include/arch/x86/dmm_rwlock.h new file mode 100644 index 0000000..0c31329 --- /dev/null +++ b/src/framework/common/include/arch/x86/dmm_rwlock.h @@ -0,0 +1,21 @@ +/* +* +* Copyright (c) 2018 Huawei Technologies Co.,Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at: +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +#ifndef _DMM_RWLOCK_H__ARCH_X86_ +#define _DMM_RWLOCK_H__ARCH_X86_ + +#include "generic/dmm_rwlock.h" + +#endif /* #ifndef _DMM_RWLOCK_H__ARCH_X86_ */ diff --git a/src/framework/common/include/arch/x86/dmm_spinlock.h b/src/framework/common/include/arch/x86/dmm_spinlock.h new file mode 100644 index 0000000..69ed9a6 --- /dev/null +++ b/src/framework/common/include/arch/x86/dmm_spinlock.h @@ -0,0 +1,21 @@ +/* +* +* Copyright (c) 2018 Huawei Technologies Co.,Ltd. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at: +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +#ifndef _DMM_SPINLOCK_H__ARCH_X86_ +#define _DMM_SPINLOCK_H__ARCH_X86_ + +#include "generic/dmm_spinlock.h" + +#endif /* #ifndef _DMM_SPINLOCK_H__ARCH_X86_ */ |