НАЗВАНИЕ
master - основной файл с информацией об устройствах
ОПИСАНИЕ
Файл master используется утилитой config(1M) для получения информации об устройствах, на основаниии которой
генерируются конфигурационные файлы low.s и conf.c.
Утилита config читает dfile и помещает информацию из
каждого элемента первой части в массивы, заготовленные
по основному файлу master. Для получения информации о
получаемых файлах см. config(1M), а о значении полей в
первой части поддерживаемого пользователем файла dfile
см. dfile(4). Файл master состоит из пяти частей, разделенных символом $ в первой колонке. Любая строка, содержащая звездочку в первой колонке или звездочку, перед которой находятся только пробелы и табуляции, считается строкой комментария.
Часть 1 содержит информацию об устройствах; в части 2 задаются дополнительные имена устройств; часть 3 содержит информацию о настраиваемых параметрах. В частях 4 и 5 располагается информация, относящаяся к конфигурации систем только для семейства M68000. Часть 4 (спецификация микропроцессора) должна присутствовать в файле master и не должна присутствовать в файле dfile. Часть 5 содержит строки в точности того же формата, что и специфическая для M68000 часть в dfile(4).
Ниже описываются пять частей файла master. В качестве примера используется дисковый контроллер.
Поле 1 - имя устройства (не более 8 символов).
Поле 2 - размер (десятичный) векторов прерываний; размер есть количество векторов, умноженное на четыре.
Поле 3 - спецификация программ выполнения управляющих действий (более кратко - обработчика) устройства. Для каждого нужного обработчика следует задать соответствующую букву; если обработчик не существует, вместо буквы указывается символ -. Допустимы следующие спецификации:
s | Самостоятельные программы открытия и закрытия для блочных и символьных устройств. Так, комбинация букв sO означает, что для диска программа открытия его как блочного устройства будет называться hdbopen, а как символьного - hdcopen. |
---|---|
t | Устройство имеет структуру терминала. |
i | Обработка (выполнение) инициализации. |
p | Обработка ошибки питания. |
O | Обработка открытия. |
C | Обработка закрытия. |
R | Обработка чтения. |
W | Обработка записи. |
I | Обработка управляющих действий. |
S | Драйвер потока. Других обработчиков у него быть не должно. |
Поле 4 - индикатор типа устройства. Для каждого нужного индикатора следует задать соответствующую букву; если индикатор не существует, вместо буквы указывается символ -. Допустимы следующие спецификации:
v | Создать массив векторов прерывания, например, hd_ivec [ ]. Для каждого вектора, описанного в файле dfile, в массив помещается (шестнадцатеричный) адрес вектора (номер вектора умножается на 4). |
---|---|
m | Создать для устройства символьный старший номер и блочный старший номер (например, hd_cmaj и hd_bmaj). |
l | Создать массив уровней прерываний, например, hd_ilev [ ]; уровни прерывания указаны в четвертом поле, уровень, каждой строки в первой части файла dfile. |
o | Разрешить только одно данное устройство. |
c | Не вставлять счетчик в файл conf.c. |
i | Не вставлять вектор прерываний. |
R | Требуемое устройство. |
B | Блочное устройство. |
C | Символьное устройство. |
I | Устройство, управляемое прерываниями, не блочное и не символьное. |
a | Разрешить определения одного вектора с многими адресами. |
Поле 5 - префикс обработчика (не более 4 символов), например hd.
Поле 6 - размер страницы регистров (десятичный), то есть размер области памяти для всех регистров устройства, начинающейся по адресу, указанному в файле dfile.
Поле 7 - старший номер блочного устройства; символ -, если такового нет.
Поле 8 - старший номер символьного устройства; символ -, если такового нет.
Поле 9 - максимальное количество устройств на контроллер (десятичное); например, 32. Значение необязательного поля число (пятое поле в строках первой части файла dfile) замещает значение, указанное в поле 9 файла master.
Поле 10 - максимальный уровень запроса шины (от 1 до 7); символ -, если такового нет.
Для устройств, которые не управляются прерываниями, размер вектора прерываний (поле 2) должен быть нулевым. Буква v в поле 4 приводит к тому, что config(1M) записывает вектора прерываний, хотя в первой части программы low.s не окажется присваиваний соответствующим элементам вектора (прерывания в таком случае будут классифицироваться как случайные).
Поле 1 - дополнительное имя устройства (не более 8 символов).
Поле 2 - соответствующее основное имя устройства (не более 8 символов; устройство описано в части 1).
Поле 1 - имя параметра (не более 30 символов).
Поле 2 - подразумеваемое значение параметра (не более 30 символов; если это поле пустое, то предполагается, что параметр определяется в файле dfile).
Поле 1 записывается как mpu.
Поле 2 - одно из чисел: 68000, 68010, 68020 или 68030.
ФАЙЛЫ
/usr/src/uts/dfile /usr/src/uts/master /usr/src/uts/low.s /usr/src/uts/conf.c /usr/include/sys/conf.h
СМ. ТАКЖЕ
dfile(4).
config(1M) в Справочнике администратора.