Часть 1 содержит строки по 10 полей в каждой. Поля разделяются пробелами.
Поле 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 не окажется присваиваний соответствующим элементам вектора (прерывания в таком случае будут классифицироваться как случайные).