mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

DFILE(4)                                               DFILE(4)

НАЗВАНИЕ 
        dfile - файл с информацией об устройствах

ОПИСАНИЕ 
        Файл устройств, dfile, содержит информацию об устройст-
        вах,  входящих  в  систему.  Файл делится на три части.
        Первая содержит спецификации физических устройств. Вто-
        рая - системно-зависимую информацию. Третья  часть  со-
        держит  информацию, относящуюся к конкретному микропро-
        цессору.  Первые  две  части  являются   обязательными,
        третья  -  нет. Строка со звездочкой в начале или звез-
        дочкой, перед которой идут табуляции или пробелы, явля-
        ется комментарием.

        Ниже  описываются три части файла устройств. В качестве
        примера используется дисковый контроллер.

   Первая часть файла устройств 
        Каждая строка состоит из четырех или пяти полей, разде-
        ленных  табуляциями  и/или  пробелами и имеет следующий
        формат:

             имя_устройства  вектор  адрес  уровень  число

        Имя_устройства задается так же, как в файле  master(4),
        где  оно располагается в поле 1 строк из первой части и
        состоит не более чем из 8 символов [см. master(1)].

        Вектор задает шестнадцатеричный адрес вектора  прерыва-
        ний; это значение используется также в массиве векторов
        прерываний,  который  создается  при указании буквы v в
        поле 4 файла master(4).

        Адрес является  шестнадцатеричным  адресом  устройства;
        массив   адресов   устройств   создается  автоматически
        (например, hd_addr [ ]).

        Уровень - это уровень запроса шины или уровень прерыва-
        ний (от 1 до 7). Он используется в массиве уровней пре-
        рываний (например, hd_ilev [ ]), который создается  при
        указании  буквы  l  в  поле  4 строк первой части файла
        master(4).

        Пятое  поле, число - есть (десятичное) число устройств,
        ассоциированных  с соответствующим  контроллером.  Поле
        число - необязательное и, если оно опущено, использует-
        ся значение по умолчанию, которое является максимальным
        для  данного  контроллера.  Данное поле означает то же,
        что и поле 9 строк первой  части  файла  master(4),  но
        значение  из  файла  устройств  перекрывает значение из
        файла master(4).

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

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

     1.Спецификация устройств для корня, каналов и дампа 
        Три  строки  по  три поля в каждой описывают устройства
        для корневой файловой системы, для  создания  каналов и
        для выдачи дампа при сбое системы:

             root  имя_устройства  младший_номер
             pipe  имя_устройства  младший_номер
             dump  имя_устройства  младший_номер

        Младший_номер является восьмеричным.

     2.Спецификация устройства для подкачки 
        Одна строка с пятью полями задает  устройство,  которое
        будет использоваться для подкачки:

             swap  имя_устройства младший_номер нач_блок число

        Нач_блок есть блок диска (десятичный), с которого начи-
        нается  область подкачки; число задает размер области в
        блоках.

     3.Спецификация типа файловой системы 
        Несколько строк по пять полей в каждой содержат  описа-
        ния типов файловых систем:

             filesys  ид_1  флаг_1  ид_2  флаги_2

        Ид_1  есть  имя  типа файловой системы (не более чем из
        четырех символов) в том виде, как оно  выдается  компо-
        нентом  fs_namei  (  )  структуры  fstypsw  [см.  ].

        Установленный флаг_1 означает, что после очередного об-
        ращения   к  описателю  файла  будет  вызван  компонент
        fs_iput ( ) структуры fstypsw, что влияет на режим  бу-
        феризации.  Для файловых систем версии 5 этот флаг дол-
        жен быть нулевым.

        Ид_2 есть имя типа файловой системы (не  более  чем  из
        восьми  символов) в том виде, как оно хранится в струк-
        туре fsinfo [см. ].

        Если файловая система должна уведомляться  о  некоторых
        действиях,  следует установить соответствующие флаги из
        флагов_2.  Уведомление  состоит  в  вызове   компонента
        fs_notify ( ) структуры fstypsw. Можно установить такие
        флаги (или их комбинацию):

        1    Изменение каталога.

        2    Изменение корня.

        4    Позиционирование.

        Например, строка

             fylesys  s5  0  S51k  04

        описывает стандартную файловую систему версии 5.

     4.Спецификация режима работы с линией 
        Несколько строк файла устройств по три  поля  в  каждой
        описывают режимы работы с линией:

             linemod  имя_режима  список_обработчиков

        Имя_режима состоит не более чем из четырех символов.

        Список_обработчиков задается как цепочка символов. Бук-
        ва  соответствует существующему обработчику, отсутствие
        обозначается символом -. Могут задаваться следующие об-
        работчики:

        m    Обработка прерываний модема.

        o    Обработка вывода.

        i    Обработка ввода.

        O    Обработка открытия.

        C    Обработка закрытия.

        R    Обработка чтения.

        W    Обработка записи.

        I    Обработка управления.

        Стандартный  режим задается как -oiOCRWI, то есть обра-
        батывать все, кроме прерываний модема.

     5.Спецификация фактических параметров 
        Каждый параметр, упомянутый в  файле  master(4),  может
        получить (новое) значение. Строка спецификации парамет-
        ра состоит из двух полей:

             имя_параметра  значение

        Отметим,  что  все  параметры должны получить значение,
        либо в файле master(4), либо в описываемом  файле  уст-
        ройств.

     6.Спецификация модулей потоков 
        Данная  спецификация  может  содержать несколько строк,
        каждая из которых состоит из  трех  полей  и  описывает
        один модуль потока:

             stream  имя_модуля  имя_структуры

        Имя_модуля  задает  модуль потока, который может встре-
        чаться в команде I_PUSH системного вызова ioctl(2) [см.
        streamio(7)].

        Имя_структуры есть  имя  указателя  на  структуру  типа
        streamtab.  И имя_модуля, и имя_структуры должны состо-
        ять не более чем из восьми символов.

   Третья часть файла устройств 
        Третья часть содержит строки, каждая из которых начина-
        ется с определенного ключевого слова. Играет роль поря-
        док этих строк.

     1.Спецификация нестандартных драйверов 
        Данная спецификация может содержать несколько строк  по
        два поля в каждой:

             force  идентификатор

        где  идентификатор есть имя уникального идентификатора,
        определенного внутри драйвера, находящегося в библиоте-
        ке ввода/вывода ядра ОС. В результате при  редактирова-
        нии связей будут правильно подключены нетаблично управ-
        ляемые  драйверы,  такие, например, как драйверы часов,
        консоли и устройства управления памятью.

     2.Спецификация сторонних обработчиков прерываний 
        Данная спецификация может содержать несколько строк  по
        три поля в каждой:

             alien  адрес_вектора  сторонний_обработчик

        Адрес_вектора  есть  шестнадцатеричный  адрес  обычного
        вектора прерываний, подлежащих дополнительной  обработ-
        ке,  а  сторонний_обработчик задается шестнадцатеричным
        адресом точки входа. Если с адресом_вектора не ассоции-
        рован обработчик  прерываний,  то  сторонний_обработчик
        помещается  в  вектор.  В  противном случае в программе
        low.s порождаются команды [см. config(1M)], чтобы  сто-
        ронний_обработчик  получал управление, только если пре-
        рывание произошло в привилегированном режиме.

     3.Спецификация множественной обработки прерываний 
        Данная спецификация может содержать несколько строк,  в
        каждой из которых по четыре или пять полей:

             dup  флаги  адрес_вектора  обработчик  аргумент

        Флаги представляют собой битную маску. Биты интерпрети-
        руются следующим образом:

        1    Если  обработчик  вернул  0, перейти на нормальную
             точку возврата из прерывания ("intret").

        2    Если обработчик вернул 0,  перейти  на  нормальную
             точку возврата из ловушки ("alltraps").

        4    Если обработчик вернул 0, перейти на точку возвра-
             та по равенству ("beq return").

        10   Программе обработки прерывания должен быть передан
             аргумент.

        Адрес_вектора есть шестнадцатеричный адрес вектора пре-
        рываний. Обработчик - есть имя программы обработки пре-
        рываний с необязательным аргументом. Цель данной специ-
        фикации -  обеспечить  возможность  задания  нескольких
        программ  обработки  для одного прерывания. Обработчики
        вызываются в порядке их указания в файле устройств; за-
        тем вызывается нормальная программа обработки  прерыва-
        ний.  Если биты 1, 2 или 4 флагов равны 1, а обработчик
        вернул 0, оставшиеся обработчики не вызываются.

     4.Спецификация конфигурации памяти 
        Данная  спецификация может содержать несколько строк, в
        каждой из которых по четыре или пять полей:

             ram  флаги  мин_адрес  макс_адрес  [размер]

        Флаги представляют собой битную маску. Биты интерпрети-
        руются следующим образом:

        1    Память не имеет контроля четности и,  следователь-
             но, не требует инициализации после включения пита-
             ния.

        2    Может  существовать  только единый блок памяти, от
             мин_адреса до макс_адреса-1.

        4    В диапазоне от мин_адреса до  макс_адреса-1  может
             располагаться несколько блоков памяти, каждый ука-
             занного размера.

        Мин_адрес, макс_адрес и размер являются шестнадцатерич-
        ными. Цель данной спецификации - предоставить  ядру  ОС
        информацию  о  конфигурации памяти, содержащей разрывы.
        Мин_адрес определяет минимальный адрес, по которому мо-
        жет находиться память, макс_адрес-1 есть верхняя грани-
        ца. Если в этих пределах содержится несколько плат  па-
        мяти,  часть которых может отсутствовать, каждая из них
        должна иметь заданный размер.

        Если память помечена флагами со значением  2,  ядро  ОС
        осуществляет  запись в последовательные ячейки, начиная
        с мин_адреса, пока не возникнет ошибка памяти. Если ус-
        тановлен флаг 4, ядро ОС проверяет  каждый  поддиапазон
        указанного  размера. Если память не нуждается в инициа-
        лизации, для  определения  наличия  памяти  проверяется
        только  первый байт диапазона (флаг 2) или поддиапазона
        (флаг 4).

        Существенно, что строки,  специфицирующие  конфигурацию
        памяти,  должны располагаться в порядке возрастания ми-
        нимальных адресов. Если два минимальных адреса равны (в
        диапазоне могут располагаться блоки памяти разного раз-
        мера), строки должны быть  упорядочены  по  возрастанию
        размеров.

ФАЙЛЫ 
        /usr/src/uts/dfile
        /usr/src/uts/master
        /usr/src/uts/low.s
        /usr/src/uts/conf.c
        /usr/include/sys/conf.h

СМ. ТАКЖЕ 
        master(4).
        config(1M) в Справочнике администратора.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк