The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Краткая справка

Краткая справка

Предыдущая  Содержание  Следующая V*D*V

В этой главе было введено множество функций, вот краткая сумма их всех.

Kobject-ы

#include <linux/kobject.h>

Подключает файл, содержащий определения kobjects, связанные с ними структуры и функции.

void kobject_init(struct kobject *kobj);

int kobject_set_name(struct kobject *kobj, const char *format, ...);

Функции для инициализации kobject-а.

struct kobject *kobject_get(struct kobject *kobj);

void kobject_put(struct kobject *kobj);

Функции, которые управляют счётчиком ссылок для kobject-ов.

struct kobj_type;

struct kobj_type *get_ktype(struct kobject *kobj);

Представляет тип структуры, внутрь которой встроен kobject. Используйте get_ktype для получения kobj_type, связанного с данным kobject-ом.

int kobject_add(struct kobject *kobj);

extern int kobject_register(struct kobject *kobj);

void kobject_del(struct kobject *kobj);

void kobject_unregister(struct kobject *kobj);

kobject_add добавляет kobject в систему, обрабатывая членство в kset, представление в sysfs и генерацию события горячего подключения. kobject_register является удобной функцией, которая сочетает в себе kobject_init и kobject_add. Для удаления kobject-а используйте kobject_del  или kobject_unregister, которая объединяет kobject_del и kobject_put.

void kset_init(struct kset *kset);

int kset_add(struct kset *kset);

int kset_register(struct kset *kset);

void kset_unregister(struct kset *kset);

Функции инициализации и регистрации для kset-ов.

decl_subsys(name, type, hotplug_ops);

Макрос, который упрощает декларацию подсистем.

void subsystem_init(struct subsystem *subsys);

int subsystem_register(struct subsystem *subsys);

void subsystem_unregister(struct subsystem *subsys);

struct subsystem *subsys_get(struct subsystem *subsys)

void subsys_put(struct subsystem *subsys);

Операции над подсистемами.

Операции в sysfs

#include <linux/sysfs.h>

Подключает файл, содержащий декларации для sysfs.

int sysfs_create_file(struct kobject *kobj, struct attribute *attr);

int sysfs_remove_file(struct kobject *kobj, struct attribute *attr);

int sysfs_create_bin_file(struct kobject *kobj, struct bin_attribute *attr);

int sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);

int sysfs_create_link(struct kobject *kobj, struct kobject *target, char *name);

void sysfs_remove_link(struct kobject *kobj, char *name);

Функции для создания и удаления атрибутных файлов, связанных с kobject-ом.

Шины, устройства, и драйверы

int bus_register(struct bus_type *bus);

void bus_unregister(struct bus_type *bus);

Функции, которые выполняют регистрации и отмену регистрации шин в модели устройства.

int bus_for_each_dev(struct bus_type *bus, struct device *start, void *data, int (*fn)(struct device *, void *));

int bus_for_each_drv(struct bus_type *bus, struct device_driver *start, void *data,

                                         int (*fn)(struct device_driver *, void *));

Функции, которые выполняют итерацию по каждому из устройств и драйверов, соответственно, которые подключены к данной шине.

BUS_ATTR(name, mode, show, store);

int bus_create_file(struct bus_type *bus, struct bus_attribute *attr);

void bus_remove_file(struct bus_type *bus, struct bus_attribute *attr);

Макрос BUS_ATTR может быть использован для объявления структуры bus_attribute, которая затем может быть добавлена и удалена двумя указанными выше функциями.

int device_register(struct device *dev);

void device_unregister(struct device *dev);

Функции, которые обрабатывают регистрацию устройства.

DEVICE_ATTR(name, mode, show, store);

int device_create_file(struct device *device, struct device_attribute *entry);

void device_remove_file(struct device *dev, struct device_attribute *attr);

Макросы и функции, которые имею дело с атрибутами устройств.

int driver_register(struct device_driver *drv);

void driver_unregister(struct device_driver *drv);

Функции, которые регистрируют и отменяют регистрацию драйвера устройства.

DRIVER_ATTR(name, mode, show, store);

int driver_create_file(struct device_driver *drv, struct driver_attribute *attr);

void driver_remove_file(struct device_driver *drv, struct driver_attribute *attr);

Макросы и функции, которые управляют атрибутами драйвера.

Классы

struct class_simple *class_simple_create(struct module *owner, char *name);

void class_simple_destroy(struct class_simple *cs);

struct class_device *class_simple_device_add(struct class_simple *cs,

                      dev_t devnum, struct device *device, const char *fmt, ...);

void class_simple_device_remove(dev_t dev);

int class_simple_set_hotplug(struct class_simple *cs,

                      int (*hotplug)(struct class_device *dev, char **envp,

                      int num_envp, char *buffer, int buffer_size));

Функции, реализующие интерфейс class_simple; они управляют простыми записями классов, содержащими атрибут dev и небольшое число других. Начиная с версии 2.6.13 данный интерфейс в ядрах больше не присутствует.

int class_register(struct class *cls);

void class_unregister(struct class *cls);

Регистрация и отмена регистрации классов.

CLASS_ATTR(name, mode, show, store);

int class_create_file(struct class *cls, const struct class_attribute *attr);

void class_remove_file(struct class *cls, const struct class_attribute *attr);

Обычные макросы и функции для работы с атрибутами классов.

int class_device_register(struct class_device *cd);

void class_device_unregister(struct class_device *cd);

int class_device_rename(struct class_device *cd, char *new_name);

CLASS_DEVICE_ATTR(name, mode, show, store);

int class_device_create_file(struct class_device *cls, const struct class_device_attribute *attr);

void class_device_remove_file(struct class_device *cls, const struct class_device_attribute *attr);

Функции и макросы, которые реализуют интерфейс класса устройств.

int class_interface_register(struct class_interface *intf);

void class_interface_unregister(struct class_interface *intf);

Функции, которые добавляют к классу интерфейс (или удаляют его).

Встроенное программное обспечение

#include <linux/firmware.h>

int request_firmware(const struct firmware **fw, char *name, struct device *device);

int request_firmware_nowait(struct module *module, char *name,

                      struct device *device, void *context,

                      void (*cont)(const struct firmware *fw, void *context));

void release_firmware(struct firmware *fw);

Функции, которые реализуют интерфейс ядра для загрузки встроенного программного обеспечения (прошивки).

Предыдущая  Содержание  Следующая