MASTER(4) MASTER(4) НАЗВАНИЕ 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 содержит строки по 10 полей в каждой. Поля раз- деляются пробелами. Поле 1 - имя устройства (не более 8 символов). Поле 2 - размер (десятичный) векторов прерываний; раз мер есть количество векторов, умноженное на четыре. Поле 3 - спецификация программ выполнения управляющих действий (более кратко - обработчика) устройства. Для каждого нужного обработчика следует задать соответству- ющую букву; если обработчик не существует, вместо буквы указывается символ -. Допустимы следующие спецификации: s Самостоятельные программы открытия и закрытия для блочных и символьных устройств. Так, комбинация букв sO означает, что для диска программа открытия его как блочного устройства будет называться hdbo- pen, а как символьного - 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 не окажется присваиваний соответствующим эле- ментам вектора (прерывания в таком случае будут класси- фицироваться как случайные). Вторая часть Часть 2 содержит строки, состоящие из двух полей: Поле 1 - дополнительное имя устройства (не более 8 сим- волов). Поле 2 - соответствующее основное имя устройства (не более 8 символов; устройство описано в части 1). Третья часть Часть 3 составляют строки, состоящие из одного или двух полей: Поле 1 - имя параметра (не более 30 символов). Поле 2 - подразумеваемое значение параметра (не более 30 символов; если это поле пустое, то предполагается что параметр определяется в файле dfile). Четвертая часть Часть 4 содержит одну строку, состоящую из 2 полей и содержащую спецификацию микропроцессора. Поле 1 записывается как mpu. Поле 2 - одно из чисел: 68000, 68010, 68020 или 68030. Пятая часть Часть 5 содержит специфическую для M68000 информацию, имеющую в точности тот же формат, что и специфическая для M68000 часть в файле dfile. Смысл этой информации описан в dfile(4). ФАЙЛЫ /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) в Справочнике администратора.