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

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

Разработчик

Ссылка класса IOPCIDevice

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

На этой странице
Язык:

IOPCIDevice

Класс IOService, представляющий устройство PCI.

Открытие устройства PCI PCI соединяет шиной результаты семьи в экземпляре IOPCIDevice быть создаваемым и опубликованный. Это предоставляет услуги для поиска и отображения аппаратных средств с отображенной памятью и доступа к конфигурации PCI и пробелам I/O.

Соответствие поддерживаемого IOPCIDevice

Два типа соответствия доступны, соответствие имени OpenFirmware и соответствие регистра PCI. В настоящее время только одна из этих двух соответствующих схем может использоваться в той же таблице свойства.

Соответствие имени OpenFirmware

IOService выполняет соответствие на основе свойства IONameMatch (см. IOService). IOPCIDevices, создаваемый с записями дерева устройств OpenFirmware, назовет соответствие на основе стандартных свойств соответствия имени OpenFirmware.

Соответствие регистра PCI

Драйвер устройства PCI может также соответствовать на значениях определенных регистров пространства конфигурации.

В каждом случае могут быть указаны несколько совпадающих значений, и дополнительная маска для значения регистра пространства конфигурации может следовать за значением, которому предшествует '&' символ.

kIOPCIMatchKey, «IOPCIMatch»

kIOPCIMatchKey свойство соответствует поставщику и устройству ID (0x00) регистр или регистр подсистемы (0x2c).

kIOPCIPrimaryMatchKey, «IOPCIPrimaryMatch»

kIOPCIPrimaryMatchKey свойство соответствует поставщику и устройству ID (0x00) регистр.

kIOPCISecondaryMatchKey, «IOPCISecondaryMatch»

kIOPCISecondaryMatchKey свойство соответствует регистр подсистемы (0x2c).

kIOPCIClassMatchKey, «IOPCIClassMatch»

kIOPCIClassMatchKey свойство соответствует кодовый регистр (0x08) класса. Маска по умолчанию для этого регистра является 0xffffff00.

Примеры:

&ltkey&gtIOPCIMatch&lt/key&gt

&ltstring&gt0x00261011&lt/string&gt

Соответствует устройство, идентификатор поставщика которого является 0x1011 и устройством, ID является 0x0026, включая подсистему IDs.

&ltkey&gtIOPCIMatch&lt/key&gt

&ltstring&gt0x00789004&0x00ffffff 0x78009004&0x0xff00ffff&lt/string&gt

Соответствия с любым устройством с идентификатором поставщика 0x9004 и устройством ID 0xzz78 или 0x78zz, где 'z', не заботятся.

&ltkey&gtIOPCIClassMatch&lt/key&gt

&ltstring&gt0x02000000&0xffff0000&lt/string&gt

