📄 doc-index.html
字号:
>MODULE_LICENSE(),
<A
HREF="x317.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
</DT
><DT
>MODULE_PARM,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>module_permissions,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>module_sleep_on,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>MODULE_SUPPORTED_DEVICE(),
<A
HREF="x317.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
</DT
><DT
>module_wake_up,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>MOD_DEC_USE_COUNT,
<A
HREF="c569.htm#AEN653"
>Unregistering A Device</A
>
</DT
><DT
>MOD_INC_USE_COUNT,
<A
HREF="c569.htm#AEN653"
>Unregistering A Device</A
>,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>MOD_IN_USE,
<A
HREF="c569.htm#AEN653"
>Unregistering A Device</A
>
</DT
><DT
>monolithic kernel,
<A
HREF="c427.htm#AEN502"
>Code space</A
>
</DT
><DT
>multi-processing,
<A
HREF="c1289.htm#AEN1291"
>Symmetrical Multi-Processing</A
>
</DT
><DT
>multi-tasking,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>multitasking,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1880"
></A
>N</H2
><DL
><DT
>namespace pollution,
<A
HREF="c427.htm#AEN485"
>Name Space</A
>
</DT
><DT
>Neutrino,
<A
HREF="c427.htm#AEN502"
>Code space</A
>
</DT
><DT
>non-blocking,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1891"
></A
>O</H2
><DL
><DT
>official ioctl assignment,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>O_NONBLOCK,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1899"
></A
>P</H2
><DL
><DT
>permission,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>pointer
</DT
><DD
><DL
><DT
>current,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>printk
</DT
><DD
><DL
><DT
>replacing,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>printk(),
<A
HREF="c143.htm#INTRODUCINGPRINTK"
>Introducing printk()</A
>
</DT
><DT
>proc
</DT
><DD
><DL
><DT
>using for input,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>proc file
</DT
><DD
><DL
><DT
>ksyms,
<A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>processes
</DT
><DD
><DL
><DT
>blocking,
<A
HREF="c1006.htm#AEN1008"
>Blocking Processes</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>killing,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>waking up,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>processing
</DT
><DD
><DL
><DT
>multi,
<A
HREF="c1289.htm#AEN1291"
>Symmetrical Multi-Processing</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>proc_dir_entry,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>proc_register,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>proc_register_dynamic,
<A
HREF="c714.htm#AEN716"
>The /proc File System</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>putting processes to sleep,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>put_user,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1953"
></A
>Q</H2
><DL
><DT
>queue_task,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>queue_task_irq,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1964"
></A
>R</H2
><DL
><DT
>read,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DD
><DL
><DT
>in the kernel,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>reference count,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>refund policy,
<A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
</DT
><DT
>register_chrdev,
<A
HREF="c569.htm#AEN623"
>Registering A Device</A
>
</DT
><DT
>request_irq(),
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>rmmod,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DD
><DL
><DT
>preventing,
<A
HREF="c569.htm#AEN653"
>Unregistering A Device</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN1989"
></A
>S</H2
><DL
><DT
>SA_INTERRUPT,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>SA_SHIRQ,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>scheduler,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>scheduling tasks,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>segment
</DT
><DD
><DL
><DT
>memory,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>serial port,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DT
>shutdown,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>SIGINT,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>signal,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>signals,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>sleep
</DT
><DD
><DL
><DT
>putting processes to,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>sleep_on,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>SMP,
<A
HREF="c1289.htm#AEN1291"
>Symmetrical Multi-Processing</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>source file
</DT
><DD
><DL
><DT
>chardev.c,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>chardev.h,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>hello-1.c,
<A
HREF="c143.htm#AEN145"
>Hello, World (part 1): The Simplest Module</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>hello-2.c,
<A
HREF="x253.htm"
>Hello World (part 2)</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>hello-3.c,
<A
HREF="x277.htm"
>Hello World (part 3): The __init and __exit Macros</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>hello-4.c,
<A
HREF="x317.htm"
>Hello World (part 4): Licensing and Module Documentation</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>hello-5.c,
<A
HREF="x350.htm"
>Passing Command Line Arguments to a Module</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>intrpt.c,
<A
HREF="c1204.htm#KEYBOARD"
>Keyboards on the Intel Architecture</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>ioctl.c,
<A
HREF="c846.htm#AEN848"
>Talking to Device Files (writes and IOCTLs)}</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>print_string.c,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>procfs.c,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>sched.c,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>sleep.c,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>start.c,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
><DD
><DL
></DL
></DD
><DT
>stop.c,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>source files
</DT
><DD
><DL
><DT
>multiple,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>ssize_t,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>standard libraries,
<A
HREF="c1315.htm#AEN1317"
>Common Pitfalls</A
>
</DT
><DT
>strace,
<A
HREF="c427.htm#AEN443"
>Functions available to modules</A
>,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>struct
</DT
><DD
><DL
><DT
>tty,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>struct file_operations,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>struct inode_operations,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DT
>structure
</DT
><DD
><DL
><DT
>file_operations,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>symbol table,
<A
HREF="c427.htm#AEN485"
>Name Space</A
>
</DT
><DT
>symmetrical multi-processing,
<A
HREF="c1289.htm#AEN1291"
>Symmetrical Multi-Processing</A
>,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DT
>sync,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>system call,
<A
HREF="c427.htm#AEN443"
>Functions available to modules</A
>,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DD
><DL
><DT
>open,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>system calls,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>sys_call_table,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
><DT
>sys_open,
<A
HREF="c929.htm#AEN931"
>System Calls</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2119"
></A
>T</H2
><DL
><DT
>task,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DD
><DL
><DT
>current,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>tasks
</DT
><DD
><DL
><DT
>scheduling,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
><DT
>TASK_INTERRUPTIBLE,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>tq_immediate,
<A
HREF="c1204.htm#AEN1213"
>Interrupt Handlers</A
>
</DT
><DT
>tq_struct,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>tq_timer,
<A
HREF="c1143.htm#AEN1145"
>Scheduling Tasks</A
>
</DT
><DT
>tty_structure,
<A
HREF="c1109.htm#AEN1111"
>Replacing printk</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2145"
></A
>V</H2
><DL
><DT
>version.h,
<A
HREF="x377.htm"
>Modules Spanning Multiple Files</A
>
</DT
></DL
></DIV
><DIV
CLASS="INDEXDIV"
><H2
CLASS="INDEXDIV"
><A
NAME="AEN2150"
></A
>W</H2
><DL
><DT
>waking up processes,
<A
HREF="c1006.htm#AEN1015"
>Replacing printk</A
>
</DT
><DT
>write,
<A
HREF="a1352.htm#AEN1361"
>Changes between 2.0 and 2.2</A
>
</DT
><DD
><DL
><DT
>in the kernel,
<A
HREF="c760.htm#AEN762"
>Using /proc For Input</A
>
</DT
><DD
><DL
></DL
></DD
></DL
></DD
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x1483.html"
ACCESSKEY="P"
>返回</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>返回首页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>为什么这样写?</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
> </TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
> </TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -