IOSCSIParallelInterfaceController
Класс, представляющий Шинный контроллер SCSI.
Класс, представляющий Шинный контроллер SCSI.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.2 и позже.
-
Параллельное завершение задачи
Объявление
C++
void CompleteParallelTask ( SCSIParallelTaskIdentifier
parallelTask
, SCSITaskStatuscompletionStatus
, SCSIServiceResponseserviceResponse
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
completionStatus
Состояние шины SCSI.
serviceResponse
(см. <IOKit/scsi/SCSITask.h>),
Обсуждение
Определенный sublcass HBA наследовал CompleteParallelTask () метод, который нужно вызвать, когда HBA завершил обработку параллельной задачи.
-
Вызванный для создания IOInterruptEventSource для устройства. Подклассы могут хотеть использовать различный индекс прерывания, чем 0 (например, для использования сообщения PCI Сообщенные Прерывания) или, возможно, не нуждались бы в прерывании вообще (виртуальный HBA).
Объявление
C++
virtual IOInterruptEventSource * CreateDeviceInterrupt ( IOInterruptEventSource::Action
action
, IOFilterInterruptEventSource::Filterfilter
, IOService *provider
);Параметры
action
Указатель на подпрограмму действия, которая должна быть передана любому IOInterruptEventSource:: interruptEventSource () или IOFilterInterruptEventSource:: filterInterruptEventSource как метод для вызова, когда прерывание происходит для устройства (иногда называемый «отложенным вызовом процедуры» или «вторичным методом контекста». Путем проведения этой подпрограммы это должным образом обеспечит электричеством HandleInterruptRequest () метод, который необходимо переопределить для обработки прерываний.
filter
Указатель на подпрограмму фильтра, которая должна быть передана IOFilterInterruptEventSource:: filterInterruptEventSource как метод для вызова в основное время прерывания, когда прерывание происходит для устройства. Путем проведения этой подпрограммы это должным образом обеспечит электричеством FilterInterruptRequest () метод, который можно переопределить для обработки основных прерываний.
Возвращаемое значение
IOInterruptEventSource. Может возвратить NULL, если и только если нет никакого аппаратного прерывания, связанного с этим устройством.
-
Метод для выполнения создания устройств.
Объявление
C++
bool CreateTargetForID ( SCSIDeviceIdentifier
targetID
);Параметры
targetID
SCSIDeviceIdentifier предназначенных желаемых.
Возвращаемое значение
возвращает true в случае успеха.
Обсуждение
Для дочерних классов HBA, сообщающих об истине DoesHBAPerformDeviceManagement () метод, дочерний класс будет ответственен за все управление устройствами при помощи этих методов; иначе, суперкласс будет ответственен за все управление устройствами. Этот метод должен использоваться для выполнения Создания устройств Параллели SCSI и не может быть переопределен.
-
CreateTargetForID (SCSIDeviceIdentifier, OSDictionary *) - CreateTargetForID (SCSIDeviceIdentifier, OSDictionary *)
Метод для выполнения создания устройств.
Объявление
C++
bool CreateTargetForID ( SCSIDeviceIdentifier
targetID
, OSDictionary *properties
);Параметры
targetID
SCSIDeviceIdentifier предназначенных желаемых.
properties
Словарь свойств для соединения с устройством после создания. Список допустимых ключей свойства следующие: kIOPropertySASAddressKey, kIOPropertyFibreChannelNodeWorldWideNameKey, kIOPropertyFibreChannelPortWorldWideNameKey, kIOPropertyFibreChannelAddressIdentifierKey, kIOPropertyFibreChannelALPAKey, и kIOPropertyRetryCountKey, Эти ключи определяются в <IOKit/storage/IOStorageProtocolCharacteristics.h> и значения, связанные с этими ключами, должны иметь надлежащий тип, или целевое создание не успешно выполнится.
Возвращаемое значение
возвращает true в случае успеха.
Обсуждение
Для дочерних классов HBA, сообщающих об истине DoesHBAPerformDeviceManagement () метод, дочерний класс будет ответственен за все управление устройствами при помощи этих методов; иначе, суперкласс будет ответственен за все управление устройствами. Этот метод должен использоваться для выполнения Создания устройств Параллели SCSI и не может быть переопределен.
-
Метод для выполнения уничтожения устройства.
Объявление
C++
void DestroyTargetForID ( SCSIDeviceIdentifier
targetID
);Параметры
targetID
SCSIDeviceIdentifier предназначенных желаемых.
Обсуждение
Для дочерних классов HBA, сообщающих об истине DoesHBAPerformDeviceManagement () метод, дочерний класс будет ответственен за все управление устройствами при помощи этих методов; иначе, суперкласс будет ответственен за все управление устройствами. Этот метод должен использоваться для выполнения уничтожения Устройства Параллели SCSI и не может быть переопределен.
-
Отключите прерывание
Объявление
C++
void DisableInterrupt (
void
);Обсуждение
Метод, который дочерний класс HBA может вызвать для отключения связанного IOInterruptEventSource.
-
Запрашивает дочерний класс HBA, чтобы определить, выполняет ли он автоматически AutoSense и предоставляет данные AutoSense для каждого I/O. Если HBA выделяет площадь для AutoSense в ее HBA определенная область данных на на основание задачи, HBA должен ответить истина.
Объявление
C++
virtual bool DoesHBAPerformAutoSense (
void
);Возвращаемое значение
Возвратите true, если HBA выполняет AutoSense в его собственный частный буфер данных.
Обсуждение
Запрашивает дочерний класс HBA, чтобы определить, выполняет ли он автоматически AutoSense и предоставляет данные AutoSense для каждого I/O. Если HBA выделяет площадь для AutoSense в ее HBA определенная область данных на на основание задачи, HBA должен ответить истина.
-
Определите, будет ли HBA управлять устройствами.
Объявление
C++
virtual bool DoesHBAPerformDeviceManagement (
void
) = 0;Возвращаемое значение
возвратитесь истинные средние объекты для целевых устройств будут только создаваться, когда дочерний класс вызовет метод CreateTargetForID.
Обсуждение
Этот метод используется, чтобы определить, будет ли HBA управлять созданием целевого устройства и уничтожением.
-
Запрашивает дочерний класс HBA, чтобы определить, поддерживает ли он Мультисоединение каналом.
Объявление
C++
virtual bool DoesHBASupportMultiPathing (
void
);Возвращаемое значение
Если требуемая функция поддерживается, возвращает true.
Обсуждение
Запрашивает дочерний класс HBA, чтобы определить, поддерживает ли он Мультисоединение каналом.
-
Запрашивает дочерний класс HBA, чтобы определить, поддерживает ли он определенную функцию SPI.
Объявление
C++
virtual bool DoesHBASupportSCSIParallelFeature ( SCSIParallelFeature
theFeature
) = 0;Возвращаемое значение
Если требуемая функция поддерживается, возвращает true.
Обсуждение
Запрашивает дочерний класс HBA, чтобы определить, поддерживает ли он указанную функцию, как определено Параллелью SCSI Взаимосвязанные спецификации.
-
Включите прерывание
Объявление
C++
void EnableInterrupt (
void
);Обсуждение
Метод, который дочерний класс HBA может вызвать для включения связанного IOInterruptEventSource.
-
Представьте SCSIParallelTask для выполнения.
Объявление
C++
SCSIServiceResponse ExecuteParallelTask ( SCSIParallelTaskIdentifier
parallelRequest
);Параметры
parallelRequest
ссылка на SCSIParallelTaskIdentifier, который будет выполняться.
Возвращаемое значение
соответствующий SCSIServiceResponse, которые определяются в файле <IOKit/scsi/SCSITask.h>.
Обсуждение
Вызов ExecuteParallelTask выполняется клиентом для представления SCSIParallelTask для выполнения.
-
В основное время прерывания вызывают метод фильтра.
Объявление
C++
virtual bool FilterInterruptRequest (
void
);Возвращаемое значение
Истина, если строка аппаратного прерывания должна быть отключена, иначе ложь.
Обсуждение
В основное время прерывания вызывают метод фильтра. Это должно только быть переопределено дочерним классом, чтобы определить, произошло ли прерывание для этого экземпляра контроллера. Так как вся работа происходит в основное время прерывания, эта подпрограмма должна быть быстрой и эффективной и задержать как можно больше обработки к HandleInterruptRequest () метод.
Примечание: В отличие от HandleInterruptRequest () и HandleTimeout () методы, FilterInterruptRequest () НЕ вызывают с сохраненной блокировкой workloop.
Если значение, возвращенное FilterInterruptRequest (), будет истиной, то вторичный поток прерывания будет запланирован, и строка аппаратного прерывания будет отключена. Если экземпляр контроллера совместно использует ту линию прерывания с другими устройствами, это может вызвать большие задержки прерывания. Если экземпляр контроллера может отключить прерывание в самой микросхеме, следующее может быть сделано для сокращения задержек прерывания:
- Прерывание происходит - FilterInterruptRequest (), метод вызывают. - Если прерывание не для этого контроллера, возвратите false сразу. - Если прерывание для этого контроллера и контроллера, может отключить прерывания для этой микросхемы, контроллер должен отключить прерывания для этой микросхемы, вызвать SignalInterrupt () и возвратить false. Это заставляет вторичный поток прерывания быть запланированным, все же не отключает линию прерывания для всех устройств, связанных к тому прерыванию. Это эффективно позволяет другим устройствам обрабатывать свои прерывания, таким образом сокращая задержку прерывания для тех устройств. - HandleInterruptRequest () метод вызывают. - Процессы контроллера прерывают, и завершает запросы I/O. - Контроллер повторно включает прерывания для устройства.
Примечание: При использовании этого подхода, условие прерывания, MUST очищен от аппаратных средств, иначе бесконечный цикл прерывания процесса произойдет.
Если контроллер не может отключить прерывания на микросхеме, он должен просто возвратить true, если прерывание произошло для своего устройства.
-
Найдите задачу для данного Адреса Задачи, если Вы существуете.
Объявление
C++
SCSIParallelTaskIdentifier FindTaskForAddress ( SCSIDeviceIdentifier
theT
, SCSILogicalUnitNumbertheL
, SCSITaggedTaskIdentifiertheQ
);Параметры
theT
компонент Target I_T_L или связи I_T_L_Q.
theL
компонент Logical Unit I_T_L или связи I_T_L_Q.
theQ
компонент Queue Tag связи I_T_L_Q. Если это - связь I_T_L, то kSCSIUntaggedTaskIdentifier константа должна использоваться для theQ.
Возвращаемое значение
возвращает допустимый SCSIParallelTaskIdentifier или NULL если ни одно найденное.
Обсуждение
Если допустимый Маркированный Идентификатор Задачи будет указан, то этот метод возвратит задачу, указанную Маркированным Адресом Задачи, если Вы будете найдены, или иначе NULL будет возвращен. Если нуль будет использоваться в качестве Маркированного Идентификатора Задачи, то эта подпрограмма будет искать выдающуюся задачу на основе Немаркированного Адреса Задачи и возвращать задачу или иначе, если Вы не будете найдены, возвратите NULL.
-
Найдите задачу для данного Target и Идентификатора Задачи Контроллера
Объявление
C++
SCSIParallelTaskIdentifier FindTaskForControllerIdentifier ( SCSIDeviceIdentifier
theTarget
, UInt64theIdentifier
);Параметры
theTarget
Target что задача.
theIdentifier
набор идентификатора задачи контроллера с помощью Задачи Параллели SCSI SetControllerTaskIdentifier () метод.
Возвращаемое значение
возвращает допустимый SCSIParallelTaskIdentifier или NULL если ни одно найденное.
Обсуждение
Позволяет дочернему классу контроллера находить выдающуюся задачу для указанной цели и идентификатора задачи контроллера
-
Метод, чтобы позволить клиенту выпускать SCSIParallelTask
Объявление
C++
void FreeSCSIParallelTask ( SCSIParallelTaskIdentifier
returnTask
);Параметры
returnTask
ссылка на SCSIParallelTaskIdentifier, который будет возвращен.
Обсуждение
Метод FreeSCSIParallelTask вызывает клиент, когда SCSIParallelTask был завершен, и связанный returnTask должен быть возвращен к пулу.
-
Метод для получения автоматического буфера данных чувственного опыта связался с запросом.
Объявление
C++
bool GetAutoSenseData ( SCSIParallelTaskIdentifier
parallelTask
, SCSI_Sense_Data *receivingBuffer
, UInt8senseDataSize
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
receivingBuffer
указатель на автоматический буфер данных чувственного опыта
Возвращаемое значение
возвращает true если успешно скопированные данные в receivingBuffer
-
Метод для получения автоматического размера буфера данных чувственного опыта связался с запросом.
Объявление
C++
UInt8 GetAutoSenseDataSize ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Размер возвратов автоматического буфера данных чувственного опыта.
-
Метод для получения SCSI Command Descriptor Block (CDB).
Объявление
C++
bool GetCommandDescriptorBlock ( SCSIParallelTaskIdentifier
parallelTask
, SCSICommandDescriptorBlock *cdbData
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
cdbData
указатель SCSICommandDescriptorBlock на 16-байтовый CDB
Возвращаемое значение
если данные были скопированы в cdbData указатель, возвращает true
Обсуждение
Это будет всегда возвращать 16-байтовый CDB. Если драйвер Протокольного уровня не поддерживает 16-байтовый CDBs, он должен будет создать локальную переменную SCSICommandDescriptorBlock, чтобы получить данные CDB и затем передать необходимые байты оттуда.
-
Метод для получения размера SCSI Command Descriptor Block (CDB).
Объявление
C++
UInt8 GetCommandDescriptorBlockSize ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвращает размер Блока Дескриптора Команды SCSI в байтах.
-
Средство доступа для связывания IOCommandGate с workloop.
Объявление
C++
IOCommandGate * GetCommandGate (
void
);Возвращаемое значение
указатель возвратов на IOCommandGate.
Обсуждение
Средство доступа для связывания IOCommandGate с workloop.
-
Метод для получения клиента буферизует от запроса.
Объявление
C++
IOMemoryDescriptor * GetDataBuffer ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
указатель возвратов на IOMemoryDescriptor, представляющий буфер.
-
Метод для получения смещения в клиент буферизует, в котором можно начать обрабатывать.
Объявление
C++
UInt64 GetDataBufferOffset ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвраты смещаются в байтах
-
Получает направление передачи данных для любых данных, связанных с запросом.
Объявление
C++
UInt8 GetDataTransferDirection ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Одно из допустимых направлений передачи данных описано в <IOKit/scsi/SCSITask.h>
-
Метод для получения указателя на IODMACommand от запроса.
Объявление
C++
IODMACommand * GetDMACommand ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
указатель возвратов на IODMACommand, использующийся в сочетании с задачей.
Обсуждение
Для устройств, использующих DMA, объект IODMACommand должен быть получен через GetDMACommand (). Подкласс ответственен за вызов, подготавливают () на объекте IODMACommand использование надлежащего смещения, полученного через GetDataBufferOffset (), и исправляют размер, полученный через GetRequestedDataTransferCount (). Подкласс дальнейший ответственный за вызов завершенного () на объекте IODMACommand, как только закончились все операции DMA. NB: Подклассы не должны вызывать IODMACommand:: setMemoryDescriptor ().
-
Метод для получения IOMemoryDescriptor связался с Данными HBA.
Объявление
C++
IOMemoryDescriptor * GetHBADataDescriptor ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
указатель возвратов на IOMemoryDescriptor, обертывающий HBA определенный буфер данных, NULL, если ни одно найденное или GetHBADataSize () не возвращают нуль.
Обсуждение
Метод для получения IOMemoryDescriptor связался с Данными HBA.
-
Метод для получения указателя Данных HBA.
Объявление
C++
void * GetHBADataPointer ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
указатель возвратов для буферизации для HBA определенных данных, NULL, если ни одно найденное или GetHBADataSize () не возвращают нуль.
Обсуждение
Метод для получения указателя Данных HBA.
-
Метод для получения Размера данных HBA в байтах.
Объявление
C++
UInt32 GetHBADataSize ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвраты Размер данных HBA в байтах.
Обсуждение
Метод для получения Размера данных HBA в байтах.
-
Метод для получения указателя Данных HBA.
Объявление
C++
void * GetHBATargetDataPointer ( SCSITargetIdentifier
targetDevice
);Параметры
targetDevice
Допустимый SCSITargetIdentifier.
Возвращаемое значение
указатель возвратов для буферизации для HBA определенных данных, NULL, если ни одно найденное или GetHBADataSize не являются нулем.
Обсуждение
Метод для получения указателя Данных HBA.
-
Метод для получения Размера данных HBA в байтах.
Объявление
C++
UInt32 GetHBATargetDataSize ( SCSITargetIdentifier
targetDevice
);Параметры
targetDevice
Допустимый SCSITargetIdentifier.
Возвращаемое значение
возвраты Размер данных HBA в байтах.
Обсуждение
Метод для получения Размера данных HBA в байтах.
-
Метод для связывания байтов логической единицы с запросом.
Объявление
C++
void GetLogicalUnitBytes ( SCSIParallelTaskIdentifier
parallelTask
, SCSILogicalUnitBytes *logicalUnitBytes
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвращает допустимый 8-байтовый адрес логической единицы.
Обсуждение
Метод для связывания байтов логической единицы с запросом.
-
Метод для связывания числа логической единицы с запросом.
Объявление
C++
SCSILogicalUnitNumber GetLogicalUnitNumber ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвращает допустимое 64-разрядное число логической единицы.
Обсуждение
Метод для связывания числа логической единицы с запросом.
-
Метод доступа получить IOService, который является провайдером контроллера.
Объявление
C++
IOService * GetProvider (
void
);Возвращаемое значение
указатель возвратов на IOService.
Обсуждение
Метод доступа получить IOService, который является провайдером контроллера.
-
Получает реализованный счет передачи данных для любых данных, связанных с запросом.
Объявление
C++
UInt64 GetRealizedDataTransferCount ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Реализованная передача данных рассчитывает в байтах.
-
Получает требуемый счет передачи данных для любых данных, связанных с запросом.
Объявление
C++
UInt64 GetRequestedDataTransferCount ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Требуемая передача данных рассчитывает в байтах.
-
Метод доступа получить Идентификатор Домена SCSI.
Объявление
C++
SInt32 GetSCSIDomainIdentifier (
void
);Возвращаемое значение
возвраты Идентификатор Домена SCSI.
Обсуждение
Метод доступа получить Идентификатор Домена SCSI.
-
Метод для получения требуемого значения для согласования.
Объявление
C++
SCSIParallelFeatureRequest GetSCSIParallelFeatureNegotiation ( SCSIParallelTaskIdentifier
parallelTask
, SCSIParallelFeaturerequestedFeature
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Допустимый SCSIParallelFeatureControl.
Обсуждение
Запрос относительно того, согласовал ли объект Устройства Параллели SCSI широкую передачу данных.
-
Метод для получения числа требуемых согласований.
Объявление
C++
UInt64 GetSCSIParallelFeatureNegotiationCount ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
целое без знака до 64 битов в размере.
Обсуждение
Запрос относительно числа Функций Параллели SCSI, которые требуют или быть negotitated или очищают. Это все функции, установленные или в kSCSIParallelFeature_AttemptNegotiation или в kSCSIParallelFeature_ClearNegotiation. Если возвращаемое значение является нулем, то все функции установлены в kSCSIParallelFeature_NoNegotiation, и все согласования функции должны остаться, поскольку они в настоящее время существуют.
-
Метод для получения результата любых широких согласований передачи.
Объявление
C++
SCSIParallelFeatureResult GetSCSIParallelFeatureNegotiationResult ( SCSIParallelTaskIdentifier
parallelTask
, SCSIParallelFeaturerequestedFeature
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
Допустимый SCSIParallelFeatureResult.
Обсуждение
Запрос относительно того, согласовал ли объект Контроллера Параллели SCSI широкую передачу данных.
-
Метод для получения числа измененных согласований.
Объявление
C++
UInt64 GetSCSIParallelFeatureNegotiationResultCount ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
целое без знака до 64 битов в размере.
Обсуждение
Запрос относительно числа Функций Параллели SCSI, измененных или на negotitated или очищенных. Это все функции, установленные или в kSCSIParallelFeature_NegotitiationCleared или в kSCSIParallelFeature_NegotitiationSuccess. Если возвращаемое значение является нулем, то все функции установлены в kSCSIParallelFeature_NegotitiationUnchanged.
-
Метод, чтобы позволить клиенту получать SCSIParallelTask
Объявление
C++
SCSIParallelTaskIdentifier GetSCSIParallelTask ( bool
blockForCommand
);Параметры
blockForCommand
Если blockForCommand параметр будет установлен на ложь и нет никаких свободных SCSIParallelTasks, то этот метод возвратит NULL, иначе это будет ожидать одного для становления доступным перед возвратом.
Возвращаемое значение
Если будет доступная Задача Параллели SCSI, то ссылка на нее будет возвращена.
Обсуждение
Получите SCSIParallelTask от контроллера так, чтобы запрос мог быть выпущен к драйверу HBA.
-
Метод для получения SCSITaskIdentifier от допустимого SCSIParallelTaskIdentifier.
Объявление
C++
SCSITaskIdentifier GetSCSITaskIdentifier ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
SCSITaskIdentifier возвратов, представляющий исходный запрос от клиента Прикладного уровня SCSI.
Обсуждение
Метод для получения SCSITaskIdentifier от допустимого SCSIParallelTaskIdentifier.
-
Метод для получения SCSI Маркированный Идентификатор Задачи задачи. Если возвращенное значение равно kSCSIUntaggedTaskIdentifier, то эта задача не маркирована.
Объявление
C++
SCSITaggedTaskIdentifier GetTaggedTaskIdentifier ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
значение SCSITaskAttribute.
-
Средство доступа для получения указателя на IOSCSIParallelInterfaceDevice.
Объявление
C++
IOSCSIParallelInterfaceDevice * GetTargetForID ( SCSIDeviceIdentifier
targetID
);Параметры
targetID
SCSIDeviceIdentifier предназначенных желаемых.
Возвращаемое значение
указатель возвратов на IOSCSIParallelInterfaceDevice или NULL, если не найденный.
-
Метод для связывания SCSITargetIdentifier с запросом.
Объявление
C++
SCSITargetIdentifier GetTargetIdentifier ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
возвраты SCSITargetIdentifier
Обсуждение
Метод для связывания SCSITargetIdentifier с запросом.
-
Метод для получения Атрибута Задачи SCSI задачи
Объявление
C++
SCSITaskAttribute GetTaskAttribute ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
значение SCSITaskAttribute.
-
Метод для получения продолжительности тайм-аута в миллисекундах для запроса.
Объявление
C++
UInt32 GetTimeoutDuration ( SCSIParallelTaskIdentifier
parallelTask
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
продолжительность тайм-аута возвратов в миллисекундах
Обсуждение
Метод для получения продолжительности тайм-аута в миллисекундах для запроса. Значение нуля представляет бесконечный тайм-аут, или на аппаратных средствах, где бесконечные тайм-ауты не возможны, заменяют самым долгим возможным тайм-аутом.
-
Метод доступа связать IOWorkLoop с этим HBA.
Объявление
C++
IOWorkLoop * GetWorkLoop (
void
) const;Возвращаемое значение
указатель возвратов на IOWorkLoop.
Обсуждение
Метод доступа связать IOWorkLoop с этим HBA.
-
Обработайте запрос на прерывание
Объявление
C++
virtual void HandleInterruptRequest (
void
) = 0;Обсуждение
HandleInterruptRequest используется, чтобы уведомить HBA определенный подкласс, что должен быть обслужен запрос на прерывание. Это вызывают на workloop (это содержит логический элемент) на вторичном уровне прерывания.
-
Метод для обработки тайм-аутов команды.
Объявление
C++
virtual void HandleTimeout ( SCSIParallelTaskIdentifier
parallelRequest
);Параметры
parallelRequest
Допустимый SCSIParallelTaskIdentifier.
Обсуждение
Метод для обработки тайм-аутов команды. Это должно быть переопределено дочерним классом для очистки HBA определенные структуры после того, как произошел тайм-аут. Этот метод вызывают на workloop (это содержит логический элемент).
-
Постепенно увеличивает реализованное количество передачи данных. Этот метод полезен для того, когда HBA должен сделать многократные передачи DMA, потому что существует больше рассеяния - собирают элементы, чем это может обработать в одной передаче.
Объявление
C++
void IncrementRealizedDataTransferCount ( SCSIParallelTaskIdentifier
parallelTask
, UInt64realizedTransferCountInBytes
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
realizedTransferCountInBytes
число байтов для добавления к реализованным данным, значат задачу.
-
Вызванный для инициализации контроллера
Объявление
C++
virtual bool InitializeController (
void
) = 0;Возвращаемое значение
возвратитесь истина означает, что инициализация была успешна.
Обсуждение
Гарантируется, что InitializeController () только вызовут один раз на инстанцирование. InitializeController () методы позволяют драйверу подкласса делать всю необходимую инициализацию, требуемую аппаратными средствами, прежде чем это будет в состоянии принять, что выполняются запросы. Все необходимое выделение ресурсов должно быть сделано во время этого вызова метода. Это - первый метод, который вызовут в подклассе.
-
Вызванный для инициализации IODMACommand со спецификацией DMA.
Объявление
C++
virtual bool InitializeDMASpecification ( IODMACommand *
command
);Параметры
command
Указатель на допустимый объект IODMACommand. Подклассы должны переопределить этот метод и вызвать IODMACommand:: initWithSpecification () предоставление надлежащих параметров тому методу на основе стратегии DMA.
Возвращаемое значение
булево значение, указывающее успешность или неуспешность.
-
Вызванный для инициализации целевого устройства.
Объявление
C++
virtual bool InitializeTargetForID ( SCSITargetIdentifier
targetID
) = 0;Возвращаемое значение
Если цель была успешно инициализирована, возвращает true.
Обсуждение
Этот метод вызовут для инициализации целевого устройства однопоточным способом. HBA может использовать этот метод, чтобы зондировать цель или сделать что-либо еще необходимое, прежде чем объект устройства будет зарегистрирован в IOKit для соответствия.
-
Метод вызвал, чтобы уведомить клиенты, что произошел сброс шины.
Объявление
C++
void NotifyClientsOfBusReset (
void
);Обсуждение
Этот метод используется дочерним классом HBA, чтобы сообщить родительскому классу и любым клиентам, что произошел сброс шины.
-
Метод, вызванный для уведомления клиентов состояния порта, изменяет события.
Объявление
C++
void NotifyClientsOfPortStatusChange ( SCSIPortStatus
newStatus
);Обсуждение
Этот метод используется дочерним классом HBA, чтобы сообщить родительскому классу и любым клиентам, что порт изменил состояние.
-
Вызванный клиентом для обработки параллельной задачи.
Объявление
C++
virtual SCSIServiceResponse ProcessParallelTask ( SCSIParallelTaskIdentifier
parallelRequest
) = 0;Параметры
parallelRequest
Допустимый SCSIParallelTaskIdentifier.
Возвращаемое значение
serviceResponse (см. <IOKit/scsi/SCSITask.h>),
Обсуждение
Этот метод вызывают, чтобы обработать параллельную задачу (т.е. поместить команду на шину). HBA определенный sublcass должен реализовать этот метод.
-
Средство доступа для удаления свойства для этого объекта.
Объявление
C++
void RemoveHBAProperty ( const char *
key
);Параметры
key
Указатель на допустимый объект OSString, представляющий ключ. Посмотрите SetHBAProperty () метод для списка допустимых ключей.
-
Средство доступа для удаления свойства от определенной цели.
Объявление
C++
void RemoveTargetProperty ( SCSIDeviceIdentifier
device
, const char *key
);Параметры
device
Указатель на допустимый IOSCSIParallelInterfaceDevice.
key
Указатель на допустимый объект OSString, представляющий ключ.
-
Вызванный для создания отчетов об ограничениях I/O для этого контроллера. Список допустимых ключей включает: kIOMaximumSegmentCountReadKey, (требуемый) kIOMaximumSegmentCountWriteKey, (требуемый) kIOMaximumSegmentByteCountReadKey, (требуемый) kIOMaximumSegmentByteCountWriteKey, (требуемый), kIOMinimumSegmentAlignmentByteCountKey, (требуемый) kIOMaximumSegmentAddressableBitCountKey, (потребовал), чтобы kIOMinimumHBADataAlignmentMaskKey (потребовал) (дополнительного) kIOHierarchicalLogicalUnitSupportKey. NB: Эти ключи и их значения описаны в этом заголовке и <IOKit/IOKitKeys.h>
Объявление
C++
virtual void ReportHBAConstraints ( OSDictionary *
constraints.
);Параметры
constraints.
Объект OSDictionary раньше агрегировал пары ключ/значение. Подклассы должны установить требуемые ключи, если они переопределяют этот метод. Если подкласс не обеспечит требуемые ключи, то система запаникует.
-
Получает самое высокое число логической единицы.
Объявление
C++
virtual SCSILogicalUnitNumber ReportHBAHighestLogicalUnitNumber (
void
) = 0;Возвращаемое значение
возвращает допустимое 64-разрядное число логической единицы.
Обсуждение
Этот метод используется для запросов дочернего класса HBA для определения то, что самое высокое Число Логической единицы, которое может адресовать контроллер.
-
Определите память, необходимую для Устройства HBA определенное использование.
Объявление
C++
virtual UInt32 ReportHBASpecificDeviceDataSize (
void
) = 0;Возвращаемое значение
память возвратов требуется в байтах
Обсуждение
Этот метод используется для получения объема памяти, который будет выделен в Устройстве Параллели SCSI для HBA определенное использование.
-
Определите память, необходимую для Задачи HBA определенное использование.
Объявление
C++
virtual UInt32 ReportHBASpecificTaskDataSize (
void
) = 0;Возвращаемое значение
память возвратов требуется в байтах
Обсуждение
Этот метод используется для получения объема памяти, который будет выделен в Задаче Параллели SCSI для HBA определенное использование.
-
Получите самый высокий поддерживаемый Идентификатор устройства SCSI.
Объявление
C++
virtual SCSIDeviceIdentifier ReportHighestSupportedDeviceID (
void
) = 0;Возвращаемое значение
возвращает самый высокий SCSIDeviceIdentifier
Обсуждение
Этот метод вызовут для определения значения самого высокого Идентификатора устройства SCSI, поддерживаемого HBA. Это значение будет использоваться для определения последнего ID для обработки.
-
Получите идентификатор устройства SCSI для HBA.
Объявление
C++
virtual SCSIInitiatorIdentifier ReportInitiatorIdentifier (
void
) = 0;Возвращаемое значение
возвраты SCSIInitiatorIdentifier.
Обсуждение
Этот метод вызовут для определения Идентификатора устройства SCSI, который Инициатор присвоил для этого HBA.
-
Сообщите о максимальном количестве задачи
Объявление
C++
virtual UInt32 ReportMaximumTaskCount (
void
) = 0;Возвращаемое значение
максимум возвратов (ненулевое) количество задачи.
Обсуждение
Этот метод вызовут для получения максимального количества выдающихся задач, которые может обработать HBA. Это число должно быть больше, чем нуль или драйвер контроллера не будут соответствовать и загрузятся.
-
Вызванный для возобновления служб контроллера
Объявление
C++
virtual void ResumeServices (
void
);Обсуждение
Метод, который вызовут для возобновления услуг, предоставленных драйвером. (См. обсуждение SuspendServices),
-
Метод для установки автоматического буфера данных чувственного опыта связался с запросом.
Объявление
C++
bool SetAutoSenseData ( SCSIParallelTaskIdentifier
parallelTask
, SCSI_Sense_Data *newSenseData
, UInt8senseDataSize
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
newSensedata
указатель на автоматический буфер данных чувственного опыта
Возвращаемое значение
если данные в newSenseData были успешно в объект задачи, возвращает true
-
Метод для установки Идентификатора Задачи Контроллера.
Объявление
C++
void SetControllerTaskIdentifier ( SCSIParallelTaskIdentifier
parallelTask
, UInt64newIdentifier
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
newIdentifier
целочисленный маркер на 64 бита без знака.
Возвращаемое значение
ни один
Обсуждение
Этот метод позволяет драйверу Дочернего класса Контроллера устанавливать уникальный идентификатор для соединения с указанной Задачей Параллели SCSI. Этот идентификатор разработан, чтобы использоваться контроллерами, не имеющими доступа к ЛУНУ и Данным меток, когда уведомлено HBA, который завершил запрос. Если kSCSIParallelTaskControllerIDQueueHead будет использоваться, то эта задействованная подпрограмма возвратит первую Задачу на очереди.
-
Средство доступа для установки свойства для этого объекта.
Объявление
C++
bool SetHBAProperty ( const char *
key
, OSObject *value
);Параметры
key
Указатель на допустимый объект OSString, представляющий ключ. Список допустимых ключей включает: kIOPropertyVendorNameKey, kIOPropertyProductNameKey, kIOPropertyProductRevisionLevelKey, kIOPropertyPortDescriptionKey, kIOPropertyPortSpeedKey, kIOPropertyPortTopologyKey, kIOPropertySCSIParallelSignalingTypeKey, kIOPropertyFibreChannelCableDescriptionKey, kIOPropertyFibreChannelNodeWorldWideNameKey, kIOPropertyFibreChannelPortWorldWideNameKey, kIOPropertyFibreChannelAddressIdentifierKey, kIOPropertyFibreChannelALPAKey, и kIOPropertySASAddressKey. NB: Эти ключи и их значения описаны в <IOKit/storage/IOStorageDeviceCharacteristics.h> и <IOKit/storage/IOStorageProtocolCharacteristics.h>
value
Указатель на OSObject (один из типа OSData, OSString, и т.д.), который представляет значение для свойства. Значение должно иметь надлежащий тип и/или размер для указанного ключа.
Возвращаемое значение
если идентификатор был должным образом установлен, иначе ложь, возвращает true.
-
Устанавливает реализованное количество передачи данных в байтах.
Объявление
C++
bool SetRealizedDataTransferCount ( SCSIParallelTaskIdentifier
parallelTask
, UInt64realizedTransferCountInBytes
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
realizedTransferCountInBytes
число байтов, фактически переданных.
Возвращаемое значение
истина означает, что было успешно установлено количество передачи данных.
-
Метод для установки широкого результата согласования передачи данных.
Объявление
C++
void SetSCSIParallelFeatureNegotiationResult ( SCSIParallelTaskIdentifier
parallelTask
, SCSIParallelFeaturerequestedFeature
, SCSIParallelFeatureResultnewResult
);Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
requestedFeature
SCSIParallelFeature, что набора к newResult.
newResult
Допустимое значение SCSIParallelFeatureResult.
Обсуждение
Метод для установки широкого результата согласования передачи данных.
-
Средство доступа для установки свойства для определенной цели.
Объявление
C++
bool SetTargetProperty ( SCSIDeviceIdentifier
device
, const char *key
, OSObject *value
);Параметры
device
Указатель на допустимый IOSCSIParallelInterfaceDevice.
key
Указатель на допустимый объект OSString, представляющий ключ. Список допустимых ключей включает: kIOPropertySASAddressKey, kIOPropertyFibreChannelNodeWorldWideNameKey, kIOPropertyFibreChannelPortWorldWideNameKey, kIOPropertyFibreChannelAddressIdentifierKey, и kIOPropertyFibreChannelALPAKey. NB: Эти ключи и их значения описаны в <IOKit/storage/IOStorageProtocolCharacteristics.h>
value
Указатель на OSObject (один из типа OSData, OSString, и т.д.), который представляет значение для свойства. Значение должно иметь надлежащий тип и размер для указанного ключа.
Возвращаемое значение
если идентификатор был должным образом установлен, иначе ложь, возвращает true.
-
Метод для установки продолжительности тайм-аута в миллисекундах для запроса.
Объявление
C++
void SetTimeoutForTask ( SCSIParallelTaskIdentifier
parallelTask
, UInt32 timeoutOverride = 0 );Параметры
parallelTask
Допустимый SCSIParallelTaskIdentifier.
timeoutOverride
Значение тайм-аута в миллисекундах в случае, если драйвер HBA хочет переопределить значение по умолчанию, предоставленное в parallelTask.
Обсуждение
Метод для установки продолжительности тайм-аута в миллисекундах для запроса.
-
Сигналы, что произошло прерывание.
Объявление
C++
void SignalInterrupt (
void
);Обсуждение
Подклассы IOSCSIParallelInterfaceController должны вызвать этот метод для получения вторичного потока прерывания, запланированного, если и только если они будут возвращать false от своего overriden FilterInterruptRequest () метод. Посмотрите обсуждение для FilterInterruptRequest () метод для большего количества подробных данных.
Примечание: Этот метод нужно только вызвать из FilterInterruptRequest () методом и ни в какое другое время.
Доступный в 10.3.3 или позже.
-
Вызванный для запуска контроллера
Объявление
C++
virtual bool StartController (
void
) = 0;Возвращаемое значение
возвратите истинные средние значения, которые запуск был успешен.
Обсуждение
StartController будут всегда вызывать, прежде чем любые запросы отправлены к драйверу для выполнения. Этот метод вызывают после инициализирования для запуска услуг, предоставленных определенным драйвером HBA или вызванных после вызова StopController для перезапуска тех служб. После того, как этот вызов завершается, все услуги, предоставленные драйвером HBA, доступны клиенту.
-
Вызванный для остановки контроллера
Объявление
C++
virtual void StopController (
void
) = 0;Обсуждение
Метод StopController позвонится в любое время, что система хочет, чтобы карта прекратила принимать запросы. (См. обсуждение StartController). Подкласс должен отключить аппаратное прерывание для определенного контроллера (если возможный) в этом методе.
-
Вызванный для приостановки служб контроллера
Объявление
C++
virtual void SuspendServices (
void
);Обсуждение
Метод вызовут, когда система захочет приостановить услуги, предоставляющиеся драйвером HBA. Этот вызов не является сбросом, и драйвер должен сохранить все данные состояния между этим так, чтобы, если вызов ResumeServices принимается, драйвер мог продолжать предоставлять услуги без видимого различия для клиента. Драйвер может получить многократные вызовы SuspendServices, не принимая вызов ResumeServices и должен проигнорировать любого после первого, пока не принимается вызов ResumeServices.
-
Вызванный для завершения контроллера
Объявление
C++
virtual void TerminateController (
void
) = 0;Обсуждение
Гарантируется, что TerminateController () только вызовут один раз и только после InitializeController () метод и только если true был возвращен в ответ на InitializeController () метод. TerminateController () метод позволяет подклассу высвобождать все средства, полученные за работу аппаратных средств и завершающие работу всех аппаратных служб. Это - последний метод подкласса, который вызовут, прежде чем класс уничтожается.