Index

Symbols

/etc/conf.modules, How Do Modules Get Into The Kernel?
/etc/modules.conf, How Do Modules Get Into The Kernel?
/proc filesystem, The /proc File System
/proc/interrupts, Interrupt Handlers
/proc/ksyms, Functions available to modules, Name Space, Common Pitfalls
/proc/meminfo, The /proc File System
/proc/modules, How Do Modules Get Into The Kernel?, The /proc File System
2.2 changes, Changes between 2.0 and 2.2
_IO, Talking to Device Files (writes and IOCTLs)}
_IOR, Talking to Device Files (writes and IOCTLs)}
_IOW, Talking to Device Files (writes and IOCTLs)}
_IOWR, Talking to Device Files (writes and IOCTLs)}
_NSIG_WORDS, Changes between 2.0 and 2.2
__exit, Hello World (part 3): The __init and __exit Macros
__init, Hello World (part 3): The __init and __exit Macros
__initdata, Hello World (part 3): The __init and __exit Macros
__initfunction(), Hello World (part 3): The __init and __exit Macros
__NO_VERSION__, Modules Spanning Multiple Files

A

asm
uaccess.h, Changes between 2.0 and 2.2
asm/uaccess.h, Changes between 2.0 and 2.2

B

BH_IMMEDIATE, Interrupt Handlers
blocking processes, Blocking Processes
blocking, how to avoid, Replacing printk
bottom half, Interrupt Handlers
busy, Replacing printk

C

carnivore
large, Common Pitfalls
cleanup_module(), Hello, World (part 1): The Simplest Module
close, Changes between 2.0 and 2.2
code space, Code space
coffee, Major and Minor Numbers
CPU
multiple, Symmetrical Multi-Processing
crontab, Scheduling Tasks
ctrl-c, Replacing printk
current task, Replacing printk

D

DEFAULT_MESSAGE_LOGLEVEL, Introducing printk()
defining ioctls, Talking to Device Files (writes and IOCTLs)}
device file
character, Character Device Drivers
device files
input to, Talking to Device Files (writes and IOCTLs)}
write to, Talking to Device Files (writes and IOCTLs)}

E

EAGAIN, Replacing printk
EINTR, Replacing printk
elf_i386, Modules Spanning Multiple Files
ENTRY(system call), System Calls
entry.S, System Calls

F

file, The file structure
filesystem
/proc, The /proc File System
registration, Using /proc For Input
filesystem registration, Using /proc For Input
file_operations, The file_operations Structure
file_operations structure, Using /proc For Input
flush, Changes between 2.0 and 2.2

G

get_user, Using /proc For Input, Changes between 2.0 and 2.2

H

handlers
interrupt, Interrupt Handlers
housekeeping, Scheduling Tasks
Hurd, Code space

I

inb, Keyboards on the Intel Architecture
init_module(), Hello, World (part 1): The Simplest Module
inode, The file structure, The /proc File System
inode_operations structure, Using /proc For Input
input
using /proc for, Using /proc For Input
insmod, Compiling Kernel Modules, System Calls
Intel architecture
keyboard, Keyboards on the Intel Architecture
interrupt 0x80, System Calls
interrupt handlers, Interrupt Handlers
interruptible_sleep_on, Replacing printk
interrupts, Changes between 2.0 and 2.2
disabling, Common Pitfalls
ioctl, Talking to Device Files (writes and IOCTLs)}
defining, Talking to Device Files (writes and IOCTLs)}
official assignment, Talking to Device Files (writes and IOCTLs)}
irqs, Changes between 2.0 and 2.2

K

kernel
versions, Changes between 2.0 and 2.2
kernel versions, Writing Modules for Multiple Kernel Versions
kerneld, How Do Modules Get Into The Kernel?
kernel\_version, Modules Spanning Multiple Files
KERNEL_VERSION, Writing Modules for Multiple Kernel Versions
keyboard, Keyboards on the Intel Architecture
kmod, How Do Modules Get Into The Kernel?

L

ld, Modules Spanning Multiple Files
libraries
standard, Common Pitfalls
library function, Functions available to modules
LINUX_VERSION_CODE, Writing Modules for Multiple Kernel Versions

M

