2#include<linux/module.h>//module related & GPL()....module_descriptor is defined
3 #include<linux/kernel.h>//info regarding to kernel is defined//
4 #include<linux/moduleparam.h>//moduleparam is defined
5 #include<linux/fs.h>//allstructures & their variables are defined except cdev
6 #include<linux/cdev.h>//structure of cdev is defined
7 #include<linux/slab.h>//kmalloc & kfree is defined
8 #include<asm-generic/uaccess.h>//copy_to_usr & cpy_frm_usr is defined
9 #include<linux/semaphore.h>//to use sema_init....up ..down ...function of semaphore
10 #include<linux/completion.h>//to synchronize semaphore using completion
11 #include<linux/wait.h>//to use wait_queue_t
12 #include<linux/delay.h>//to create delay for eg...msleep()
13 #include<linux/spinlock.h>//to sychronise the driver using continous polling in one of the processor
14 #include<linux/jiffies.h>//to count the time....using jiffes ..making time difference by time_after or time_before
15 #include<linux/time.h>//some another function to calculate timing../;///also using structures timespec or timeval....having eleme nts tv_sec & tv_msec .....tv_sec & tv_usec..respectively..//
16 #include<linux/timer.h>//to use kernel timer..//
17 #include<linux/ioctl.h>// to use ioctl function to make command..//