IOATADevConfig
используемый для конфигурирования и передачи желаемых режимов передачи устройства. Дисковый драйвер обычно использовал бы этот объект в сочетании с 512 байтами идентификационных данных от диска и объект IOATABusInfo для шины, с которой это подключено. Этот объект определит лучшие доступные скорости передачи соответствия. драйвер устройства тогда отправит ряд команд Set Features для конфигурирования диска и этого объекта к шине через кусок IOATADevice для конфигурирования оптимального режима передачи. Драйвер для дисковода может принять решение заполнить этот объект с любым желаемым режимом передачи, если требуется различный режим.
обычно используйте initWithBestSelection, чтобы заставить лучший режим соответствовать. Значение бита использования средств доступа Режима указать выбранный режим или поддерживаемые режимы (ы) т.е., 00000001b указывает, что Режим 0, 00000010b указывает режим 1 и т.д. Выбранный режим обозначен единственным битом набора. Никакой набор битов не указывает, что не выбран никакой режим в том классе. т.е., шина будет поддерживать многократные возможные режимы, но только выберет один режим в то время.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
статическая функция создателя.
Объявление
C++
static IOATADevConfig* atadevconfig(
void
); -
преобразовывает разрядно-значительное поле в численное значение. Обратите внимание на то, что немного поля 0x00 не имеет никакого определенного результата.
Объявление
C++
virtual UInt8 bitSigToNumeric( UInt16
binary
);Параметры
binary
разрядное значительное поле.
Возвращаемое значение
численное значение самого высокого набора битов в поле.
-
Объявление
C++
UInt16 getDMACycleTime(
void
);Возвращаемое значение
Время цикла DMA многословное, о котором сообщают, в наносекундах.
-
Объявление
C++
UInt8 getDMAMode(
void
);Возвращаемое значение
разрядно-значительная карта режима DMA
-
Объявление
C++
atapiConfig getPacketConfig(
void
);Возвращаемое значение
atapiConfig, как определено в IOATATypes.h
-
Объявление
C++
UInt16 getPIOCycleTime(
void
);Возвращаемое значение
PIO CycleTime, о котором сообщают, в наносекундах.
-
Объявление
C++
UInt8 getPIOMode(
void
);Возвращаемое значение
разрядно-значительная карта режима PIO
-
Объявление
C++
UInt8 getUltraMode(
void
);Возвращаемое значение
разрядно-значительная карта режима Ultra
-
Удобный инициализатор: передайте 512-байтовый результат Идентифицировать Устройства или Идентифицируйте Пакетное Устройство в порядке порядка байтов на Вашу платформу (подкачанный байтом на PPC) и объект IOATABusInfo для шины. Объект инициализирует все поля и выберет лучшие режимы передачи, соответствующие на шине и устройстве. Если возвращаемое значение было 0 (успех или noErr), то соответствующий режим поддерживается. Исследуйте поля PIO и UDMA/DMA и генерировать надлежащий SET параметры FEATURES для Вашего диска и отправить этот инициализированный объект в IOATAController при запросе конфигурации скорости. отказ не означает поддерживаемых режимов передачи, соответствующих между информацией шины и устройства.
Объявление
C++
IOReturn initWithBestSelection( const UInt16 *
identifyData
, IOATABusInfo *busInfo
);Параметры
identifyData
512 байтов данных получили из устройства через IDENTIFY DEVICE или IDENTIFY Команда устройства PACKET.
busInfo
указатель на объект IOATAbusInfo, полученный из предыдущего atanub-> provideBusInfo () вызов.
Возвращаемое значение
kIOSuccess (0), когда соответствующий режим передачи доступен между устройством и контроллером.
-
Объявление
C++
void setDMACycleTime( UInt16
inNS
);Параметры
inNS
Время цикла DMA многословное, о котором сообщают, в наносекундах.
-
Объявление
C++
void setDMAMode( UInt8
inModeBitMap
);Параметры
inModeBitMap
разрядно-значительная карта режима DMA
-
Для устройств ATAPI, если устройство утверждает прерывание после Пакетной Команды, когда это готово принять пакет, установите это значение в истину (главным образом более старые устройства). Если устройство принимает пакет только путем утверждения, что DRQ укусил в состоянии, то установленный эта ложь значения. Говорит контроллер шины, ожидать ли пакетного принятия или установить незаконченное прерывание.
Объявление
C++
void setPacketConfig ( atapiConfig
packetConfig
);Параметры
packetConfig
-
Объявление
C++
void setPIOCycleTime( UInt16
inNS
);Параметры
inNS
Время цикла PIO в наносекундах.
-
Объявление
C++
void setPIOMode( UInt8
inModeBitMap
);Параметры
inModeBitMap
разрядно-значительная карта режима PIO
-
Объявление
C++
void setUltraMode( UInt8
inModeBitMap
);Параметры
inModeBitMap
разрядно-значительная карта режима Ultra
-
Объявление
C++
struct ExpansionData { };
Обсуждение
Эта структура будет использоваться для расширения capablilties IOWorkLoop в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData *reserved;