Порядок байтов в ядре

Порядок байтов в ядре

Для каждой аппаратной платформы, которая поддерживается ядром Linux, в файле <asm/byteorder.h> определена одна из двух констант __BIG_ENDIAN или __LITTLE_ENDIAN, в соответствии с используемым порядком байтов.

В этот заголовочный файл также включаются макросы из каталога include/linux/byteorder/, которые помогают конвертировать один порядок байтов в другой. Ниже показаны наиболее часто используемые макросы.

u32 __cpu_to_be32(u32); /* преобразовать порядок байтов текущего

                           процессора в порядок big-endian */

u32 __cpu_to_le32(u32); /* преобразовать порядок байтов текущего

                           процессора в порядок little-endian */

u32 __be32_to_cpu(u32); /* преобразовать порядок байтов big-endian в

                           порядок байтов текущего процессора */

u32 __lе32_to_cpu(u32); /* преобразовать порядок байтов little-endian

                           в порядок байтов текущего процессора */

Эти макросы выполняют преобразование одного порядка байтов в другой. В случае когда порядки байтов, между которыми выполняется преобразование, одинаковы (например, если выполняется преобразование в обратный порядку байтов и процессор тоже использует такой же порядок), то эти макросы не делают ничего. В противном случае возвращается преобразованное значение.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Сколько байтов адресуют 64 разряда

Из книги Основы AS/400 автора Солтис Фрэнк

Сколько байтов адресуют 64 разряда Ответ: 16 экзабайтов, что равно примерно 18,4 квинтиллионам байтов (или точнее 18 446 744 073 709 551 616 байтов).Большинство людей не в состоянии представить себе такое число. Как я уже упоминал, число байтов, которые могут быть адресованы с помощью 48


20.3.1. Unix-файл представляет собой только большой блок байтов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

20.3.1. Unix-файл представляет собой только большой блок байтов Любой файл в Unix представляет собой только большой блок байтов без каких-либо других атрибутов. В частности, не существует возможности сохранять за пределами данных файла информацию о его типе или указатель на


§ 84. Сколько байтов в килобайте?

Из книги Ководство автора Лебедев Артём Андреевич

§ 84. Сколько байтов в килобайте? Алиса. Меня зовут Алиса? Шалтай-Болтай. Какое глупое имя! Что оно значит? Алиса. Разве имя должно что-то значить? Шалтай-Болтай. Конечно, должно! Возьмем, к примеру, мое имя — оно выражает мою суть! Замечательную чудесную суть! А с таким именем,


17.5.1. Упорядочение байтов

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

17.5.1. Упорядочение байтов Сети TCP/IP, как правило, являются неоднородными; они включают в себя широкий ряд механизмов и архитектур. Одно из основных отличий между архитектурами связано со способом хранения чисел.Машинные числа составляются из последовательности байтов.


О ядре баз данных

Из книги VBA для чайников автора Каммингс Стив

О ядре баз данных Программное обеспечение, которое отвечает за выполнение основных действий по извлечению информации, которая содержится в одном или нескольких файлах базы данных, называется ядром базы данных. Ядро базы данных часто называют просто базой данных, хотя


7.4. Информация о ядре

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

7.4. Информация о ядре В файловой системе /proc есть много элементов, содержащих информацию о настройках и состоянии ядра. Некоторые из них находятся на верхнем уровне файловой системы, а некоторые скрыты в каталоге


Глава 2 Начальные сведения о ядре Linux

Из книги Разработка ядра Linux автора Лав Роберт

Глава 2 Начальные сведения о ядре Linux В этой главе будут рассмотрены основные вопросы, связанные с ядром Linux: где получить исходный код, как его компилировать и как инсталлировать новое ядро. После этого рассмотрим некоторые допущения, связанные с ядром Linux, отличия между


Реализация потоков в ядре Linux

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Реализация потоков в ядре Linux Многопоточность — это популярная сегодня программная абстракция. Она обеспечивает выполнение нескольких потоков в совместно используемом адресном пространстве памяти. Потоки также могут совместно использовать открытые файлы и другие


Глава 9 Средства синхронизации в ядре

Из книги автора

Глава 9 Средства синхронизации в ядре В предыдущей главе обсуждались источники и решения проблем, связанных с конкуренцией за ресурсы. К счастью, в ядре Linux реализовано большое семейство средств синхронизации. В этой главе обсуждаются эти средства, интерфейсы к ним, а


Информация о времени в ядре

Из книги автора

Информация о времени в ядре Концепция времени для компьютера является несколько неопределенной. В действительности, для того чтобы получать информацию о времени и управлять системным временем, ядро должно взаимодействовать с системным аппаратным обеспечением.


Порядок следования байтов

Из книги автора

Порядок следования байтов Порядок следования байтов (byte ordering) — это порядок, согласно которому байты расположены в машинном слове. Для разных процессоров может использоваться один из двух типов нумерации байтов в машинном слове: наименее значимый (самый младший) байт


Реализация связанных списков в ядре Linux

Из книги автора

Реализация связанных списков в ядре Linux В ядре Linux для прохождения по связанным спискам используется унифицированный подход. При прохождении связанного списка, если не важен порядок прохода, эту операцию не обязательно начинать с головного элемента, на самом деле вообще