IOATACommand
Суперкласс структуры команды, создаваемый и освобожденный только объектами IOATADevice, заполненными драйверами дискового устройства с параметрами команды тогда, подчинился для работы их провайдеру IOATADevice для выполнения.
IOATACommand является виртуальным классом, конкретный подкласс содержит методы и поля, необходимые IOATAControllers. Подклассы могут быть определенными для определенного оборудования контроллеров. Драйверы дискового устройства будут только иметь видимость к этому интерфейсу и могут не разделить этот объект на подклассы. Драйверы дискового устройства должны вместо этого использовать недействительное* refcon поле, которого не коснутся контроллеры
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Байт рассчитывает на конечный результат, настолько лучше всего, как может быть определен контроллером. Может быть нуль, но частичная передача, возможно, произошла на ошибке в некоторых случаях.
Объявление
C++
virtual IOByteCount getActualTransfer (
void
); -
IOMemoryDescriptor используется в этой транзакции.
Объявление
C++
virtual IOMemoryDescriptor* getBuffer (
void
); -
если IOATAController все еще контролирует команду, возвращает true.
Объявление
C++
virtual bool getCommandInUse(
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getCylHi (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getCylLo (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getDevice_Head (
void
); -
Если бит ошибки был установлен в регистре состояния, значение ошибочного регистра возвращается в конце команды.
Объявление
C++
virtual UInt8 getEndErrorReg(
void
); -
значение регистра состояния на конце команды.
Объявление
C++
virtual UInt8 getEndStatusReg (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getErrorReg (
void
); -
Значение IOReturn результата этой команды. Ошибки семьи ATA определяются в IOATATypes.h
Объявление
C++
virtual IOReturn getResult (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getSectorCount (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getSectorNumber (
void
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual UInt8 getStatus (
void
); -
установите IIOMemoryDescriptor для этой транзакции.
Объявление
C++
virtual void setBuffer ( IOMemoryDescriptor *
inDesc
); -
установите счет байта для этой транзакции. Должен согласиться с командой устройства и дескриптором памяти в использовании.
Объявление
C++
virtual void setByteCount ( IOByteCount
numBytes
); -
установите указатель функции для вызова, когда завершится эта команда.
Объявление
C++
virtual void setCallbackPtr ( IOATACompletionFunction *
inCompletion
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setCommand ( UInt8
in
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setCylHi( UInt8
in
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setCylLo ( UInt8
in
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setDevice_Head( UInt8
in
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setFeatures( UInt8
in
); -
установите флаги для этой команды, как определено в IOATATypes.
Объявление
C++
virtual void setFlags( UInt32
inFlags
); -
удобный метод, устанавливающий регистры taskfile в 28-разрядный адрес LBA с выбранным модулем и набор битов LBA. возврат допускает ошибку, если параметрический усилитель из диапазона, возвратите kIOSuccess (kATANoErr) = 0 по возврату в случае успеха
Объявление
C++
virtual IOReturn setLBA28( UInt32
lba
, ataUnitIDinUnit
); -
код операции команды, как определено в IOATATypes.
Объявление
C++
virtual void setOpcode( ataOpcode
inCode
); -
Пакет команды ATAPI макс. размер составляет 16 байтов. Делает глубокую копию данных.
Объявление
C++
virtual IOReturn setPacketCommand( UInt16
packetSizeBytes
, UInt8 *command
); -
используемый для установки смещения в дескриптор памяти для этой передачи.
Объявление
C++
virtual void setPosition ( IOByteCount
fromPosition
); -
используемый при доступе к регистрам или чтении регистров на ошибочном результате. Маска определяется в IOATATypes.h
Объявление
C++
virtual void setRegMask( ataRegMask
mask
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setSectorCount( UInt8
in
); -
Доступ Taskfile. Регистры называют в соответствии с соглашениями Стандартов ATA
Объявление
C++
virtual void setSectorNumber( UInt8
in
); -
сколько времени позволить этой команде завершаться, в миллисекундах, когда-то выпущенных к аппаратным средствам. если период времени истечет, то эта команда возвратится с ошибкой из-за тайм-аута.
Объявление
C++
virtual void setTimeoutMS( UInt32
inMs
); -
установите размер передачи между прошедшими прерываниями. необходимый при выполнении Многократного Чтения-записи PIO, и т.д. таким образом, контроллер знает, когда ожидать прерывание во время передачи данных мультисектора.
Объявление
C++
virtual void setTransferChunkSize( IOByteCount chunk =
kATADefaultSectorSize
); -
определите номер модуля для этой команды.
Объявление
C++
virtual void setUnit( ataUnitID
inUnit
); -
набор для очищения состояния MUST вызывает до повторного использования этого объекта
Объявление
C++
virtual void zeroCommand(
void
);
-
Объявление
C++
struct ExpansionData { IOExtendedLBA *extLBA; };
Обсуждение
Эта структура будет использоваться для расширения capablilties IOWorkLoop в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *fExpansionData;
-
для использования дисковыми драйверами, клиентами IOATADevice только. IOATADevice и IOATAControllers не должны использовать это поле любым способом.
для использования дисковыми драйверами, клиентами IOATADevice только. IOATADevice и IOATAControllers не должны использовать это поле любым способом.
Объявление
C++
void* refCon2;
-
для использования дисковыми драйверами, клиентами IOATADevice только. IOATADevice и IOATAControllers не должны использовать это поле любым способом.
для использования дисковыми драйверами, клиентами IOATADevice только. IOATADevice и IOATAControllers не должны использовать это поле любым способом.
Объявление
C++
void* refCon;
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *fExpansionData;