Секция хэдера включает три части:
* Запись хэдера
* Одну или несколько структур индекса хэдера
* Данные для структур индексов
Запись хэдера идентифицирует секцию, как хэдер rpm-пакета. Она также содержит число структур индексов и размер данных для структур индексов. Каждая запись индекса использует структуру, которая содержит номер поля данных, то есть идентификаторы для полей лицензии, имени пакета, версии и так далее. Тип идентификатора указывает на тип записи. Индикатор смещения курсора указывает, с какого смещения начинается данное поле. Счетчик хранит количество полей данного типа, которые имеются в хэдере.
Таблица ниже содержит идентификаторы типов полей.
Константа |
Значение |
Размер в байтах |
RPM_NULL_TYPE |
0 |
Не имеет размера |
RPM_CHAR_TYPE |
1 |
1 |
RPM_INT8_TYPE |
2 |
1 |
RPM_INT16_TYPE |
3 |
2 |
RPM_INT32_TYPE |
4 |
4 |
RPM_INT64_TYPE |
5 |
Пока не поддерживается |
RPM_STRING_TYPE |
6 |
Переменное количество байт, терминируется значением NULL |
RPM_BIN_TYPE |
7 |
1 |
RPM_STRING_ARRAY_TYPE |
8 |
Переменный, вектор из строк, терминированных значением NULL |
RPM_I18NSTRING_TYPE |
9 |
Переменный, вектор из строк, терминированных значением NULL |
Целые значения выровнены по двум байтам (16-битные целые) или по 4 байтам (32-битные целые).