Previous Section  < Day Day Up >  Next Section

14.9. Quick Reference

Many functions have been introduced in this chapter; here is a quick summary of them all.

14.9.1. Kobjects


#include <linux/kobject.h>

The include file containing definitions for kobjects, related structures, and functions.


void kobject_init(struct kobject *kobj);


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

Functions for kobject initialization.


struct kobject *kobject_get(struct kobject *kobj);


void kobject_put(struct kobject *kobj);

Functions that manage reference counts for kobjects.


struct kobj_type;


struct kobj_type *get_ktype(struct kobject *kobj);

Represents the type of structure within which a kobject is embedded. Use get_ktype to get the kobj_type associated with a given 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 adds a kobject to the system, handling kset membership, sysfs representation, and hotplug event generation. kobject_register is a convenience function that combines kobject_init and kobject_add. Use kobject_del to remove a kobject or kobject_unregister, which combines kobject_del and 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);

Initialization and registration functions for ksets.


decl_subsys(name, type, hotplug_ops);

A macro that makes it easier to declare subsystems.


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);

Operations on subsystems.

14.9.2. Sysfs Operations


#include <linux/sysfs.h>

The include file containing declarations for 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);

Functions for creating and removing attribute files associated with a kobject.

14.9.3. Buses, Devices, and Drivers


int bus_register(struct bus_type *bus);


void bus_unregister(struct bus_type *bus);

Functions that perform registration and unregistration of buses in the device model.


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 *));

Functions that iterate over each of the devices and drivers, respectively, that are attached to the given bus.


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);

The BUS_ATTR macro may be used to declare a bus_attribute structure, which may then be added and removed with the above two functions.


int device_register(struct device *dev);


void device_unregister(struct device *dev);

Functions that handle device registration.


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);

Macros and functions that deal with device attributes.


int driver_register(struct device_driver *drv);


void driver_unregister(struct device_driver *drv);

Functions that register and unregister a device driver.


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);

Macros and functions that manage driver attributes.

14.9.4. Classes


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));

Functions that implement the class_simple interface; they manage simple class entries containing a dev attribute and little else.


int class_register(struct class *cls);


void class_unregister(struct class *cls);

Registration and unregistration of classes.


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);

The usual macros and functions for dealing with class attributes.


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);

Functions and macros that implement the class device interface.


int class_interface_register(struct class_interface *intf);


void class_interface_unregister(struct class_interface *intf);

Functions that add an interface to a class (or remove it).

14.9.5. Firmware


#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);

Functions that implement the kernel firmware-loading interface.

    Previous Section  < Day Day Up >  Next Section