views:

106

answers:

2

Is there a list somewhere of all the major generic data structures used in the Linux Kernel and as a side bonus major places they're used?

What I mean by "generic data structures" is things like doubly linked lists, hash lists, timer wheels, etc.

Also, which ones are considered part of the internally provided api available to modules?

Edit

In the linux/lib directory I see some promising leads...

bitmap.c
plist.c
prio_heap.c
prio_tree.c
radix-tree.c
rbtree.c
+3  A: 

So, the best way to find out about kernel data structures is via the header files normally found at /usr/include. A thorough examination of these can be found in in this free on-line resource as well as many other sources:

Kernel Architecture

Two excellent books are:

Linux Kernel Architecture

Understanding the Linux Kernel

ennuikiller
+1  A: 

From what I remember the linux kernel comes with implementations of Radix Tree and Red-Black Tree.

Graphics Noob