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

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

Разработчик

Ссылка класса IOKernelDebugger

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

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

IOKernelDebugger

Кусок отладчика ядра.

Это интерфейсы объекта с KDP (протокол отладчика ядра) модуль и отгрузки KDP запрашивает к его цели (провайдер). Цель, определяемая как устройство отладчика, должна реализовать пару функций-обработчиков, которые вызывают, чтобы обработать передачу KDP и получить запросы во время сеанса отладки. Только единственный IOKernelDebugger в системе может быть активным в установленный срок. Активный IOKernelDebugger является тем, которому присоединили объект IOKDP как клиент.

Устройство отладчика обычно является подклассом IOEthernetController. Однако любой IOService может обслужить клиент IOKernelDebugger, реализовать два опрошенных обработчика режима и транспортировать пакеты KDP через канал передачи данных. Однако KDP предполагает, что устройство отладчика является интерфейсом Ethernet, и поэтому это будет всегда отправлять и ожидать получать, кадр Ethernet.

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


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

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


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

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


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

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Метод фабрики, выполняющий выделение и инициализацию объекта IOKernelDebugger.

    Объявление

    C++

    static IOKernelDebugger * debugger( IOService *target, IODebuggerTxHandlertxHandler, IODebuggerRxHandlerrxHandler, IODebuggerLinkStatusHandlerlinkStatusHandler, IODebuggerSetModeHandlersetModeHandler);

    Параметры

    target

    Целевой объект, реализующий обработчики отладчика.

    txHandler

    Обработчик передачи цели. Указатель на функцию 'C'.

    rxHandler

    Цель получает обработчик. Указатель на функцию 'C'.

    linkStatusHandler

    Обработчик состояния канала цели. Указатель на функцию 'C'.

    setModeHandler

    Обработчик режима набора цели. Указатель на функцию 'C'.

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

    Возвращает экземпляр IOKernelDebugger на успехе, 0 иначе.

  • Освобождает экземпляр IOKernelDebugger.

    Объявление

    C++

    virtual void free();

  • Обрабатывает клиент близко.

    Объявление

    C++

    virtual void handleClose( IOService *forClient, IOOptionBitsoptions );

    Параметры

    forClient

    Клиент (IOKDP) запрос завершения.

    options

    Опции передали завершению () вызов. Не используемый.

    Обсуждение

    Этот метод вызывает IOService:: близко () для обработки завершения от клиента с арбитражной сохраненной блокировкой.

  • Запросы, есть ли у клиента открытое на этом объекте.

    Объявление

    C++

    virtual bool handleIsOpen( const IOService *forClient ) const;

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

    Возвращает true, если у указанного клиента или какого-либо клиента, если ни один (0) не указан, в настоящее время есть открытое на этом объекте.

    Обсуждение

    Этот метод вызывает IOService:: isOpen () с арбитражной сохраненной блокировкой.

  • Обрабатывает открытый клиент.

    Объявление

    C++

    virtual bool handleOpen( IOService *forClient, IOOptionBitsoptions, void *arg );

    Параметры

    forClient

    Клиент (IOKDP) запрос открытого.

    options

    Опции передали открытому () вызов. Не используемый.

    arg

    Семья определила параметр, переданный открытому () вызов. Не используемый.

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

    Возвращает true на успехе, ложь иначе.

    Обсуждение

    Этот метод вызывает IOService:: открытый () для обработки открытого от клиента (IOKDP) с арбитражной сохраненной блокировкой.

  • Инициализирует экземпляр IOKernelDebugger.

    Объявление

    C++

    virtual bool init( IOService *target, IODebuggerTxHandlertxHandler, IODebuggerRxHandlerrxHandler, IODebuggerLinkStatusHandlerlinkStatusHandler, IODebuggerSetModeHandlersetModeHandler);

    Параметры

    target

    Целевой объект, реализующий обработчики отладчика.

    txHandler

    Обработчик передачи цели. Указатель на функцию 'C'.

    rxHandler

    Цель получает обработчик. Указатель на функцию 'C'.

    linkStatusHandler

    Обработчик состояния канала цели. Указатель на функцию 'C'.

    setModeHandler

    Обработчик режима набора цели. Указатель на функцию 'C'.

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

    Если экземпляр инициализировал успешно, ложь иначе, возвращает true.

  • Состояние канала KDP диспетчеризирует функцию.

    Объявление

    C++

    static UInt32 kdpLinkStatusDispatcher( void);

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

    Возвратите состояние канала.

    Обсуждение

    Поле запросы состояния канала KDP, затем диспетчеризирует вызов зарегистрированному обработчику соединения.

  • KDP получают функцию отгрузки.

    Объявление

    C++

    static void kdpReceiveDispatcher( void *buffer, UInt32 *length, UInt32timeout);

    Параметры

    buffer

    KDP получают буфер. Буфер, выделенный KDP, имеет пространство для 1 518 байтов. Получить обработчик не должен переполнять этого буфера.

    length

    Объем данных, полученный и помещенный в буфер. Набор к 0, если кадр не был принят во время интервала опроса.

    timeout

    Количество времени для опроса в миллисекундах при ожидании кадра для поступления.

    Обсуждение

    Поле KDP получает запросы, затем диспетчеризирует вызов зарегистрированному обработчику получателя.

  • KDP устанавливают функцию отгрузки режима.

    Объявление

    C++

    static boolean_t kdpSetModeDispatcher( boolean_tactive);

    Параметры

    active

    TRUE при вводе KDP. FALSE при отъезде KDP.

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

    Возвратите TRUE, если ссылка произошла, и данные могут быть отправлены/получены. Иначе, возвратите FALSE.

    Обсуждение

    Поле KDP установило запросы режима, затем диспетчеризирует вызов зарегистрированному обработчику режима набора.

  • KDP передают функцию отгрузки.

    Объявление

    C++

    static void kdpTransmitDispatcher( void *buffer, UInt32length);

    Параметры

    buffer

    Буфер передачи KDP. Этот буфер содержит кадр KDP, который будет отправлен в сети.

    length

    Число байтов в буфере передачи.

    Обсуждение

    Поле запросы передачи KDP, затем диспетчеризирует вызов зарегистрированному обработчику передачи.

  • Берет блокировку отладчика условно.

    Объявление

    C++

    static IODebuggerLockState lock( IOService *target );

    Параметры

    target

    Цель или провайдер объекта IOKernelDebugger.

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

    Возвраты kIODebuggerLockTaken, если блокировка была взята, или 0 иначе.

    Обсуждение

    Этот метод берет блокировку отладчика если объект, данный соответствия цель, зарегистрированная registerHandler ().

  • Обработчик состояния пустой ссылки.

    Объявление

    C++

    static UInt32 nullLinkStatusHandler( IOService *target);

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

    Эта функция будет всегда сообщать о соединении.

    Обсуждение

    Когда объект IOKernelDebugger сдает свое состояние как активный кусок отладчика, эта функция регистрируется как обработчик состояния канала. Пока другой объект IOKernelDebugger не продвинут, эта функция обработает опрошенные запросы состояния канала от KDP.

  • Нуль получает обработчик.

    Объявление

    C++

    static void nullRxHandler( IOService *target, void *buffer, UInt32 *length, UInt32 timeout );

    Обсуждение

    Когда объект IOKernelDebugger сдает свое состояние как активный кусок отладчика, эта функция регистрируется как получить обработчик. Пока другой объект IOKernelDebugger не продвинут, эта функция обработает опрошенный, получают запросы от KDP. Эта функция не делает ничего кроме зарегистрировать предупреждающее сообщение.

  • Обработчик режима пустого множества.

    Объявление

    C++

    static bool nullSetModeHandler( IOService *target, bool active);

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

    Эта функция будет всегда возвращать true.

    Обсуждение

    Когда объект IOKernelDebugger сдает свое состояние как активный кусок отладчика, эта функция регистрируется как обработчик режима набора. Пока другой объект IOKernelDebugger не продвинут, эта функция обработает запросы режима набора от KDP.

  • Нулевой обработчик передачи.

    Объявление

    C++

    static void nullTxHandler( IOService *target, void *buffer, UInt32 length );

    Обсуждение

    Когда объект IOKernelDebugger сдает свое состояние как активный кусок отладчика, эта функция регистрируется как обработчик передачи. Пока другой объект IOKernelDebugger не продвинут, эта функция обработает опрошенные запросы передачи от KDP. Эта функция не делает ничего полезного.

  • Уведомление дескрипторов, что сетевой контроллер действительно изменял состояние электропитания.

    Объявление

    C++

    virtual IOReturn powerStateDidChangeTo( IOPMPowerFlagsflags, unsigned longstateNumber, IOService *policyMaker );

    Параметры

    flags

    Описание возможности контроллера в новом состоянии электропитания.

    stateNumber

    Число состояния в массиве состояния, на который переключается контроллер.

    policyMaker

    Влиятельный политик, управляющий состоянием электропитания контроллера.

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

    Возвращает постоянные 3000000, для указания максимума 3 секунд для подготовки для завершения, и подтверждение, поставленное влиятельному политику.

    Обсуждение

    Если контроллер стал применимым, то контроллер повторно включен, и обработчики контроллера повторно регистрируются.

  • Уведомление дескрипторов, что сетевой контроллер изменит состояние электропитания.

    Объявление

    C++

    virtual IOReturn powerStateWillChangeTo( IOPMPowerFlagsflags, unsigned longstateNumber, IOService *policyMaker );

    Параметры

    flags

    Опишите возможность контроллера в новом состоянии электропитания.

    stateNumber

    Число состояния в массиве состояния, на который переключается контроллер.

    policyMaker

    Влиятельный политик, управляющий состоянием электропитания контроллера.

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

    Возвращает постоянные 3000000, для указания максимума 3 секунд для подготовки для завершения, и подтверждение, поставленное влиятельному политику.

    Обсуждение

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

  • Регистрирует цель и функции-обработчики.

    Объявление

    C++

    static void registerHandler( IOService *target, IODebuggerTxHandler txHandler = 0, IODebuggerRxHandler rxHandler = 0, IODebuggerLinkStatusHandler linkUpHandler = 0, IODebuggerSetModeHandler setModeHandler = 0);

    Параметры

    target

    Целевой объект.

    txHandler

    Функция-обработчик передачи. Если параметром является нуль, нулевой обработчик регистрируется.

    rxHandler

    Получить функция-обработчик. Нулевой обработчик

    linkUpHandler

    Функция-обработчик соединения. Если параметром является нуль, нулевой обработчик регистрируется.

    Обсуждение

    Этот метод вызывает handleOpen () и handleClose (), чтобы зарегистрировать или не зарегистрировать цель и ее функции-обработчики.

  • Сигнализируйте ядро для ввода отладчика, когда безопасный.

    Объявление

    C++

    static void signalDebugger( void);

  • Выпускает блокировку отладчика.

    Объявление

    C++

    static void unlock( IODebuggerLockState state );

    Обсуждение

    Если флаг kIODebuggerLockTaken установлен в параметре, этот метод выпускает блокировку отладчика.

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

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

    Объявление

    C++

    ExpansionData * _reserved;

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

    Объявление

    C++

    ExpansionData * _reserved;