IOEthernetInterface
Объект интерфейса Ethernet.
Драйвер контроллера Ethernet, который является подклассом IOEthernetController, инстанцирует объекта этого класса, когда драйвер вызовет attachInterface () метод. Этот интерфейсный объект будет тогда продавать интерфейс Ethernet к DLIL и управлять соединением между драйвером контроллера и верхними сетевыми уровнями. Драйверы должны будут редко разделять IOEthernetInterface на подклассы.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Обрабатывает уведомление, что сетевой контроллер, обслуживающий этот интерфейсный объект, перешел к новому состоянию электропитания.
Объявление
C++
virtual IOReturn controllerDidChangePowerState( IONetworkController *
controller
, IOPMPowerFlagsflags
, UInt32stateNumber
, IOService *policyMaker
);Параметры
controller
Объект сетевого контроллера.
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключился контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Всегда возвраты kIOReturnSuccess.
Обсуждение
Если контроллер действительно переходил к применимому состоянию, и он был ранее отключен вследствие предыдущего изменения питания, то он повторно включен.
-
Уведомление, что интерфейс открыл сетевой контроллер.
Объявление
C++
virtual bool controllerDidOpen( IONetworkController *
controller
);Параметры
controller
Открытый объект контроллера.
Возвращаемое значение
Возвращает true на успехе, ложь иначе. Возвращение false заставит контроллер быть закрытым, и любой незаконченный клиент открывается, чтобы быть отклоненным.
Обсуждение
Этот метод вызовет IONetworkInterface после того, как сетевой контроллер примет открытое от этого интерфейсного объекта. IOEthernetInterface сначала вызовет реализацию в своем суперклассе, затем проверит контроллер через свойства, опубликованные в реестре. Этот метод вызывают с арбитражной сохраненной блокировкой.
-
Обрабатывает уведомление, что сетевой контроллер, обслуживающий этот интерфейсный объект, собирается переход к новому состоянию электропитания.
Объявление
C++
virtual IOReturn controllerWillChangePowerState( IONetworkController *
controller
, IOPMPowerFlagsflags
, UInt32stateNumber
, IOService *policyMaker
);Параметры
controller
Объект сетевого контроллера.
flags
Флаги, описывающие возможность контроллера в новом состоянии электропитания.
stateNumber
Индекс к состоянию в массиве состояния электропитания сетевого контроллера, на который переключается контроллер.
policyMaker
Ссылка на влиятельного политика сетевого контроллера, и является также инициатором этого уведомления.
Возвращаемое значение
Всегда возвраты kIOReturnSuccess.
Обсуждение
Если контроллер собирается переход к неприменимому состоянию, и это в настоящее время включается, то запрещение () метод на контроллере вызывают.
-
Уведомление, что интерфейс закроет сетевой контроллер.
Объявление
C++
virtual void controllerWillClose( IONetworkController *
controller
);Параметры
controller
Контроллер, собирающийся быть закрытым.
Обсуждение
Этот метод просто вызовет супер для распространения вызова метода. Этот метод вызывают с арбитражной сохраненной блокировкой.
-
Освобождает экземпляр IOEthernetInterface.
Объявление
C++
virtual void free();
Обсуждение
Память, выделенная для arpcom структуры, выпускается, сопровождается вызовом к супер:: свободный ().
-
Возвращает строку, содержащую префикс для использования при создании имени BSD для этого интерфейса.
Объявление
C++
virtual const char * getNamePrefix() const;
Возвращаемое значение
Возвращает указатель на постоянную струну до «en». Поэтому интерфейсы Ethernet будут зарегистрированы в BSD как en0, en1, и т.д.
Обсуждение
Имя BSD для каждого интерфейсного объекта создается путем конкатенации строки, возвращенной этим методом с уникальным числом модуля, присвоенным IONetworkStack.
-
Инициализирует экземпляр IOEthernetInterface.
Объявление
C++
virtual bool init( IONetworkController *
controller
);Параметры
controller
Объект сетевого контроллера, который обслужит интерфейсный инициализируемый объект.
Возвращаемое значение
Возвращает true на успехе, ложь иначе.
Обсуждение
Переменные экземпляра инициализируются, и выделяется arpcom структура.
-
Обрабатывает ioctl команду, отправленную в интерфейс Ethernet.
Объявление
C++
virtual SInt32 performCommand( IONetworkController *
controller
, unsigned longcmd
, void *arg0
, void *arg1
);Параметры
controller
Объект контроллера.
cmd
ioctl код команды.
arg0
Аргумент команды 0. Обычно указатель на ifnet структуру связывался с интерфейсом.
arg1
Аргумент команды 1.
Возвращаемое значение
Возвращает возвращаемое значение BSD, определенное в bsd/sys/errno.h.
Обсуждение
Этот метод дескрипторы снабжает сокетом ioctl команды, отправленные в интерфейс Ethernet от DLIL. Команды, распознанные и обработанные этим методом, являются SIOCSIFADDR, SIOCSIFFLAGS, SIOCADDMULTI и SIOCDELMULTI. Другие команды передаются суперклассу.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved;
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved;