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

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

Разработчик

Ссылка класса IOFireWireSBP2LibORBInterface

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

На этой странице

IOFireWireSBP2LibORBInterface

Представляет нормальную команду ORB SBP2. Предоставляет APIs для конфигурирования нормальной команды ORBs. Это включает установку блока команды и запись таблиц страниц для I/O. ORBs выполняется с помощью submitORB метода в IOFireWireSBP2LibLoginInterface.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый не применимый
  • Возвращает набор refCon с setRefCon.

    Объявление

    C++

    void * ( *getRefCon)( void *self );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    Возвращаемое значение

    Возвращает ранее сохраненное определяемое пользователем значение.

    Обсуждение

    Возвращает определяемое пользователем значение, ранее сохраненное в ORB setRefCon.

  • Создает таблицу страниц с обходным решением LSI из списка диапазонов.

    Объявление

    C++

    IOReturn ( *LSIWorkaroundSetCommandBuffersAsRanges)( void *self, FWSBP2VirtualRange *ranges, UInt32 withCount, UInt32 withDirection, UInt32 offset, UInt32 length );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    ranges

    Массив диапазонов, представляющих данные, которые будут переданы.

    withCount

    Число диапазонов в массиве диапазонов.

    withDirection

    IODirection указание направления передачи данных.

    offset

    Смещение в байтах в данные для начала письменного стола в.

    length

    Число байтов данных для отображения от смещения.

    Возвращаемое значение

    KIOReturnSuccess возвратов, если таблица страниц была записана успешно.

    Обсуждение

    Создает таблицу страниц обходного решения LSI с данными параметрами. Любые адреса, отображенные этой подпрограммой метода, должны остаться допустимыми, пока setCommandBuffers не вызывают снова, или releaseCommandBuffers вызывают. Службы SBP2 не выпускают ссылки на буферы команд просто, потому что завершилась команда.

  • Синхронизируйте буферы для ввода.

    Объявление

    C++

    IOReturn ( *LSIWorkaroundSyncBuffersForInput)( void *self );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    Возвращаемое значение

    Возвраты kIOReturnSuccess, если синхронизация была успешна.

    Обсуждение

    Так как двойная буферизация может быть invovled в обходном решении. Когда эти буферы должны синхронизироваться с исходным дескриптором, драйвер должен указать. Для данных, которые будут вводом, LSIWorkaroundSyncBuffersForInput нужно вызвать после получения состояния завершения для ORB.

  • Синхронизируйте буферы для вывода.

    Объявление

    C++

    IOReturn ( *LSIWorkaroundSyncBuffersForOutput)( void *self );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    Возвращаемое значение

    Возвраты kIOReturnSuccess, если синхронизация была успешна.

    Обсуждение

    Так как двойная буферизация может быть invovled в обходном решении. Когда эти буферы должны синхронизироваться с исходным дескриптором, драйвер должен указать. Для данных, которые будут выводом LSIWorkaroundSyncBuffersForOutput, должен быть вызван прежде, чем представить ORB.

  • Ссылка SBP2 выпусков на буферы команд.

    Объявление

    C++

    IOReturn ( *releaseCommandBuffers)( void *self );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    Возвращаемое значение

    KIOReturnSuccess возвратов, если таблица страниц была очищена успешно.

    Обсуждение

    Когда Вы создаете таблицу страниц с одним из вариантов setCommandBuffers. SBP2 держится за ссылку на буферы, пока не вызывают этот метод. Это означает, если команда завершилась и выпуск буферов, не вызывая этот метод, Вы могли бы оставить FW в противоречивом состоянии.

  • Устанавливает блочную часть команды ORB.

    Объявление

    C++

    IOReturn ( *setCommandBlock)( void *self, void *buffer, UInt32 length );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    buffer

    Указатель для буферизации для копирования блока команды с.

    length

    Число байтов данных для копирования.

    Возвращаемое значение

    KIOReturnSuccess возвратов, если блок команды был обновлен успешно.

    Обсуждение

    Copys данные обеспечил в буфере для блочной части команды ORB.

  • Создает таблицу страниц из списка диапазонов.

    Объявление

    C++

    IOReturn ( *setCommandBuffersAsRanges)( void *self, FWSBP2VirtualRange *ranges, UInt32 withCount, UInt32 withDirection, UInt32 offset, UInt32 length );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    ranges

    Массив диапазонов, представляющих данные, которые будут переданы.

    withCount

    Число диапазонов в массиве диапазонов.

    withDirection

    IODirection указание направления передачи данных.

    offset

    Смещение в байтах в данные для начала письменного стола в.

    length

    Число байтов данных для отображения от смещения.

    Возвращаемое значение

    KIOReturnSuccess возвратов, если таблица страниц была записана успешно.

    Обсуждение

    Создает таблицу страниц с данными параметрами. Любые адреса, отображенные этим методом, должны остаться допустимыми, пока setCommandBuffers не вызывают снова, или releaseCommandBuffers вызывают. Службы SBP2 не выпускают ссылки на буферы команд просто, потому что завершилась команда.

  • Конфигурация наборов отмечает для ORB.

    Объявление

    C++

    void ( *setCommandFlags)( void *self, UInt32 flags );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    flags

    Флаги, которые будут установлены.

    Обсуждение

    Устанавливает флаги конфигурации для ORB. Они могут быть любым следующим:

    kFWSBP2CommandCompleteNotify - Установите уведомлять бит, как указано в стандарте SBP2. Набор для получения уведомления завершения/тайм-аута на этом ORB. Вы почти всегда хотите установить это.

    kFWSBP2CommandTransferDataFromTarget - Направление передачи, как указано в стандарте SBP2. Набор, если данные должны быть записаны устройством в память узла.

    kFWSBP2CommandImmediate - Непосредственный Добавляют. Адрес ORB будет записан для выборки агента и не объединен в цепочку. Только законно иметь один непосредственный происходящий ORB за один раз.

    kFWSBP2CommandNormalORB - формат 0 ORB - Формат указан стандартом SBP2. Установите это для большей части ORBs.

    kFWSBP2CommandReservedORB - формат 1 ORB - Формат зарезервирован стандартом SBP2 для будущей стандартизации.

    kFWSBP2CommandVendorORB - формат 2 ORB - Формат, указанный стандартом SBP2 для зависимого поставщика ORBs.

    kFWSBP2CommandDummyORB - формат 3 ORB - Формат указан стандартом SBP2 для фиктивного ORBs.

    kFWSBP2CommandCheckGeneration - Если набор генерации с setCommandGeneration () будет соответствовать текущую генерацию, если установлено на submitORB, ORB будет только добавлен. В значительной степени всем драйверам SBP2 нужна сложная логика для отслеживания состояния входа в систему, таким образом, это обычно не используется.

    kFWSBP2CommandFixedSize - Не выделяйте больше памяти для таблицы страниц в случае необходимости. Если будет недостаточно пространства в в настоящее время выделяемой таблице страниц, то вызов setCommandBuffers перестанет работать. Это важно для установленного, если Ваше устройство является запоминающим устройством, поскольку мы не хотим вызывать выделения памяти на пути разбивки на страницы.

    kFWSBP2CommandVirtualORBs - Обычно ORBs поддерживается физическими адресными пространствами. Установка этого флага делает этот ORB поддержанным псевдо адресным пространством. Это может сделать ORBs проще видеть в трассировке шины. Виртуальный ORBs будет иметь адрес в форме ffcX.XXXX.0000.0000. Псевдо адресное пространство отступило, ORBs медленнее, таким образом, Вы не захотите устанавливать для сборок развертывания.

  • Устанавливает генерацию команды.

    Объявление

    C++

    void ( *setCommandGeneration)( void *self, UInt32 generation );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    generation

    Генерация шины для выполнения команды.

    Обсуждение

    Это устанавливает генерацию шины, в которой должен быть добавлен этот ORB. Это только значимо, когда объединено с флагами kFWSBP2CommandCheckGeneration выше.

  • Устанавливает тайм-аут ORB.

    Объявление

    C++

    void ( *setCommandTimeout)( void *self, UInt32 timeout );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    timeout

    Продолжительность тайм-аута в миллисекундах.

    Обсуждение

    Это устанавливает тайм-аут для ORB в миллисекундах. Обратите внимание на то, что ORBs без тайм-аутов может быть «потерян». Вы, очевидно, не получите уведомление тайм-аута для тайм-аутов нуля. Но возможно менее очевидно, Вы не получите уведомление сброса шара, которое является действительно своего рода ускоренным уведомлением тайм-аута для ситуаций со сбросом шины.

  • Наборы макс. размер полезной нагрузки для ORB.

    Объявление

    C++

    void ( *setMaxORBPayloadSize)( void *self, UInt32 size );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    size

    Максимальный размер полезной нагрузки в байтах.

    Обсуждение

    Это устанавливает максимальный размер полезной нагрузки для этого ORB только. Этот размер отсекается глобальным макс. набором размера полезной нагрузки в объекте входа в систему.

  • Устанавливает ORB refCon.

    Объявление

    C++

    void ( *setRefCon)( void *self, void *refCon );

    Параметры

    self

    Указатель на IOFireWireSBP2LibORBInterface.

    refCon

    определяемое пользователем значение.

    Обсуждение

    Устанавливает определяемое пользователем значение на ORB, который может быть получен позже с методом getRefCon.