major number, Major and Minor Numbers
dynamic allocation, Registering A Device
mark_bh, Interrupt Handlers
memory segments, Using /proc For Input
microkernel, Code space
minor number, Major and Minor Numbers
mknod, Major and Minor Numbers
modem, Talking to Device Files (writes and IOCTLs)}
module
parameters, Changes between 2.0 and 2.2
module parameters, Changes between 2.0 and 2.2
module.h, Modules Spanning Multiple Files
modules.conf
alias, How Do Modules Get Into The Kernel?
comment, How Do Modules Get Into The Kernel?
keep, How Do Modules Get Into The Kernel?
options, How Do Modules Get Into The Kernel?
path, How Do Modules Get Into The Kernel?
MODULE_AUTHOR(), Hello World (part 4): Licensing and Module Documentation
module_cleanup, Scheduling Tasks
MODULE_DESCRIPTION(), Hello World (part 4): Licensing and Module Documentation
module_exit, Hello World (part 2)
module_init, Hello World (part 2)
module_interruptible_sleep_on, Replacing printk
MODULE_LICENSE(), Hello World (part 4): Licensing and Module Documentation
MODULE_PARM, Changes between 2.0 and 2.2
module_permissions, Using /proc For Input
module_sleep_on, Replacing printk, Scheduling Tasks
MODULE_SUPPORTED_DEVICE(), Hello World (part 4): Licensing and Module Documentation
module_wake_up, Replacing printk
MOD_DEC_USE_COUNT, Unregistering A Device
MOD_INC_USE_COUNT, Unregistering A Device, System Calls
MOD_IN_USE, Unregistering A Device
monolithic kernel, Code space
multi-processing, Symmetrical Multi-Processing
multi-tasking, Replacing printk
multitasking, Replacing printk

N

namespace pollution, Name Space
Neutrino, Code space
non-blocking, Replacing printk

O

official ioctl assignment, Talking to Device Files (writes and IOCTLs)}
O_NONBLOCK, Replacing printk

P

permission, Using /proc For Input
pointer
current, Using /proc For Input
printk
replacing, Replacing printk
printk(), Introducing printk()
proc
using for input, Using /proc For Input
proc file
ksyms, Common Pitfalls
processes
blocking, Blocking Processes
killing, Replacing printk
waking up, Replacing printk
processing
multi, Symmetrical Multi-Processing
proc_dir_entry, Using /proc For Input
proc_register, The /proc File System, Changes between 2.0 and 2.2
proc_register_dynamic, The /proc File System, Changes between 2.0 and 2.2
putting processes to sleep, Replacing printk
put_user, Using /proc For Input, Changes between 2.0 and 2.2

Q

queue_task, Scheduling Tasks, Interrupt Handlers, Changes between 2.0 and 2.2
queue_task_irq, Interrupt Handlers, Changes between 2.0 and 2.2

R

read, Changes between 2.0 and 2.2
in the kernel, Using /proc For Input
reference count, Scheduling Tasks
refund policy, Common Pitfalls
register_chrdev, Registering A Device
request_irq(), Interrupt Handlers
rmmod, System Calls, Scheduling Tasks
preventing, Unregistering A Device

S

SA_INTERRUPT, Interrupt Handlers
SA_SHIRQ, Interrupt Handlers
scheduler, Replacing printk
scheduling tasks, Scheduling Tasks
segment
memory, Using /proc For Input
serial port, Talking to Device Files (writes and IOCTLs)}
shutdown, System Calls
SIGINT, Replacing printk
signal, Replacing printk
signals, Changes between 2.0 and 2.2
sleep
putting processes to, Replacing printk
sleep_on, Replacing printk, Scheduling Tasks
SMP, Symmetrical Multi-Processing, Changes between 2.0 and 2.2
source file
chardev.c, Talking to Device Files (writes and IOCTLs)}
chardev.h, Talking to Device Files (writes and IOCTLs)}
hello-1.c, Hello, World (part 1): The Simplest Module
hello-2.c, Hello World (part 2)
hello-3.c, Hello World (part 3): The __init and __exit Macros
hello-4.c, Hello World (part 4): Licensing and Module Documentation
hello-5.c, Passing Command Line Arguments to a Module
intrpt.c, Keyboards on the Intel Architecture
ioctl.c, Talking to Device Files (writes and IOCTLs)}
print_string.c, Replacing printk
procfs.c, System Calls
sched.c, Scheduling Tasks
sleep.c, Replacing printk
start.c, Modules Spanning Multiple Files
stop.c, Modules Spanning Multiple Files
source files
multiple, Modules Spanning Multiple Files
ssize_t, Changes between 2.0 and 2.2
standard libraries, Common Pitfalls
strace, Functions available to modules, System Calls
struct
tty, Replacing printk
struct file_operations, Using /proc For Input
struct inode_operations, Using /proc For Input
structure
file_operations, Changes between 2.0 and 2.2
symbol table, Name Space
symmetrical multi-processing, Symmetrical Multi-Processing, Changes between 2.0 and 2.2
sync, System Calls
system call, Functions available to modules, System Calls
open, System Calls
system calls, System Calls
sys_call_table, System Calls
sys_open, System Calls

T

task, Scheduling Tasks
current, Replacing printk
tasks
scheduling, Scheduling Tasks
TASK_INTERRUPTIBLE, Replacing printk
tq_immediate, Interrupt Handlers
tq_struct, Scheduling Tasks
tq_timer, Scheduling Tasks
tty_structure, Replacing printk

V

version.h, Modules Spanning Multiple Files

W

waking up processes, Replacing printk
write, Changes between 2.0 and 2.2
in the kernel, Using /proc For Input