Соответствует устройство, код класса которого является 0x0200zz, устройством Ethernet.

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Читает 16-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt16 configRead16( IOByteCountoffset )

    Параметры

    offset

    Проигнорировано смещение в пространство конфигурации, которого укусил 0.

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

    16-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод читает 16-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Читает 32-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt32 configRead32( IOByteCountoffset )

    Параметры

    offset

    Смещение в пространство конфигурации, которого биты 0-1 проигнорированы.

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

    32-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод читает 32-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Читает 8-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt8 configRead8( IOByteCountoffset )

    Параметры

    offset

    Смещение в пространство конфигурации.

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

    8-разрядное значение.

    Обсуждение

    Этот метод читает 8-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Пишет 16-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void configWrite16( IOByteCountoffset, UInt16data )

    Параметры

    offset

    Проигнорировано смещение в пространство конфигурации, которого укусил 0.

    data

    16-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Эта запись метода 16-разрядное значение к конфигурации располагает регистр с интервалами на устройстве.

  • Пишет 32-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void configWrite32( IOByteCountoffset, UInt32data )

    Параметры

    offset

    Смещение в пространство конфигурации, которого биты 0-1 проигнорированы.

    data

    32-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Эта запись метода 32-разрядное значение к конфигурации располагает регистр с интервалами на устройстве.

  • Пишет 8-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void configWrite8( IOByteCountoffset, UInt8data )

    Параметры

    offset

    Смещение в пространство конфигурации.

    data

    8-разрядное значение, которое будет записано.

    Обсуждение

    Эта запись метода 8-разрядное значение к конфигурации располагает регистр с интервалами на устройстве.

  • включите управление питанием PCI для состояния сна

    Объявление

    C++

    virtual IOReturn enablePCIPowerManagement( IOOptionBits state = 0xffffffff);

    Параметры

    state(optional)

    Включает Управление питанием PCI путем размещения функции в данное состояние (например, kPCIPMCSPowerStateD3). Если состояние не указано или является 0xffffffff, то IOPCIDevice определяет требуемое состояние. Если состояние является kPCIPMCSPowerStateD0 (0) тогда, Управление питанием PCI отключено.

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

    kIOReturnSuccess, если не было никаких ошибок

    Обсуждение

    Этот метод включит Шине PCI Powermanagement при засыпании режима.

  • Читает 16-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt16 extendedConfigRead16( IOByteCountoffset );

    Параметры

    offset

    Проигнорировано байтовое смещение в пространство конфигурации, которого укусил 0.

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

    16-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод читает 16-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Читает 32-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt32 extendedConfigRead32( IOByteCountoffset );

    Параметры

    offset

    Байтовое смещение в пространство конфигурации, которого биты 0-1 проигнорированы.

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

    32-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод читает 32-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Читает 8-разрядное значение из пространства конфигурации устройства PCI.

    Объявление

    C++

    UInt8 extendedConfigRead8( IOByteCountoffset );

    Параметры

    offset

    Байтовое смещение в пространство конфигурации.

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

    8-разрядное значение.

    Обсуждение

    Этот метод читает 8-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.

  • Пишет 16-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void extendedConfigWrite16( IOByteCountoffset, UInt16data );

    Параметры

    offset

    Проигнорировано байтовое смещение в пространство конфигурации, которого укусил 0.

    data

    16-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод пишет 16-разрядное значение в регистр пространства конфигурации на устройстве.

  • Пишет 32-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void extendedConfigWrite32( IOByteCountoffset, UInt32data );

    Параметры

    offset

    Байтовое смещение в пространство конфигурации, которого биты 0-1 проигнорированы.

    data

    32-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод пишет 32-разрядное значение в регистр пространства конфигурации на устройстве.

  • Пишет 8-разрядное значение в пространство конфигурации устройства PCI.

    Объявление

    C++

    void extendedConfigWrite8( IOByteCountoffset, UInt8data );

    Параметры

    offset

    Байтовое смещение в пространство конфигурации.

    data

    8-разрядное значение, которое будет записано.

    Обсуждение

    Этот метод пишет 8-разрядное значение в регистр пространства конфигурации на устройстве.

  • Поисковое пространство конфигурации для регистра возможности PCI.

    Объявление

    C++

    virtual UInt32 extendedFindPCICapability( UInt32 capabilityID, IOByteCount *offset = 0 );

    Параметры

    capabilityID

    Возможность PCI ID. Устройства PCI Express могут поддерживать расширенные возможности в пространстве конфигурации, запускающемся при смещении 0x100. Для поиска этого пространства ID передал, должно быть отрицаемое значение PCI-SIG, присвоенного ID для расширенной возможности.

    offset

    Дополнительное в / параметре для возврата смещения в конфигурацию располагает с интервалами, где возможность была найдена, и установить стартовую точку следующего поиска. Инициализируйте смещение для обнуления перед первым вызовом к extendedFindPCICapability (), и последующие вызовы найдут все блоки возможности, которые могут существовать на устройстве с тем же ID.

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

    32-разрядное значение возможности регистрируется, если Вы были найдены, нуль иначе.

    Обсуждение

    Если устройство поддерживает возможности PCI, этот метод ищет пространство конфигурации устройства регистр возможности PCI, соответствующий переданную возможность ID.

  • Поисковое пространство конфигурации для регистра возможности PCI.

    Объявление

    C++

    virtual UInt32 findPCICapability( UInt8 capabilityID, UInt8 *offset = 0 );

    Параметры

    capabilityID

    8-разрядная возможность PCI ID.

    offset

    Дополнительный указатель для возврата смещения в конфигурацию располагает с интервалами, где была найдена возможность.

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

    32-разрядное значение возможности регистрируется, если Вы были найдены, нуль иначе.

    Обсуждение

    Если устройство поддерживает возможности PCI, этот метод ищет пространство конфигурации устройства регистр возможности PCI, соответствующий переданную возможность ID. Искать PCI Express расширило возможности или для многократных возможностей с тем же ID, используйте extendedFindPCICapability () метод.

  • Средство доступа для возврата присвоенного номера шины устройства PCI.

    Объявление

    C++

    virtual UInt8 getBusNumber( void );

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

    8-разрядное значение номера шины PCI устройства.

    Обсуждение

    Этот метод является средством доступа для возврата присвоенного номера шины устройства PCI.

  • Возвращает экземпляр IODeviceMemory, представляющего один из диапазонов устройства с отображенной памятью.

    Объявление

    C++

    virtual IODeviceMemory * getDeviceMemoryWithRegister( UInt8reg );

    Параметры

    reg

    8-разрядная конфигурация располагает с интервалами регистр, который является индексным регистром для желаемого диапазона.

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

    Указатель на экземпляр IODeviceMemory или нуль никакой такой диапазон не был найден. IODeviceMemory сохраняется провайдером, так допустимо, в то время как присоединено, или в то время как существуют любые отображения к нему. Это не должно быть выпущено вызывающей стороной.

    Обсуждение

    Этот метод возвратит указатель на экземпляр IODeviceMemory для диапазона физической памяти, присвоенного индексному регистру пространства конфигурации, передал в. Это походит на IOService:: getDeviceMemoryWithIndex.

  • Средство доступа для возврата номера устройства устройства PCI.

    Объявление

    C++

    virtual UInt8 getDeviceNumber( void );

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

    5-разрядное значение номера устройства устройства.

    Обсуждение

    Этот метод является средством доступа для возврата номера устройства устройства PCI.

  • Средство доступа для возврата функционального числа устройства PCI.

    Объявление

    C++

    virtual UInt8 getFunctionNumber( void );

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

    3-разрядное значение функционального числа устройства.

    Обсуждение

    Этот метод является средством доступа для возврата функционального числа устройства PCI.

  • определите, поддерживает ли устройство Управление питанием Шины PCI.

    Объявление

    C++

    virtual bool hasPCIPowerManagement( IOOptionBits state = 0);

    Параметры

    state(optional)

    Проверьте на поддержку определенного состояния (например, kPCIPMCPMESupportFromD3Cold). Если состояние не является suuplied или 0, то проверьте на свойство в реестре, говорящем, в какое состояние аппаратные средства ожидают, что устройство перейдет во время сна.

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

    истина, если поддерживается указанное состояние

    Обсуждение

    Этот метод будет смотреть на регистры возможностей устройства и определять, поддерживает ли устройство PCI Спецификация Управления питанием BUS.

  • Средство доступа к I/O располагает апертуру с интервалами для шины.

    Объявление

    C++

    virtual IODeviceMemory * ioDeviceMemory( void );

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

    Указатель на IODeviceMemory возражает для апертуры I/O. IODeviceMemory сохраняется провайдером, так допустимо, в то время как присоединено, или в то время как существуют любые отображения к нему. Это не должно быть выпущено вызывающей стороной.

    Обсуждение

    Этот метод возвратит ссылку на IODeviceMemory для апертуры I/O шины, устройство работает.

  • Читает 16-разрядное значение от I/O располагают апертуру с интервалами.

    Объявление

    C++

    virtual UInt16 ioRead16( UInt16 offset, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

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

    Чтение значения в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод будет читать, 16-разрядное значение от 2 байтов выровнялось, смещение в I/O располагают апертуру с интервалами. Если объект карты передается в, значение читается относительно него, иначе к значению читается относительно апертуры пространства I/O из шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Читает 32-разрядное значение от I/O располагают апертуру с интервалами.

    Объявление

    C++

    virtual UInt32 ioRead32( UInt16 offset, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

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

    Чтение значения в порядке байтов узла (обратный порядок байтов на PPC).

    Обсуждение

    Этот метод будет читать, 32-разрядное значение от 4 байтов выровнялось, смещение в I/O располагают апертуру с интервалами. Если объект карты передается в, значение читается относительно него, иначе к значению читается относительно апертуры пространства I/O из шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Читает 8-разрядное значение от I/O располагают апертуру с интервалами.

    Объявление

    C++

    virtual UInt8 ioRead8( UInt16 offset, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

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

    Значение читало.

    Обсуждение

    Этот метод считает 8-разрядное значение из смещения в апертуре пространства I/O. Если объект карты передается в, значение читается относительно него, иначе к значению читается относительно апертуры пространства I/O из шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Пишет, что 16-разрядное значение к I/O располагает апертуру с интервалами.

    Объявление

    C++

    virtual void ioWrite16( UInt16 offset, UInt16 value, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    value

    Значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

    Обсуждение

    Этот метод запишет, что 16-разрядное значение к 2 байтам выровнялось, смещение в I/O располагают апертуру с интервалами. Если объект карты передается в, значение записано относительно него, иначе к значению записан относительно апертуры пространства I/O для шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Пишет, что 32-разрядное значение к I/O располагает апертуру с интервалами.

    Объявление

    C++

    virtual void ioWrite32( UInt16 offset, UInt32 value, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    value

    Значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

    Обсуждение

    Этот метод запишет, что 32-разрядное значение к 4 байтам выровнялось, смещение в I/O располагают апертуру с интервалами. Если объект карты передается в, значение записано относительно него, иначе к значению записан относительно апертуры пространства I/O для шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Пишет, что 8-разрядное значение к I/O располагает апертуру с интервалами.

    Объявление

    C++

    virtual void ioWrite8( UInt16 offset, UInt8 value, IOMemoryMap *map = 0 );

    Параметры

    offset

    Смещение в шину или I/O устройства располагает апертуру с интервалами.

    value

    Значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

    map

    Если смещение относительно начала апертуры устройства, объект IOMemoryMap для того объекта должен быть передан в. Иначе, передача нуля запишет значение относительно начала пространства I/O шины.

    Обсуждение

    Этот метод запишет, что 8-разрядное значение к смещению в I/O располагает апертуру с интервалами. Если объект карты передается в, значение записано относительно него, иначе к значению записан относительно апертуры пространства I/O для шины. Эта функция инкапсулирует различия между архитектурой в генерации космических операций I/O. eieio инструкция включена в PPC.

  • Отображает физический диапазон устройства.

    Объявление

    C++

    virtual IOMemoryMap * mapDeviceMemoryWithRegister( UInt8 reg, IOOptionBits options = 0 );

    Параметры

    reg

    8-разрядная конфигурация располагает с интервалами регистр, который является индексным регистром для желаемого диапазона.

    options

    Опции, которые будут переданы IOMemoryDescriptor:: карта () метод.

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

    Экземпляр IOMemoryMap или нуль, если индекс вне доступного количества. Отображение должно быть выпущено только, когда больше не требуется доступ к нему.

    Обсуждение

    Этот метод создаст отображение для IODeviceMemory для диапазона физической памяти, присвоенного индексному регистру пространства конфигурации, передал в, с IODeviceMemory:: карта (опции). Отображение представлено возвращенным экземпляром IOMemoryMap, который не должен быть выпущен, пока отображение больше не требуется. Этот метод походит на IOService:: mapDeviceMemoryWithIndex.

  • Наборы устройство управления шиной устройства включают.

    Объявление

    C++

    virtual bool setBusMasterEnable( boolenable );

    Параметры

    enable

    Истина или ложь, чтобы включить или отключить шинное управление.

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

    Истина, если шинное управление было ранее включено, ложь иначе.

    Обсуждение

    Этот метод устанавливает устройство управления шиной, включают бит в регистре пространства конфигурации команды устройства к переданному значению, и возвращает предыдущее состояние разрешения.

  • Наборы замаскировали биты в регистре пространства конфигурации.

    Объявление

    C++

    virtual UInt32 setConfigBits( UInt8offset, UInt32mask, UInt32data );

    Параметры

    offset

    8-разрядное смещение в пространство конфигурации, которого биты 0-1 проигнорированы.

    mask

    32-разрядная маска, указывающая, какие биты в параметре, передаваемом по значению допустимы.

    data

    32-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).

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

    Значение регистра, замаскированного с маской перед записью.

    Обсуждение

    Этот метод устанавливает биты маскированные в регистре пространства конфигурации на устройстве путем чтения и записи регистра. Значение битов маскированных перед записью возвращается.

  • Устанавливает ответ пространства I/O устройства.

    Объявление

    C++

    virtual bool setIOEnable( bool enable, bool exclusive = false );

    Параметры

    enable

    Истина или ложь, чтобы включить или отключить I/O располагает ответ с интервалами.

    exclusive

    Если это правда, только один setIOEnable с монопольным набором флага будет позволен за один раз на шине, это должно быть только для временного доступа.

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

    Истина, если ответ пространства I/O был ранее включен, ложь иначе.

    Обсуждение

    Этот метод устанавливает ответ пространства I/O, укусил в регистре пространства конфигурации команды устройства к переданному значению и возвращает предыдущее состояние разрешения. Монопольная опция позволяет только одному монопольному устройству на шине быть включенным одновременно, это должно быть только для временного доступа.

  • Устанавливает ответ пространства памяти устройства.

    Объявление

    C++

    virtual bool setMemoryEnable( boolenable );

    Параметры

    enable

    Истина или ложь, чтобы включить или отключить ответ пространства памяти.

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

    Истина, если ответ пространства памяти был ранее включен, ложь иначе.

    Обсуждение

    Этот метод устанавливает ответ пространства памяти, укусил в регистре пространства конфигурации команды устройства к переданному значению и возвращает предыдущее состояние разрешения.

Переменные экземпляра

  • Зарезервированный для будущего использования. (Только внутреннее использование)

    Объявление

    C++

    struct IOPCIDeviceExpansionData * reserved;