Я собираюсь использовать struct
solaris_x86_slice из заголовка ядра Linux в пользовательском пространстве. Структура определяется следующим образом:
struct solaris_x86_slice {
__le16 s_tag; /* ID tag of partition */
__le16 s_flag; /* permission flags */
__le32 s_start; /* start sector no of partition */
__le32 s_size; /* # of blocks in partition */
};
Должен ли я использовать в качестве порядка следования байтов фиксированные типы этих специфичных для пространства ядра типов __le16
, __le32
(через <linux/types.h>
) или есть что-то специфическое для пользовательского пространства, которое является основным libcреализации (glibc, uclibc, musl) реализовать?
Я не вижу никаких типов в <endian.h>
, есть только функции преобразования, поэтому я склонен использовать __le16
, __le32
.