Побитовый атрибут GCC - PullRequest
       28

Побитовый атрибут GCC

9 голосов
/ 28 октября 2011

Что означает GCC __attribute__(bitwise)? Атрибут не упоминается на информационных страницах GCC-4.6. Я наткнулся на это в файле open-iscsi-2.0.871/include/iscsi_proto.h в исходном проекте Open-ISCSI , где он используется как

...
/*
 * 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)
...

Я подозреваю что-то, связанное с порядком байтов , но я не могу понять смысл приведенного выше фрагмента.

Ответы [ 2 ]

13 голосов
/ 28 октября 2011

Это, по-видимому, не используется GCC, но Sparse , семантический синтаксический анализатор C, используемый ядром Linux.Это задокументировано в Documentation / sparse.txt .

2 голосов
/ 28 октября 2011

Google говорит здесь , что побитовое значение больше не значит.

...