Chinaunix首页 | 论坛 | 博客
  • 博客访问: 462795
  • 博文数量: 179
  • 博客积分: 3236
  • 博客等级: 中校
  • 技术积分: 1860
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-25 19:13
文章分类

全部博文(179)

文章存档

2011年(34)

2008年(8)

2007年(27)

2006年(110)

分类: LINUX

2006-09-21 13:23:30

Linux Device Driver Reference
 
_ _KERNEL_ _
 
MODULE
 
 Preprocessor symbols,which must both be defined to compile modularized kernel code
 
_ _SMP_ _
 
 A preprocessor symbol that must be defined when compiling modules for symmetric multiprocessor systems.
 
int init_module(void);
 
void cleanup_module(void);
 
Module entry points,which must be defined in the module object file.
 
#include
module_init(init_function);
module_exit(cleanup_function);
 
 The moderm mechanism for marking a modules's initialization and cleanup functions.
 
#include
 Requied header.It must be included by a module source.
 
MOD_INC_USE_COUNT;
MOD_DEC_USE_COUNT;
MOD_IN_USE;
 Macros that act on the usage count.
 
/proc/modules
 The list of currently loaded modules.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.
 
EXPORT_SYMTAB;
 Preprocessor macro,required for modules that export symbols.
 
EXPORT_NO_SYMBOLS;
 Macro used to specify that the module exports no symbols to the kernel.
 
EXPORT_SYMBOL(symbol);
EXPORT_SYMBOL_NOVERS(symbol);
 Macro used to export a symbol to the kernel.The second form exports without using versioning information.
 
int register_symtab(struct symbol_table *);
 Function used to specify the set of public symbols in the module.Used in 2.0 kernels only.
 
#include
X(symbol),
#include
 Headers and preprocessor macro used to declare a symbol table in the 2.0 kernel.
 
MODULE_PARM(variable,type);
MODULE_PARM_DESC9variable,description);
 Macros that make  a module variable available as a parameter that may be adjusted by the user at module load time.
 
MODULE_AUTHOR(author);
MODULE_DESCRIPTION(description);
MODULE_SUPPORTED_DEVICE(device);
 Place documentation on the module in the object file.
 
#include
 Requied headr.It is include by ,unless _ _NO_VERSION_ _ is defined.
 
LINUX_VERSION_CODE
 Integer macro,useful to #ifdef version dependencies.
 
char kernel_version[]= UTS_RELEASE;
 Required variable in every module.defines it.unless _ _NO_VERSION_ _is defined.
 
_ _NO_VERSION_ _
 Preprocessor symbol.Prevents declaration of kernel_version in .
 
#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->com
 The process ID and command name for the current process.
 
#include
int printk(const char * fmt, ...);
 The analogue of printf for kernel code.
 
#include
void *kmalloc(unsigned int size,int priority);
void kfree(void *obj);
 Analogue of malloc and free for kernel code.Use the value of GFP_KERNEL as the priority.
 
#include
int check_region(unsigned long from,unsigned long extent);
struct resource *request_region_unsigned long from,unsigned long extent,const char *name);
void release_region(unsigned long from,unsigned long extent);
 Functions used to register and release I/O ports.
 
int check_mem_region(unsigned long start,unsigned long extent);
struct resource *request_mem_region(unsigned long start,unsigned long extent,const char *name);
void release_mem_region(unsigned long start,unsigned long extent);
 Macro used to register and release I/O memory regions.
 
/proc/ksyms
 The public kernel symbol table.
 
/proc/ioports
 The list of ports used by installed devices.
 
/proc/iomem
 The list of allocated memory regions.
 
 


阅读(1041) | 评论(0) | 转发(0) |
0

上一篇:ARM与uClinux

下一篇:Device File System

给主人留下些什么吧!~~