Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
0d38d840
提交
0d38d840
2月 15, 2012
创建
作者:
Nickolai Zeldovich
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use the real atomic header from libstdc++
上级
7e680dba
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
75 行增加
和
17 行删除
+75
-17
atomic.hh
atomic.hh
+6
-2
atomic_base.h
atomic_base.h
+69
-15
atomic_std.h
atomic_std.h
+0
-0
没有找到文件。
atomic.hh
浏览文件 @
0d38d840
...
...
@@ -7,8 +7,12 @@
#define _GLIBCXX_END_EXTERN_C }
#define __glibcxx_assert(x)
#include "atomic_base.h"
#include "atomic_2.h"
#define _GLIBCXX_ATOMIC_BUILTINS_1 1
#define _GLIBCXX_ATOMIC_BUILTINS_2 1
#define _GLIBCXX_ATOMIC_BUILTINS_4 1
#define _GLIBCXX_ATOMIC_BUILTINS_8 1
#include "atomic_std.h"
template
<
class
T
>
struct
atomic
:
public
std
::
__atomic2
::
__atomic_base
<
T
>
{
...
...
atomic_base.h
浏览文件 @
0d38d840
...
...
@@ -113,21 +113,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// 1 == __atomic1 == Best available, sometimes lock-free
// 2 == __atomic2 == Always lock-free
/// Lock-free Property
#if defined(_GLIBCXX_ATOMIC_BUILTINS_1) && defined(_GLIBCXX_ATOMIC_BUILTINS_2) \
&& defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_ATOMIC_BUILTINS_8)
# define _GLIBCXX_ATOMIC_PROPERTY 2
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic2
#elif defined(_GLIBCXX_ATOMIC_BUILTINS_1)
# define _GLIBCXX_ATOMIC_PROPERTY 1
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic1
#else
# define _GLIBCXX_ATOMIC_PROPERTY 0
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic0
#endif
inline
namespace
_GLIBCXX_ATOMIC_NAMESPACE
{
}
namespace
__atomic0
{
struct
atomic_flag
;
...
...
@@ -150,6 +135,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using
__atomic0
::
__atomic_base
;
}
/// Lock-free Property
#if defined(_GLIBCXX_ATOMIC_BUILTINS_1) && defined(_GLIBCXX_ATOMIC_BUILTINS_2) \
&& defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_ATOMIC_BUILTINS_8)
# define _GLIBCXX_ATOMIC_PROPERTY 2
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic2
#elif defined(_GLIBCXX_ATOMIC_BUILTINS_1)
# define _GLIBCXX_ATOMIC_PROPERTY 1
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic1
#else
# define _GLIBCXX_ATOMIC_PROPERTY 0
# define _GLIBCXX_ATOMIC_NAMESPACE __atomic0
#endif
#define ATOMIC_CHAR_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
#define ATOMIC_CHAR16_T_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
#define ATOMIC_CHAR32_T_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
...
...
@@ -159,6 +157,62 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#define ATOMIC_LONG_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
#define ATOMIC_LLONG_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY
inline
namespace
_GLIBCXX_ATOMIC_NAMESPACE
{
}
/// atomic_char
typedef
__atomic_base
<
char
>
atomic_char
;
/// atomic_schar
typedef
__atomic_base
<
signed
char
>
atomic_schar
;
/// atomic_uchar
typedef
__atomic_base
<
unsigned
char
>
atomic_uchar
;
/// atomic_short
typedef
__atomic_base
<
short
>
atomic_short
;
/// atomic_ushort
typedef
__atomic_base
<
unsigned
short
>
atomic_ushort
;
/// atomic_int
typedef
__atomic_base
<
int
>
atomic_int
;
/// atomic_uint
typedef
__atomic_base
<
unsigned
int
>
atomic_uint
;
/// atomic_long
typedef
__atomic_base
<
long
>
atomic_long
;
/// atomic_ulong
typedef
__atomic_base
<
unsigned
long
>
atomic_ulong
;
/// atomic_llong
typedef
__atomic_base
<
long
long
>
atomic_llong
;
/// atomic_ullong
typedef
__atomic_base
<
unsigned
long
long
>
atomic_ullong
;
/// atomic_wchar_t
typedef
__atomic_base
<
wchar_t
>
atomic_wchar_t
;
/// atomic_char16_t
typedef
__atomic_base
<
char16_t
>
atomic_char16_t
;
/// atomic_char32_t
typedef
__atomic_base
<
char32_t
>
atomic_char32_t
;
/// atomic_char32_t
typedef
__atomic_base
<
char32_t
>
atomic_char32_t
;
/// atomic_size_t
typedef
__atomic_base
<
size_t
>
atomic_size_t
;
/// atomic_ptrdiff_t
typedef
__atomic_base
<
ptrdiff_t
>
atomic_ptrdiff_t
;
#define ATOMIC_VAR_INIT(_VI) { _VI }
template
<
typename
_Tp
>
...
...
atomic_std.h
0 → 100644
浏览文件 @
0d38d840
差异被折叠。
点击展开。
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论