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.
Примеры:
<key>IOPCIMatch</key>
<string>0x00261011</string>
Соответствует устройство, идентификатор поставщика которого является 0x1011 и устройством, ID является 0x0026, включая подсистему IDs.
<key>IOPCIMatch</key>
<string>0x00789004&0x00ffffff 0x78009004&0x0xff00ffff</string>
Соответствия с любым устройством с идентификатором поставщика 0x9004 и устройством ID 0xzz78 или 0x78zz, где 'z', не заботятся.
<key>IOPCIClassMatch</key>
<string>0x02000000&0xffff0000</string>
Соответствует устройство, код класса которого является 0x0200zz, устройством Ethernet.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Читает 16-разрядное значение из пространства конфигурации устройства PCI.
Объявление
C++
UInt16 configRead16( IOByteCount
offset
)Параметры
offset
Проигнорировано смещение в пространство конфигурации, которого укусил 0.
Возвращаемое значение
16-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод читает 16-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Читает 32-разрядное значение из пространства конфигурации устройства PCI.
Объявление
C++
UInt32 configRead32( IOByteCount
offset
)Параметры
offset
Смещение в пространство конфигурации, которого биты 0-1 проигнорированы.
Возвращаемое значение
32-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод читает 32-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Читает 8-разрядное значение из пространства конфигурации устройства PCI.
Объявление
C++
UInt8 configRead8( IOByteCount
offset
)Параметры
offset
Смещение в пространство конфигурации.
Возвращаемое значение
8-разрядное значение.
Обсуждение
Этот метод читает 8-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Пишет 16-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void configWrite16( IOByteCount
offset
, UInt16data
)Параметры
offset
Проигнорировано смещение в пространство конфигурации, которого укусил 0.
data
16-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Эта запись метода 16-разрядное значение к конфигурации располагает регистр с интервалами на устройстве.
-
Пишет 32-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void configWrite32( IOByteCount
offset
, UInt32data
)Параметры
offset
Смещение в пространство конфигурации, которого биты 0-1 проигнорированы.
data
32-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Эта запись метода 32-разрядное значение к конфигурации располагает регистр с интервалами на устройстве.
-
Пишет 8-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void configWrite8( IOByteCount
offset
, 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( IOByteCount
offset
);Параметры
offset
Проигнорировано байтовое смещение в пространство конфигурации, которого укусил 0.
Возвращаемое значение
16-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод читает 16-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Читает 32-разрядное значение из пространства конфигурации устройства PCI.
Объявление
C++
UInt32 extendedConfigRead32( IOByteCount
offset
);Параметры
offset
Байтовое смещение в пространство конфигурации, которого биты 0-1 проигнорированы.
Возвращаемое значение
32-разрядное значение в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод читает 32-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Читает 8-разрядное значение из пространства конфигурации устройства PCI.
Объявление
C++
UInt8 extendedConfigRead8( IOByteCount
offset
);Параметры
offset
Байтовое смещение в пространство конфигурации.
Возвращаемое значение
8-разрядное значение.
Обсуждение
Этот метод читает 8-разрядный регистр пространства конфигурации на устройстве и возвращает его значение.
-
Пишет 16-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void extendedConfigWrite16( IOByteCount
offset
, UInt16data
);Параметры
offset
Проигнорировано байтовое смещение в пространство конфигурации, которого укусил 0.
data
16-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод пишет 16-разрядное значение в регистр пространства конфигурации на устройстве.
-
Пишет 32-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void extendedConfigWrite32( IOByteCount
offset
, UInt32data
);Параметры
offset
Байтовое смещение в пространство конфигурации, которого биты 0-1 проигнорированы.
data
32-разрядное значение, которое будет записано в порядке байтов узла (обратный порядок байтов на PPC).
Обсуждение
Этот метод пишет 32-разрядное значение в регистр пространства конфигурации на устройстве.
-
Пишет 8-разрядное значение в пространство конфигурации устройства PCI.
Объявление
C++
void extendedConfigWrite8( IOByteCount
offset
, 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( UInt8
reg
);Параметры
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
, UInt16value
, 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
, UInt32value
, 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
, UInt8value
, 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( bool
enable
);Параметры
enable
Истина или ложь, чтобы включить или отключить шинное управление.
Возвращаемое значение
Истина, если шинное управление было ранее включено, ложь иначе.
Обсуждение
Этот метод устанавливает устройство управления шиной, включают бит в регистре пространства конфигурации команды устройства к переданному значению, и возвращает предыдущее состояние разрешения.
-
Наборы замаскировали биты в регистре пространства конфигурации.
Объявление
C++
virtual UInt32 setConfigBits( UInt8
offset
, 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( bool
enable
);Параметры
enable
Истина или ложь, чтобы включить или отключить ответ пространства памяти.
Возвращаемое значение
Истина, если ответ пространства памяти был ранее включен, ложь иначе.
Обсуждение
Этот метод устанавливает ответ пространства памяти, укусил в регистре пространства конфигурации команды устройства к переданному значению и возвращает предыдущее состояние разрешения.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
struct IOPCIDeviceExpansionData * reserved;