Spec-Zone .ru
спецификации, руководства, описания, API
ADC домой > Ссылочная библиотека> Ссылка> Дарвин> Разное пространство пользователя ссылка API

 


kern_control.h

Включает:
<sys/appleapiopts.h>

Введение

Этот заголовок определяет API для передачи между расширением ядра и процессом за пределами ядра.



Структуры и объединения


ctl_event_data


struct ctl_event_data { 
    u_int32_t ctl_id; /* Kernel Controller ID */
    u_int32_t ctl_unit; 
};  
Поля
ctl_id
ID управления ядром.
ctl_unit
Блок управления ядра.
Обсуждение

Эта структура используется для событий ядра KEV_CTL_SUBCLASS.


ctl_info


struct ctl_info { 
    u_int32_t ctl_id; /* Kernel Controller ID */
    char ctl_name[96  ]; /* Kernel Controller Name (a C string) */
};  
Поля
ctl_id
ID управления ядром, заполненный по возврату.
ctl_name
Имя элемента управления ядра для нахождения.
Обсуждение

Эта структура используется с CTLIOCGINFO ioctl для перевода от имени элемента управления ядра до ID управления.


sockaddr_ctl


struct sockaddr_ctl { 
    u_char sc_len; /* depends on size of bundle ID string */
    u_char sc_family; /* AF_SYSTEM */
    u_int16_t ss_sysaddr; /* AF_SYS_KERNCONTROL */
    u_int32_t sc_id; /* Controller unique identifier */
    u_int32_t sc_unit; /* Developer private unit number */
    u_int32_t sc_reserved[5]; 
};  
Поля
sc_len
Длина структуры.
sc_family
AF_SYSTEM.
ss_sysaddr
AF_SYS_KERNCONTROL.
sc_id
Уникальный идентификатор контроллера.
sc_unit
Контроллер ядра частное число модуля.
sc_reserved
Зарезервированный, должен быть обнулен.
Обсуждение

Структура адреса контроллера используется для установления контакта между пользовательским клиентом и контроллером ядра. sc_id/sc_unit однозначно определяют каждый контроллер. sc_id является уникальным идентификатором, присвоенным контроллеру. Идентификатор может быть присвоен системой в регистрационное время или быть 32-разрядным кодом создателя, полученным из Apple Computer. sc_unit является числом модуля для этого sc_id и конфиденциально используется контроллером ядра для идентификации нескольких экземпляров контроллера.

#defines


CTLIOCGCOUNT


#define CTLIOCGCOUNT _IOR(
    'N', 2, int) /* get number of control structures registered */
Обсуждение

CTLIOCGCOUNT ioctl может использоваться для определения числа зарегистрированных контроллеров ядра.


CTLIOCGINFO


#define CTLIOCGINFO _IOWR(
    'N', 3, struct ctl_info) /* get id from name */
Обсуждение

CTLIOCGINFO ioctl может использоваться для преобразования имени элемента управления ядра в ID управления ядром.


KEV_CTL_DEREGISTERED


#define KEV_CTL_DEREGISTERED 2 /* a controller disappears */
Обсуждение

Код события, указывающий контроллер, был не зарегистрирован. Часть данных будет содержать ctl_event_data.


KEV_CTL_REGISTERED


#define KEV_CTL_REGISTERED 1 /* a new controller appears */
Обсуждение

Код события, указывающий новый контроллер, был зарегистрирован. Часть данных будет содержать ctl_event_data.


KEV_CTL_SUBCLASS


#define KEV_CTL_SUBCLASS 2 
Обсуждение

Подкласс события ядра для ядра управляет событиями.


MAX_KCTL_NAME


#define MAX_KCTL_NAME 96 
Обсуждение

Имена элементов управления ядра больше не должны быть, чем MAX_KCTL_NAME.

Последнее обновление: 20.06.2006