IOEthernetController
Абстрактный суперкласс для контроллеров Ethernet.
Драйверы контроллера Ethernet должны разделить IOEthernetController на подклассы, и реализовать или переопределить аппаратные средства определенные методы для создания драйвера Ethernet. Интерфейсный объект (экземпляр IOEthernetInterface) должен инстанцировать драйвер, через attachInterface (), для подключения драйвера контроллера с канальным уровнем.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Создает объект IOEthernetInterface.
Объявление
C++
virtual IONetworkInterface * createInterface();
Возвращаемое значение
Возвращает недавно выделенный и инициализированный объект IOEthernetInterface.
Обсуждение
Этот метод выделяет и возвращает новый экземпляр IOEthernetInterface. Подкласс IONetworkController должен реализовать этот метод и возвратить соответствующий интерфейсный объект. Реализация в IOEthernetController возвратит объект IOEthernetInterface. Подклассы IOEthernetController, такие как драйверы контроллера Ethernet, будут иметь мало причины переопределить эту реализацию.
-
Отключает фильтр пакетов, в настоящее время включающийся из данной группы фильтра.
Объявление
C++
virtual IOReturn disablePacketFilter( const OSSymbol *
group
, UInt32aFilter
, UInt32enabledFilters
, IOOptionBits options = 0);Параметры
group
Имя группы фильтра, содержащей фильтр, который будет отключен.
aFilter
Фильтр для отключения.
enabledFilters
Все фильтры в настоящее время включены клиентом.
options
Дополнительные флаги для запрещать запроса.
Возвращаемое значение
Возвращает значение, возвращенное setMulticastMode () или setPromiscuousMode (), если вызывают любой из тех двух методов. Возвраты kIOReturnSuccess, если указанный фильтр является kIOPacketFilterUnicast или kIOPacketFilterBroadcast. Возвраты kIOReturnUnsupported, если группа фильтра указала, не являются gIONetworkFilterGroup.
Обсуждение
Реализация по умолчанию абстрактного метода наследовалась от IONetworkController. Этот метод вызовет setMulticastMode () или setPromiscuousMode (), когда должны будут быть отключены многоадресная передача или разнородный фильтр. Запросы для отключения Одноадресных или Широковещательных фильтров обработаны тихо, не сообщая подклассу. Подклассы могут переопределить этот метод, чтобы изменить это поведение по умолчанию или расширить его для обработки дополнительных типов фильтра или групп фильтра. Этот вызов метода синхронизируется логическим элементом workloop.
-
Включает один из поддерживаемых фильтров пакетов от данной группы фильтра.
Объявление
C++
virtual IOReturn enablePacketFilter( const OSSymbol *
group
, UInt32aFilter
, UInt32enabledFilters
, IOOptionBits options = 0);Параметры
group
Имя группы фильтра, содержащей фильтр, который будет включен.
aFilter
Фильтр для включения.
enabledFilters
Все фильтры в настоящее время включены клиентом.
options
Дополнительные флаги для разрешать запроса.
Возвращаемое значение
Возвращает значение, возвращенное setMulticastMode () или setPromiscuousMode (), если вызывают любой из тех двух методов. Возвраты kIOReturnSuccess, если указанный фильтр является kIOPacketFilterUnicast или kIOPacketFilterBroadcast. Возвраты kIOReturnUnsupported, если группа фильтра указала, не являются gIONetworkFilterGroup.
Обсуждение
Реализация по умолчанию абстрактного метода наследовалась от IONetworkController. Этот метод вызовет setMulticastMode () или setPromiscuousMode (), когда должны будут быть включены многоадресная передача или разнородный фильтр. Запросы для отключения Одноадресных или Широковещательных фильтров обработаны тихо, не сообщая подклассу. Подклассы могут переопределить этот метод, чтобы изменить это поведение по умолчанию или расширить его для обработки дополнительных типов фильтра или групп фильтра. Этот вызов метода синхронизируется логическим элементом workloop.
-
Освобождает экземпляр IOEthernetController.
Объявление
C++
virtual void free();
Обсуждение
Этот метод высвобождает средства и тогда сопровождается вызовом к супер:: свободный ().
-
Получает постоянный адрес станции контроллера Ethernet.
Объявление
C++
virtual IOReturn getHardwareAddress( IOEthernetAddress *
addrP
) = 0;Параметры
addrP
Указатель на IOEthernetAddress, куда должен быть возвращен аппаратный адрес.
Возвращаемое значение
Возвраты kIOReturnSuccess на успехе или ошибочном коде возврата иначе.
Обсуждение
Драйверы Ethernet должны реализовать этот метод путем чтения адреса из аппаратных средств и записи его в предоставленный буфер. Этот метод вызывают от workloop контекста.
-
getHardwareAddress (недействительный *, UInt32 *) - getHardwareAddress (недействительный *, UInt32 *)
Получает адрес станции контроллера Ethernet.
Объявление
C++
virtual IOReturn getHardwareAddress( void *
addr
, UInt32 *inOutAddrBytes
);Параметры
addr
Буфер, где должен быть записан аппаратный адрес контроллера.
inOutAddrBytes
Размер буфера адресов, предоставленного клиентом и замененного этим методом фактическим размером аппаратного адреса в байтах.
Возвращаемое значение
Возвраты kIOReturnSuccess на успехе или ошибке иначе.
Обсуждение
Реализация по умолчанию абстрактного метода наследовалась от IONetworkController. Этот метод вызовет перегруженную форму IOEthernetController:: getHardwareAddress (), который подклассы, как ожидают, переопределят.
-
Поддерживали максимальный размер пакета контроллером Ethernet, включая заголовок кадра и FCS.
Объявление
C++
virtual IOReturn getMaxPacketSize( UInt32 *
maxSize
) const;Параметры
maxSize
Указатель на возвращаемое значение.
Возвращаемое значение
Возвраты kIOReturnSuccess на успехе или коде ошибки иначе.
-
Поддерживали минимальный размер пакета контроллером Ethernet, включая заголовок кадра и FCS.
Объявление
C++
virtual IOReturn getMinPacketSize( UInt32 *
minSize
) const;Параметры
minSize
Указатель на возвращаемое значение.
Возвращаемое значение
Возвраты kIOReturnSuccess на успехе или коде ошибки иначе.
-
getPacketFilters (константа OSSymbol *, UInt32 *) - getPacketFilters (константа OSSymbol *, UInt32 *)
Получает набор фильтров пакетов, поддерживаемых контроллером Ethernet в данной группе фильтра.
Объявление
C++
virtual IOReturn getPacketFilters( const OSSymbol *
group
, UInt32 *filters
) const;Параметры
group
Имя группы фильтра.
filters
Указатель на маску поддерживаемых фильтров, возвращенных этим методом.
Возвращаемое значение
Возвраты kIOReturnSuccess. Драйверы, переопределяющие этот метод, должны возвратить kIOReturnSuccess для указания успеха или ошибочного кода возврата иначе.
Обсуждение
Реализация по умолчанию абстрактного метода наследовалась от IONetworkController. То, когда группа фильтра указала, является gIONetworkFilterGroup, тогда этот метод возвратит значение, сформированное битовым «ИЛИ» kIOPacketFilterUnicast, kIOPacketFilterBroadcast, kIOPacketFilterMulticast, kIOPacketFilterPromiscuous. Иначе, возвращаемое значение будет установлено в нуль (0). Подклассы должны переопределить этот метод, если их возможность фильтрации отличается от того, о чем сообщает эта реализация по умолчанию. Этот метод вызывают от workloop контекста, и результат публикуется к Реестру Набора I/O.
-
Получает набор фильтров пакетов, поддерживаемых контроллером Ethernet в сетевой группе фильтра.
Объявление
C++
virtual IOReturn getPacketFilters( UInt32 *
filters
) const;Параметры
filters
Указатель на возвращаемое значение, содержащее маску поддерживаемых фильтров.
Возвращаемое значение
Возвраты kIOReturnSuccess. Драйверы, переопределяющие этот метод, должны возвратить kIOReturnSuccess для указания успеха или ошибочного кода возврата иначе.
-
Выберите требование об аппаратном наполнении тега VLAN для данного пакета, прежде чем это будет передано в сети.
Объявление
C++
virtual bool getVlanTagDemand( mbuf_t
m
, UInt32 *vlanTag
);Параметры
m
mbuf, содержащий пакет, который может потребовать наполнения тега VLAN.
vlanTag
После вызова младший разряд 16 битов содержат 802.1Q приоритет и vlan тег ID в порядке узла. Привет-порядок 16 битов в настоящее время не использованы и должны быть проигнорированы.
Возвращаемое значение
истина, если vlanTag был установлен и должен использоваться. ложь, если никакое наполнение тега VLAN не требуется для этого пакета.
Обсуждение
Сетевой контроллер, который может вставить 802.1Q теги VLAN для исходящих пакетов, должен вызвать этот метод для получения информации о теге VLAN, которую это должно вставить в данный исходящий пакет.
-
Инициализирует объект IOEthernetController.
Объявление
C++
virtual bool init( OSDictionary *
properties
);Параметры
properties
Объект словаря, содержащий таблицу свойства, связался с этим экземпляром.
Возвращаемое значение
Возвращает true на успехе, ложь иначе.
-
Инициализатор класса IOEthernetController.
Объявление
C++
static void initialize();
Обсуждение
Создает глобальные объекты OSSymbol, использующиеся в качестве ключей.
-
Публикует свойства контроллера Ethernet и возможности.
Объявление
C++
virtual bool publishProperties();
Возвращаемое значение
Если все свойства и возможности были обнаружены и опубликованы успешно, ложь иначе, возвращает true. Возвращение false будет препятствовать тому, чтобы объекты клиента присоединили к контроллеру Ethernet начиная со свойства, на которое полагается клиент, может отсутствовать.
Обсуждение
Этот метод публикует свойства контроллера Ethernet к таблице свойства. Например, getHardwareAddress () вызывается для выборки аппаратного адреса, и адрес тогда публикуется к таблице свойства. Этот вызов метода синхронизирует логический элемент workloop и никогда не должны вызывать непосредственно подклассы.
-
setHardwareAddress (константа IOEthernetAddress *) - setHardwareAddress (константа IOEthernetAddress *)
Наборы или изменения адрес станции используются контроллером Ethernet.
Объявление
C++
virtual IOReturn setHardwareAddress( const IOEthernetAddress *
addrP
);Параметры
addrP
Указатель на IOEthernetAddress, содержащий новый адрес станции.
Возвращаемое значение
Реализация по умолчанию будет всегда возвращать kIOReturnUnsupported. Если переопределено, драйверы должны возвратить kIOReturnSuccess на успехе или ошибочный код возврата иначе.
Обсуждение
Этот метод вызывают в ответ на клиентскую команду для изменения адреса станции, используемого контроллером Ethernet. Реализация этого метода является дополнительной. Этот метод вызывают от workloop контекста.
-
setHardwareAddress (константа, недействительная *, UInt32) - setHardwareAddress (константа, недействительная *, UInt32)
Наборы или изменения адрес станции используются контроллером Ethernet.
Объявление
C++
virtual IOReturn setHardwareAddress( const void *
addr
, UInt32addrBytes
);Параметры
addr
Буфер, содержащий аппаратный адрес, предоставленный клиентом.
addrBytes
Размер буфера адресов, предоставленного клиентом в байтах.
Возвращаемое значение
Возвраты kIOReturnSuccess на успехе или ошибке иначе.
Обсуждение
Реализация по умолчанию абстрактного метода наследовалась от IONetworkController. Этот метод вызовет перегруженную форму IOEthernetController:: setHardwareAddress (), который подклассы, как ожидают, переопределят.
-
Устанавливает список групповых адресов, которые многоадресный фильтр должен использовать для соответствия против адреса назначения входящего кадра.
Объявление
C++
virtual IOReturn setMulticastList( IOEthernetAddress *
addrs
, UInt32count
);Параметры
addrs
Массив Ethernet-адресов. Если параметр количества 0, этот параметр должен быть проигнорирован.
count
Число Ethernet-адресов в списке. Когда список станет пустым, это значение будет нулем.
Возвращаемое значение
Возвраты kIOReturnUnsupported. Драйверы должны возвратить kIOReturnSuccess для указания успеха или ошибочного кода возврата иначе.
Обсуждение
Этот метод устанавливает список групповых адресов, которые многоадресный фильтр должен использовать для соответствия против адреса назначения входящего кадра. Когда соответствие происходит, кадр должен быть принят. Вызванный, когда изменяется членство в группе многоадресной передачи интерфейсного объекта. Драйверы, поддерживающие kIOPacketFilterMulticast, должны переопределить этот метод и обновить аппаратный многоадресный фильтр с помощью списка предоставленных Ethernet-адресов. Совершенная многоадресная фильтрация предпочтена, если поддерживается аппаратными средствами для сокращения количества нежелательных полученных пакетов. Если число групповых адресов в списке превышает то, что аппаратные средства способны к поддержке, или если совершенная фильтрация не поддерживается, то идеально аппаратные средства должны быть запрограммированы для выполнения несовершенной фильтрации через некоторую форму механизма фильтрации хеша. Только как последнее прибежище должен драйвер позволять приему всех многоадресных пакетов удовлетворить этот запрос. Этот метод вызывают от workloop контекста, и только если драйвер сообщает о поддержке kIOPacketFilterMulticast в getPacketFilters ().
-
Включает или отключает многоадресный режим.
Объявление
C++
virtual IOReturn setMulticastMode( bool
active
);Параметры
active
Истина, чтобы позволить многоадресному режиму, ложь отключить его.
Возвращаемое значение
Возвраты kIOReturnUnsupported. Если переопределено, драйверы должны возвратить kIOReturnSuccess на успехе или ошибочный код возврата иначе.
Обсуждение
Вызванный enablePacketFilter () или disablePacketFilter (), когда существует изменение в состоянии активации многоадресного фильтра, идентифицированного kIOPacketFilterMulticast. Этот метод вызывают от workloop контекста.
-
Включает или отключает неразборчивый режим.
Объявление
C++
virtual IOReturn setPromiscuousMode( bool
active
);Параметры
active
Истина, чтобы позволить неразборчивому режиму, ложь отключить его.
Возвращаемое значение
Возвраты kIOReturnUnsupported. Если переопределено, драйверы должны возвратить kIOReturnSuccess на успехе или ошибочный код возврата иначе.
Обсуждение
Вызванный enablePacketFilter () или disablePacketFilter (), когда существует изменение в состоянии активации разнородного фильтра, идентифицированного kIOPacketFilterPromiscuous. Этот метод вызывают от workloop контекста.
-
Закодируйте полученный пакет с результатом тега VLAN, о котором сообщают аппаратные средства.
Объявление
C++
virtual void setVlanTag( mbuf_t
m
, UInt32vlanTag
);Параметры
m
mbuf, содержащий пакет, имевший 802.1q тег VLAN, разделенный аппаратными средствами.
vlanTag
Значение в порядке узла, содержащем 802.1q тег VLAN и приоритет в младшем разряде 16 битов. Привет слово порядка в настоящее время не использовано и должно быть установлено в 0.
Обсуждение
Сетевой контроллер, который может разделить 802.1Q информация о теге VLAN для полученного пакета, должен вызвать этот метод для кодирования результата на пакете перед отказыванием от нее к стекам протоколов.
-
Включает или отключает след на Волшебной Пакетной поддержке.
Объявление
C++
virtual IOReturn setWakeOnMagicPacket( bool
active
);Параметры
active
Истина для включения поддержки системы просыпается на приеме Волшебного Пакета, ложь для отключения его.
Возвращаемое значение
Возвраты kIOReturnUnsupported. Если переопределено, драйверы должны возвратить kIOReturnSuccess на успехе или ошибочный код возврата иначе.
Обсуждение
Вызванный enablePacketFilter () или disablePacketFilter (), когда существует изменение в состоянии активации фильтра Следа на LAN, идентифицированного kIOEthernetWakeOnMagicPacket. Этот метод вызывают от workloop контекста.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved;
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved;