API определен в заголовочном файле sysroot-*-kos/include/kos/romfs.h из состава KasperskyOS SDK.
API предназначен для работы с файловыми системами ROMFS: образом ROMFS, поставляемым в составе образа ядра KasperskyOS, и образом ROMFS, помещаемым в память загрузчиком (аналогично initrd в Linux). Механизм, реализующий API, не использует VFS.
Входные и выходные данные некоторых функций API связаны с BLOB-объектами, поскольку в реализации API romfs.h используется API blob_api.h, который предназначен для получения доступа к именованным BLOB-объектам.
Сведения о функциях API приведены в таблице ниже.
Монтирование образа ROMFS
Чтобы смонтировать образ ROMFS, нужно вызвать функцию KosRomFsMount() или KosRomFsMountByHandle().
Через параметр romFsName функций KosRomFsMount() или KosRomFsMountByHandle() нужно задать произвольное имя точки монтирования, размер которого не должен превышать значения константы KOS_ROMFS_MAX_NAME (без учета терминирующего нуля). В одном процессе каждая точка монтирования должна иметь уникальное имя.
Через параметр blobName функции KosRomFsMount() нужно задать имя BLOB-объекта с требуемым образом ROMFS: romfs.0 или romfs.1. В первом случае будет смонтирован образ ROMFS из состава образа ядра, во втором случае будет смонтирован образ ROMFS, помещаемый в память загрузчиком.
В параметре blob функции KosRomFsMountByHandle() нужно указать дескриптор BLOB-объекта с требуемым образом ROMFS. Этот дескриптор нужно получить вызовом функции KnBlobGet() из API blob_api.h. Через параметр name функции KnBlobGet() нужно задать имя BLOB-объекта с требуемым образом ROMFS: romfs.0 или romfs.1 (аналогично параметру blobName функции KosRomFsMount()). После монтирования можно закрыть дескриптор BLOB-объекта.
Функции KosRomFsMount() и KosRomFsMountByHandle() выполняют монтирование только в вызывающем процессе. Для одного и того же образа ROMFS может существовать одновременно несколько точек монтирования, созданных вызовами функции KosRomFsMount() или KosRomFsMountByHandle(), в одном или нескольких процессах.
Открытие файла
Чтобы открыть файл, нужно вызвать функцию KosRomFsOpen(), указав строку вида <имя точки монтирования>/<имя файла> через параметр path.
Для одного и того же файла может существовать одновременно несколько идентификаторов, полученных вызовами функции KosRomFsOpen(), в одном или нескольких процессах. При этом операции с файлом через разные идентификаторы выполняются без взаимного влияния.
Чтение данных из файла
Чтобы выполнить чтение данных из файла, нужно использовать функцию KosRomFsRead(). Эта функция выполняет чтение, начиная с заданного смещения относительно начала файла.
Получение сведений о файле
Чтобы получить размер файла, нужно вызвать функцию KosRomFsGetFileSize().
Чтобы получить сведения, включающие размер файла, уникальный идентификатор файла в ROMFS и SID для BLOB-объекта с образом ROMFS, нужно вызвать функцию KosRomFsGetFileStat().
Закрытие файла
Чтобы закрыть файл, нужно вызвать функцию KosRomFsClose().
Размонтирование образа ROMFS
Чтобы размонтировать образ ROMFS, нужно вызвать функцию KosRomFsUnmount().
Чтобы размонтировать все образы ROMFS, нужно вызвать функцию KosRomFsUnmountAll().
Функции KosRomFsUnmount() и KosRomFsUnmountAll() выполняют размонтирование только в вызывающем процессе.
Файл, открытый на момент размонтирования образа ROMFS, остается доступным для выполнения операций до своего закрытия.
Сведения о функциях API
Функции romfs.h
Функция |
Сведения о функции |
|---|---|
|
Назначение Монтирует образ ROMFS. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Монтирует образ ROMFS. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Размонтирует образ ROMFS. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Размонтирует все образы ROMFS. Параметры Нет. Возвращаемые значения В случае успеха возвращает |
|
Назначение Открывает файл. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Закрывает файл. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Читает данные из файла, начиная с заданного смещения. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Позволяет получить размер файла. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Позволяет получить сведения о файле. Параметры
Возвращаемые значения В случае успеха возвращает |