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/kallsyms, 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.6 changes, Changes between 2.4 and 2.6
_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)
__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

B

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

C

carnivore
large, Common Pitfalls
cleanup_module(), Hello, World (part 1): The Simplest Module
code space, Code space
coffee, Major and Minor Numbers
copy_from_user, Read and Write a /proc File
copy_to_user, Read and Write a /proc File
CPU
multiple, Symmetrical Multi-Processing
crontab, Scheduling Tasks
ctrl-c, Blocking Processes
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, Blocking Processes
EINTR, Blocking Processes
ENTRY(system call), System Calls
entry.S, System Calls

F

file, The file structure
filesystem
/proc, The /proc File System
registration, Manage /proc file with standard filesystem
filesystem registration, Manage /proc file with standard filesystem
file_operations, The file_operations Structure
file_operations structure, Manage /proc file with standard filesystem

G

get_user, Read and Write a /proc File

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, Manage /proc file with standard filesystem
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, Blocking Processes
interrupts
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)

K

kernel
versions, Changes between 2.4 and 2.6
kernel versions, Writing Modules for Multiple Kernel Versions
kerneld, How Do Modules Get Into The Kernel?
KERNEL_VERSION, Writing Modules for Multiple Kernel Versions
keyboard, Keyboards on the Intel Architecture
keyboard LEDs
flashing, Flashing keyboard LEDs
kmod, How Do Modules Get Into The Kernel?

L

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
memory segments, Read and Write a /proc File
microkernel, Code space
minor number, Major and Minor Numbers
mknod, Major and Minor Numbers
modem, Talking to Device Files (writes and IOCTLs)
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, Blocking Processes
MODULE_LICENSE(), Hello World (part 4): Licensing and Module Documentation
module_permissions, Manage /proc file with standard filesystem
module_sleep_on, Blocking Processes
MODULE_SUPPORTED_DEVICE(), Hello World (part 4): Licensing and Module Documentation
module_wake_up, Blocking Processes
MOD_DEC_USE_COUNT, Unregistering A Device
MOD_INC_USE_COUNT, Unregistering A Device
MOD_IN_USE, Unregistering A Device
monolithic kernel, Code space
multi-processing, Symmetrical Multi-Processing
multi-tasking, Blocking Processes
multitasking, Blocking Processes

N

namespace pollution, Name Space
Neutrino, Code space
non-blocking, Blocking Processes

O

official ioctl assignment, Talking to Device Files (writes and IOCTLs)
O_NONBLOCK, Blocking Processes

P

permission, Manage /proc file with standard filesystem
pointer
current, Manage /proc file with standard filesystem
printk
replacing, Replacing printk
printk(), Introducing printk()
proc file
kallsyms, Common Pitfalls
processes
blocking, Blocking Processes
killing, Blocking Processes
waking up, Blocking Processes
processing
multi, Symmetrical Multi-Processing
proc_register, The /proc File System
proc_register_dynamic, The /proc File System
putting processes to sleep, Blocking Processes
put_user, Read and Write a /proc File

Q

queue_delayed_work, Scheduling Tasks
queue_work, Interrupt Handlers

R

read
in the kernel, Read and Write a /proc File
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, Blocking Processes
scheduling tasks, Scheduling Tasks
segment
memory, Read and Write a /proc File
seq_file, Manage /proc file with seq_file
serial port, Talking to Device Files (writes and IOCTLs)
shutdown, System Calls
SIGINT, Blocking Processes
signal, Blocking Processes
sleep
putting processes to, Blocking Processes
sleep_on, Blocking Processes
SMP, Symmetrical Multi-Processing
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
sched.c, Scheduling Tasks
sleep.c, Blocking Processes
start.c, Modules Spanning Multiple Files
stop.c, Modules Spanning Multiple Files
syscall.c, System Calls
source files
multiple, Modules Spanning Multiple Files, Building modules for a precompiled kernel
standard libraries, Common Pitfalls
strace, Functions available to modules, System Calls
struct
tty, Replacing printk
struct file_operations, Manage /proc file with standard filesystem
struct inode_operations, Manage /proc file with standard filesystem
symbol table, Name Space
symmetrical multi-processing, Symmetrical Multi-Processing
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, Blocking Processes
try_module_get, System Calls
tty_structure, Replacing printk

W

waking up processes, Blocking Processes
workqueue_struct, Scheduling Tasks
write
in the kernel, Read and Write a /proc File