IOATADevice
Этот объект реализует реле к Шине ATA, где присоединяется диск.
IOATADevice является суперклассом, представляющим определенное устройство, присоединенное к определенному IOATAController (шина). IOATADevice является провайдером для драйверов устройства массового хранения ATA. IOATADevice является фабрикой для всех объектов IOATACommand и ответственен за создание и освобождение IOATACommands. IOATAControllers создаст экземпляр IOATADevice для каждого устройства, физически подключенного к шине ata. IOATADevice является виртуальным, и определенный подкласс должен быть реализован для определенных типов IOATAController. Этим способом контроллер-specifc IOATACommands может быть соединен с надлежащим типом контроллера.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
создайте IOATACommands. Драйверы устройств должны выделить объекты команды только через этот метод.
Объявление
C++
virtual IOATACommand* allocCommand(
void
);Возвращаемое значение
нуль, если выделение перестало работать. Сохраните количество, тот.
-
Подайте запросы IO
Объявление
C++
virtual IOReturn executeCommand( IOATACommand *
command
);Параметры
command
указатель на допустимый IOATACommand с командой, которая будет выполняться.
Возвращаемое значение
kIOSuccess (0), если команда была успешно поставлена в очередь в контроллере.
-
выпустите объект команды, который больше не необходим. Не освобождайте объект в использовании и не выпускайте объект больше времена, чем Вы сохранили его.
Объявление
C++
virtual void freeCommand( IOATACommand *
inCommand
);Параметры
inCommand
команда, которая будет выпущена.
-
Узнайте, какое устройство этот кусок (ata или atapi)
Объявление
C++
virtual ataDeviceType getDeviceType(
void
);Возвращаемое значение
ataDeviceType, как определено в IOATATypes.h
-
Определите, является ли это устройство номером 0 или 1 (т.е., ведущее устройство/ведомое устройство)
Объявление
C++
virtual ataUnitID getUnitID(
void
);Возвращаемое значение
ataUnitID - 0 или 1.
-
соответствие материала для IOBSDInit и т.д.
Объявление
C++
virtual IOService* matchLocation( IOService *
client
); -
соответствие материала для IOBSDInit и т.д.
Объявление
C++
virtual bool matchPropertyTable( OSDictionary *
table
); -
соответствие материала для IOBSDInit и т.д.
Объявление
C++
virtual bool matchPropertyTable( OSDictionary *
table
, SInt32 *score
); -
вызванный контроллерами, когда они должны отправить сообщение клиенту (диск) драйверы.
Объявление
C++
virtual void notifyEvent( UInt32
event
); -
Узнайте возможность шины, таким образом, клиент может выбрать функции для установки и команды для выполнения.
Объявление
C++
virtual IOReturn provideBusInfo( IOATABusInfo *
getInfo
);Параметры
getInfo
указатель на допустимый объект IOATABusInfo.
Возвращаемое значение
kIOSuccess (0) и объект getInfo будут заполнены контроллером шины с информацией о шине.
-
Узнайте, какую скорость шина сконфигурировала для этого модуля.
Объявление
C++
virtual IOReturn provideConfig( IOATADevConfig *
configRequest
);Параметры
configRequest
указатель на допустимый объект IOATADevConfig.
Возвращаемое значение
kIOSuccess (0) на успешном завершении и configRequest будет содержать конфигурационную информацию.
-
Скажите шину что скорость использовать для Вашего устройства.
Объявление
C++
virtual IOReturn selectConfig( IOATADevConfig *
configRequest
);Параметры
configRequest
указатель на допустимый и инициализированный объект IOATADevConfig.
Возвращаемое значение
kIOSuccess (0), если была успешно выбрана конфигурация.
Обсуждение
Это нужно только вызвать один раз во время диска, драйверы запускают метод прежде, чем зарегистрировать его доступность и должны быть вызваны до выпуска любых данных транзакциями IO.
-
Объявление
C++
struct ExpansionData { };
Обсуждение
Эта структура будет использоваться для расширения capablilties IOWorkLoop в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *reserved;