Linux Device Drivers (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Device Drivers (3rd Edition) [Electronic resources] - نسخه متنی

Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید








2.10. Quick Reference


This section summarizes the kernel functions, variables, macros, and
/proc files that we've touched
on in this chapter. It is meant to act as a reference. Each item is
listed after the relevant header file, if any. A similar section
appears at the end of almost every chapter from here on, summarizing
the new symbols introduced in the chapter. Entries in this section
generally appear in the same order in which they were introduced in
the chapter:

insmod

modprobe

rmmod


User-space utilities that load modules into the running kernels and
remove them.


#include <linux/init.h>

module_init(init_function);

module_exit(cleanup_function);


Macros
that designate a module's initialization and cleanup
functions.


_ _init

_ _initdata

_ _exit

_ _exitdata


Markers for functions (_ _init and _
_exit
) and data (_ _initdata and
_ _exitdata) that are only used at module
initialization or cleanup time. Items marked for initialization may
be discarded once initialization completes; the exit items may be
discarded if module unloading has not been configured into the
kernel. These markers work by causing the relevant objects to be
placed in a special ELF section in the executable file.


#include <linux/sched.h>


One of
the most important header files. This file contains definitions of
much of the kernel API used by the driver, including functions for
sleeping and numerous variable declarations.


struct task_struct *current;


The current
process.


current->pid

current->comm


The process ID and command name for the current process.


obj-m


A makefile symbol used by the kernel build system to determine which
modules should be built in the current directory.


/sys/module

/proc/modules


/sys/module
is a sysfs directory hierarchy containing information on
currently-loaded modules. /proc/modules is the
older, single-file version of that information. Entries contain the
module name, the amount of memory each module occupies, and the usage
count. Extra strings are appended to each line to specify flags that
are currently active for the module.


vermagic.o


An object file from the kernel source directory that describes the
environment a module was built for.


#include <linux/module.h>


Required header. It must be included by a
module source.


#include <linux/version.h>


A
header file containing information on the version of the kernel being
built.


LINUX_VERSION_CODE


Integer macro, useful to
#ifdef version dependencies.


EXPORT_SYMBOL (symbol);

EXPORT_SYMBOL_GPL (symbol);


Macro used to export a symbol to the
kernel. The second form exports without using versioning information,
and the third limits the export to GPL-licensed modules.


MODULE_AUTHOR(author);

MODULE_DESCRIPTION(description);

MODULE_VERSION(version_string);

MODULE_DEVICE_TABLE(table_info);

MODULE_ALIAS(alternate_name);


Place documentation on the module in the
object file.


module_init(init_function);

module_exit(exit_function);


Macros that declare a module's initialization and
cleanup functions.


#include <linux/moduleparam.h>

module_param(variable, type, perm);


Macro
that creates a module parameter that can be adjusted by the user when
the module is loaded (or at boot time for built-in code). The type
can be one of bool, charp,
int, invbool,
long, short,
ushort, uint,
ulong, or intarray.


#include <linux/kernel.h>

int printk(const char * fmt, ...);


The analogue of printf for kernel code.




    / 202