Использование в ядре специфических типов endiannes __be32/__be16/__le32/__le16
Ядро Linux имеет типы __be32
, __be16
и т.д. определены в ядре include/uapi/linux/types.h
,
Однако они просто typedefs для __u32
, '__u16' и тому подобное. Также в случае sparse
используется для анализа кода C, они добавляют gcc
конкретный флаг __bitwise
,
Насколько я понимаю, типы __be* или __le* могут использоваться для зависимых переменных. Но они служат скорее как средство аннотации, просто чтобы показать, что мы работаем с объектом с прямым или прямым порядком байтов. Это правильное предположение?