IOATABusCommand
Устройство ATA (диск) драйверы должны использовать суперкласс, IOATACommand и могут не получить или использовать любой подкласс IOATACommand.
IOATABusCommand является подклассом IOATACommand, используемого IOATAControllers. Классы контроллера могут переопределить этот класс для обеспечения дополнительных полей, поскольку их потребности диктуют или могут использовать это в качестве реального класса, если это достаточно.
IOATAControllers всегда соединяются с определенным IOATADevices, и каждый определенный подкласс IOATADevice является поочередно методом фабрики для IOATACommands для использования дисковыми драйверами.
Этим способом драйверы устройства массового хранения (дисковые драйверы, клиенты контроллеров шины ATA) видят только обобщенный интерфейс IOATADevice и обобщенный интерфейс IOATACommand. Это обеспечивает изоляцию от определенных подробных данных шины для дисковых драйверов и предлагает гибкость контроллерам для добавления полей на команду и переменных состояния для их собственного внутреннего использования.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
метод фабрики создать экземпляр этого класса, используемого подклассами IOATADevice
Объявление
C++
static IOATABusCommand* allocateCmd(
void
); -
вызовите функцию обратного вызова завершения
Объявление
C++
virtual void executeCallback(
void
); -
получите указатель на дескриптор памяти для этой транзакции
Объявление
C++
virtual IOMemoryDescriptor* getBuffer (
void
); -
возвратите счет байта для этой транзакции для передачи.
Объявление
C++
virtual IOByteCount getByteCount (
void
); -
возвратите указатель обратного вызова
Объявление
C++
virtual IOATACompletionFunction* getCallbackPtr (
void
); -
возвратите флаги для этой команды.
Объявление
C++
virtual ataFlags getFlags (
void
); -
возвратите код операции команды
Объявление
C++
virtual ataOpcode getOpcode(
void
); -
возвратите указатель на массив пакетных данных.
Объявление
C++
virtual UInt16* getPacketData(
void
); -
возвратите размер atapi пакета если таковые имеются.
Объявление
C++
virtual UInt16 getPacketSize(
void
); -
позиция в буфере памяти для транзакции.
Объявление
C++
virtual IOByteCount getPosition (
void
); -
получите маску регистра для желаемого regs
Объявление
C++
virtual ataRegMask getRegMask(
void
); -
возвратите taskfile указатель структуры.
Объявление
C++
virtual ataTaskFile* getTaskFilePtr(
void
); -
возвратите значение тайм-аута для этой команды
Объявление
C++
virtual UInt32 getTimeoutMS (
void
); -
число байтов между прерываниями.
Объявление
C++
virtual IOByteCount getTransferChunkSize(
void
); -
возвратите ID модуля (0 ведущих устройств, 1 ведомое устройство)
Объявление
C++
virtual ataUnitID getUnit(
void
); -
Обнуляет все данные, возвращает false, если выделение перестало работать. защищенный.
Объявление
C++
virtual bool init();
-
установите количество байта байтов, фактически переданных.
Объявление
C++
virtual void setActualTransfer ( IOByteCount
bytesTransferred
); -
отметьте команду, как являющуюся происходящим.
Объявление
C++
virtual void setCommandInUse( bool inUse = true);
-
установите код результата
Объявление
C++
virtual void setResult(
IOReturn
); -
набор для очищения состояния вызовите до повторного использования этого объекта
Объявление
C++
virtual void zeroCommand(
void
);
-
Объявление
C++
struct ExpansionData { };
Обсуждение
Эта структура будет использоваться для расширения capablilties IOWorkLoop в будущем.
-
IOSyncer для использования IOATAController
Объявление
C++
IOSyncer* syncer;
-
семафор состояния для использования IOATAController
Объявление
C++
UInt32 state;
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *reserved;
-
заголовок очереди для использования IOATAController.
Объявление
C++
queue_chain_t queueChain;