Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка класса IOATADevice

Опции
Развертывание Target:

На этой странице
Язык:

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;