Chinaunix首页 | 论坛 | 博客
  • 博客访问: 852355
  • 博文数量: 189
  • 博客积分: 4310
  • 博客等级: 上校
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-27 08:56
文章分类

全部博文(189)

文章存档

2015年(1)

2013年(2)

2012年(1)

2011年(39)

2010年(98)

2009年(48)

分类: LINUX

2009-12-22 10:09:27

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
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
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 currentlyloaded 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
Required header. It must be included by a module source
#include
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
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
int printk(const char * fmt, ...);
 The analogue of printf for kernel code.
阅读(911) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~