Присвоить старший и младший номер устройства
#include <sys/rsrcdbmgr.h>#include <sys/rsrcdbmsg.h>dev_t rsrcdbmgr_devno_attach( const char *name,int minor_request,int flags );
<sys/ftype.h>
.-1
, чтобы система могла назначить следующий доступный младший номер.libc
Функция rsrcdbmgr_devno_attach() резервирует номер устройства, состоящий из:
-1
, функция возвращает первый свободный младший номер в указанном классе. В системе имеется максимум 64
основных числа (от 0
до 63
) и максимум 1024
младших номера (от 0
до 1023
) на один старший номер.
Старшие и младшие номера используются только менеджерами ресурсов и предоставляются через поле rdev структуры iofunc_attr_t и, соответственно, поле st_rdev структуры struct stat. Они не требуются для корректной работы; на простых устройствах запись будет симулирована.
Имена классов
Как было сказано выше, название класса устройств может быть произвольным. Следующие имена классов определены в <sys/ftype.h>
:
Константа | Значение | Класс |
---|---|---|
_MAJOR_PATHMGR | "pathmgr" | Используется только менеджером путей |
_MAJOR_DEV | "dev" | Устройства в /dev только с одним экземпляром (например, /dev/tty ) |
_MAJOR_BLK_PREFIX | "blk-" | Все блочные устройства (например, /dev/hd[0-9]* будет "blk-hd") |
_MAJOR_CHAR_PREFIX | "char-" | Все символьные устройства (например, /dev/ser[0-9]* будет "char-ser") |
_MAJOR_FSYS | "fsys" | Все файловые системы |
Объект dev_t
, содержащий старшее и младшее число.
Если возникла ошибка функция возвращает -1
, код ошибки записывается в errno.
Можно извлечь значения старшего и младшего чисел из объекта dev_t
с помощью макросов major() и minor(), определенных в <sys/types.h>
. Для получения дополнительной информации см. документацию по struct stat.
#include <sys/rsrcdbmgr.h>#include <sys/rsrcdbmsg.h>char *dev_name;int myminor_request, flags=0;dev_t major_minor;major_minor = rsrcdbmgr_devno_attach( dev_name, myminor_request, flags );...rsrcdbmgr_devno_detach( major_minor, flags );
ЗОСРВ «Нейтрино»
Если приложение вызывает эту функцию, оно должно запускаться от имени пользователя root.
iofunc_attr_t, struct stat, rsrcdbmgr_attach(), rsrcdbmgr_devno_detach(), stat()
Предыдущий раздел: Описание API системной библиотеки