问题描述
GCC 的 __attribute__(bitwise)
是什么意思?GCC-4.6 的信息页面中没有提到该属性.我在项目 Open-ISCSI 的源文件 open-iscsi-2.0.871/include/iscsi_proto.h
中偶然发现了它
What does GCC's __attribute__(bitwise)
mean? The attribute isn't mentioned in the info pages of GCC-4.6. I stumbled upon it in the file open-iscsi-2.0.871/include/iscsi_proto.h
in source the project Open-ISCSI where it is used as
...
/*
* If running svn modules we may need to define these.
* This should not go upstream since this is already properly defined there
*/
#ifdef __CHECKER__
#define __bitwise__ __attribute__((bitwise))
#else
#define __bitwise__
#endif
#ifdef __CHECK_ENDIAN__
#define __bitwise __bitwise__
#else
#define __bitwise
#endif
/*! initiator tags; opaque for target */
typedef uint32_t __bitwise__ itt_t;
/*! below makes sense only for initiator that created this tag */
#define build_itt(itt, age) ((__force itt_t)
((itt) | ((age) << ISCSI_AGE_SHIFT)))
#define get_itt(itt) ((__force uint32_t)(itt_t)(itt) & ISCSI_ITT_MASK)
#define RESERVED_ITT ((__force itt_t)0xffffffff)
...
我怀疑涉及字节顺序的事情,但我无法理解上面给出的片段.
I'm suspecting something involving byte-order but I can't make any sense of the snippet given above.
推荐答案
这显然不是 GCC 使用的,而是 Sparse,Linux 内核使用的 C 语义解析器.它记录在 文档/dev-tools/sparse.txt.
This is apparently not used by GCC but by Sparse, a semantic parser for C used by the Linux kernel. It is documented in Documentation/dev-tools/sparse.txt.
这篇关于GCC 位属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!