EmbLogic's Blog

LINUX BOOT PROCESS

LINUX BOOT PROCESS

When a system is booted ,Processor executed a code from a well-known location known as BIOS(Basic Input Output System) which is stored in flash memory of motherboard. Its Job is to find the boot device.
When boot device is found ,FIRST stage boot loader is loaded into the RAM and executed. This Boot Loader is 512bytes in size. Its job is to find the SECOND order Boot Loader.
When the second-stage boot loader is in RAM and executing, upon this Linux and an optional initial RAM disk (temporary root file system) are loaded into memory. When the images are loaded, the second-stage boot loader passes control to the kernel image and the kernel is decompressed and initialized. At this stage, the second-stage boot loader checks the system hardware, enumerates the attached hardware devices, mounts the root device,and then loads the necessary kernel modules. When complete, the first user-space program (init)starts, and high-level system initialization is performed.

What BIOS do during startup?

In a PC, booting Linux begins in the BIOS at an specific address(like 0xFFFF0).
The first step of the BIOS is the power-on self test (POST). The job of the POST is to perform a check of the hardware. The second step of the BIOS is local device enumeration and initialization.
To boot an operating system, the BIOS runtime searches for devices that are both active and bootable . A boot device can be a floppy disk, a CD-ROM etc.
Commonly, Linux is booted from a hard disk, where the Master Boot Record (MBR) contains the primary boot loader.

What STAGE 1 boot loader do?
The primary boot loader that resides in the MBR is a 512-byte image containing both program code and a small partition table. The first 446 bytes are the primary boot loader,which contains both executable code and error message text. The next sixty-four bytes are the partition table, which contains a record for each of four partitions (sixteen bytes each). The MBR ends with two bytes that are defined as the magic number. This number serves as a validation check of the MBR.

What STAGE-2 boot loader do?
The secondary, or second-stage, boot loader could be more aptly called the kernel loader. The task at this stage is to load the Linux kernel and optional initial RAM disk.

The first- and second-stage boot loaders combined are called Linux Loader (LILO) or GRandUnified Bootloader (GRUB) in the x86 PC environment

After After the kernel is booted and initialized, the kernel starts the first user-space application that is init. This is the first program invoked that is compiled with the standard C library.

Posted in Linux Internals and System Programming | Leave a comment

MAJOR AND MINOR NUMBER

MAJOR AND MINOR NUMBER :-

Char devices are accessed through names in the filesystem.
Those names are called special files or device files or simply nodes of the filesystem tree.
they are conventionally located in the /dev directory.

MIJOR NO. == Kernel give to the driver. It identifies the driver associated with the device.

MINOR NO. == Driver gives to the device. It identifies exactly which device is being referred to.

There are total 255 Major and 255 Minor no

Posted in Character Driver | Leave a comment

MY FIRST HELLO_WORLD MODULE

/*
* This is my first driver module:
* Module is a piece of code that can be loaded and unloaded into the kernel during runtime.
*/

#ifndef __HEADER
#define __HEADER
#include<linux/kernel.h>                //Needed by KERN_INFO
#include<linux/module.h>              //Needed by All Module
#include<linux/init.h>                     //for init_module
#include<linux/sched.h>                //for current value
#endif

MODULE_LICENSE(“GPL”);                                //Macro: specify copyright license for the file.
MODULE_AUTHOR(“Jyoti Singh”);                           //Macro: specify module author.
MODULE_DESCRIPTION(“Hello_Module”);          //Macro: specify short module description
static int hello_init(void)                 //static to make scope within this file.
{

printk(KERN_INFO “Hello!!!Here,I M This is what I can do for U(*.*)\n”);
printk(KERN_INFO “The process is \”%s\” (pid %i)\n”,current->comm,current->pid);
return 0;
}

static void hello_exit(void)
{
printk(KERN_INFO “BYE!! I M Not there any more , don’t ask me to do any work!!!\n”);
printk(KERN_INFO “The process is \”%s\” (pid %i)\n”,current->comm,current->pid);
}

module_init(hello_init);                             //This is a Macro Invoke during loading(insmod)
module_exit(hello_exit);                           //This is a Macro Invoke during unloading(rmmod)

Posted in Character Driver | Leave a comment

Character-driver

Character driver
—————————-
revision 1.38
date: 2016/03/11 05:46:49; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/10 09:52:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/10 09:49:21; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/10 09:40:54; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/10 09:34:58; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/10 09:32:03; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/10 09:23:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/10 09:22:50; author: root; state: Exp; lines: +2 -0
We cross check the program.
—————————-
revision 1.30
date: 2016/03/10 09:19:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/10 09:17:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/10 09:17:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/10 09:15:41; author: root; state: Exp; lines: +6 -4
Call the memset().
Call the cdev_init().
Call the cdev_add().
—————————-
revision 1.26
date: 2016/03/10 09:03:11; author: root; state: Exp; lines: +1 -0
Declare the variable of dev inside it.
—————————-
revision 1.25
date: 2016/03/10 08:56:32; author: root; state: Exp; lines: +7 -0
Malloc the memory for dev struct through kmalloc.
It takes two arguments frist type or bit o memory and 2nd is flag.
—————————-
revision 1.24
date: 2016/03/10 08:36:18; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/10 08:34:18; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/10 06:20:52; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/10 06:17:13; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/10 06:15:15; author: root; state: Exp; lines: +6 -6
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/10 06:11:27; author: root; state: Exp; lines: +6 -4
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/10 06:03:04; author: root; state: Exp; lines: +2 -3
Delete the majorno and minorno variable and declare it into the macro.h
Delete the dev_t devid and declare it into the macro.h
—————————-
revision 1.17
date: 2016/03/10 05:53:26; author: root; state: Exp; lines: +3 -1
Here declare the libraray #include”macro.h”.
We spacifie the macro inside the function.
—————————-
revision 1.16
date: 2016/03/09 10:24:50; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.15
date: 2016/03/09 10:23:00; author: root; state: Exp; lines: +1 -1
Here we use alloc_chrdev_region().
Now pass the argument where the minor no. startup and no. of devices.
—————————-
revision 1.14
date: 2016/03/09 10:01:33; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/09 09:58:32; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/09 09:56:35; author: root; state: Exp; lines: +3 -4
Add the dev_t variable and inside the register_chrdev_region().
Print the majar no. and minor no.
—————————-
revision 1.11
date: 2016/03/09 09:48:56; author: root; state: Exp; lines: +1 -1
Add the argument which tell no. of devices.
—————————-
revision 1.10
date: 2016/03/09 09:46:41; author: root; state: Exp; lines: +1 -1
Aplly condition to check the registeration through register_chrdev_region.
—————————-
revision 1.9
date: 2016/03/09 09:46:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/09 09:42:29; author: root; state: Exp; lines: +3 -3
Decalre a integer variable which name is mano.(major no.).
—————————-
revision 1.7
date: 2016/03/09 09:39:01; author: root; state: Exp; lines: +16 -3
Call the register_chrdev_region().
The frist argument is dev_t type in which major no. is save and 2nd argument strore the minor number.
3rd argument is name of driver i.e in which name you register your own driver in table.
—————————-
revision 1.6
date: 2016/03/09 09:20:55; author: root; state: Exp; lines: +1 -1
Add the termination condition.
—————————-
revision 1.5
date: 2016/03/09 09:19:21; author: root; state: Exp; lines: +0 -2
Add the prototype file.
Define the struct file_operations.
—————————-
revision 1.4
date: 2016/03/09 09:09:30; author: root; state: Exp; lines: +1 -1
Here declare the mno.
—————————-
revision 1.3
date: 2016/03/09 08:56:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/09 08:50:51; author: root; state: Exp; lines: +6 -0
Register().
Frist arguments is major no..
So put in 0 for default case.
2nd arguments are driver name
3rd arguments are file operations.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: macro.h,v
Working file: macro.h
head: 1.15
branch:
locks: strict
root: 1.15
access list:
symbolic names:
keyword substitution: kv
total revisions: 15; selected revisions: 15
description:
Declare a new file.Here we define the macro.
—————————-
revision 1.15 locked by: root;
date: 2016/03/27 10:11:10; author: root; state: Exp; lines: +0 -4
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/27 10:10:02; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/27 10:05:42; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/27 10:02:37; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/16 10:38:14; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/11 12:23:37; author: root; state: Exp; lines: +4 -0
Add the macro of DEBUG
—————————-
revision 1.9
date: 2016/03/11 05:58:19; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/11 05:52:49; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:51:42; author: root; state: Exp; lines: +0 -4
Remove the node macro.
—————————-
revision 1.6
date: 2016/03/10 08:57:42; author: root; state: Exp; lines: +15 -0
define the variale of structure like devicesize,quantumsize,qsetsize,datasize.
—————————-
revision 1.5
date: 2016/03/10 08:41:40; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/10 06:17:15; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/10 06:06:02; author: root; state: Exp; lines: +10 -0
Here declare the minorno and majorno .
We also declare dev_t devid variable.
—————————-
revision 1.2
date: 2016/03/10 05:56:12; author: root; state: Exp; lines: +1 -1
Defile the value of nod.
—————————-
revision 1.1
date: 2016/03/10 05:54:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: opendev.c,v
Working file: opendev.c
head: 1.44
branch:
locks: strict
root: 1.44
access list:
symbolic names:
keyword substitution: kv
total revisions: 44; selected revisions: 44
description:
Here open the device.
release the device.
—————————-
revision 1.44 locked by: root;
date: 2016/03/26 08:23:06; author: root; state: Exp; lines: +9 -9
*** empty log message ***
—————————-
revision 1.43
date: 2016/03/26 08:17:34; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.42
date: 2016/03/26 08:15:51; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.41
date: 2016/03/26 08:06:45; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.40
date: 2016/03/26 07:56:13; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.39
date: 2016/03/26 07:55:16; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.38
date: 2016/03/26 07:54:15; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/26 07:53:09; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/26 07:50:05; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/26 07:46:21; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/26 07:42:37; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/26 06:10:00; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/26 05:58:03; author: root; state: Exp; lines: +0 -1
remove the call of trimdev().
—————————-
revision 1.31
date: 2016/03/23 19:27:13; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.30
date: 2016/03/23 19:24:55; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/16 10:45:01; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/16 05:05:43; author: root; state: Exp; lines: +1 -2
Here we remove one print statement and add some print text.
—————————-
revision 1.27
date: 2016/03/16 04:59:56; author: root; state: Exp; lines: +1 -1
There is not allow , inside printk like that printk(KERN_INFO, “g\n”); like this this create a error.
—————————-
revision 1.26
date: 2016/03/16 04:52:50; author: root; state: Exp; lines: +8 -11
Initially we put ldev = NULL.
We use ldev into container_of().
It return some value then these value save inside the file->private.data.
And make a conditon in which it always strore the last two bit same as because we know O_ACCMODE the value is three and its binaray no. is 11 we and with the flag value so it store same flag digit of frist two digit.
—————————-
revision 1.25
date: 2016/03/16 04:45:55; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/14 11:47:10; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/14 11:46:25; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/14 11:45:46; author: root; state: Exp; lines: +2 -3
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/14 11:43:39; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/14 11:42:29; author: root; state: Exp; lines: +1 -1
Define the struct dev *ldev.
—————————-
revision 1.19
date: 2016/03/14 11:40:07; author: root; state: Exp; lines: +1 -3
Call the trimdev().
—————————-
revision 1.18
date: 2016/03/14 11:37:59; author: root; state: Exp; lines: +3 -2
Add the macro.h header file.
—————————-
revision 1.17
date: 2016/03/14 11:35:39; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/14 11:16:28; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/14 11:13:56; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/14 11:13:25; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/14 10:50:12; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/14 10:45:46; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/14 10:42:55; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/14 10:40:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/14 10:24:30; author: root; state: Exp; lines: +0 -4
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/14 10:17:23; author: root; state: Exp; lines: +5 -1
And operataion perform.
—————————-
revision 1.7
date: 2016/03/14 08:08:03; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/11 12:23:49; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/11 12:03:53; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/11 12:02:41; author: root; state: Exp; lines: +7 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 11:41:49; author: root; state: Exp; lines: +22 -2
Call the trim function which use to overwrite data.
—————————-
revision 1.2
date: 2016/03/11 10:51:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:04:55; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.16
branch:
locks: strict
root: 1.16
access list:
symbolic names:
keyword substitution: kv
total revisions: 16; selected revisions: 16
description:
—————————-
revision 1.16 locked by: root;
date: 2016/03/28 10:15:46; author: root; state: Exp; lines: +1 -0
Add the seekdev() return and prototype.
—————————-
revision 1.15
date: 2016/03/22 03:46:26; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/22 03:42:57; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/21 10:56:47; author: root; state: Exp; lines: +21 -0
Remove the prototype here.
—————————-
revision 1.12
date: 2016/03/11 12:23:50; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/11 11:50:42; author: root; state: Exp; lines: +1 -1
Defination of the trimdev().
—————————-
revision 1.10
date: 2016/03/11 11:42:31; author: root; state: Exp; lines: +1 -0
Add the int trimdev().
—————————-
revision 1.9
date: 2016/03/11 06:44:38; author: root; state: Exp; lines: +1 -1
Add the dev_t devno.
—————————-
revision 1.8
date: 2016/03/11 06:02:54; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:57:57; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/10 09:16:24; author: root; state: Exp; lines: +1 -1
Add the pointer structre.
—————————-
revision 1.5
date: 2016/03/10 09:03:33; author: root; state: Exp; lines: +1 -0
Add the variable of dev.\
—————————-
revision 1.4
date: 2016/03/10 08:37:52; author: root; state: Exp; lines: +2 -0
Add the two variables.
—————————-
revision 1.3
date: 2016/03/09 09:57:27; author: root; state: Exp; lines: +1 -1
Add the variable chrdev.
—————————-
revision 1.2
date: 2016/03/09 09:44:25; author: root; state: Exp; lines: +1 -0
Add the extern file
Declare the major no. inside the prototype.h.
—————————-
revision 1.1
date: 2016/03/09 09:14:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: readdev.c,v
Working file: readdev.c
head: 1.179
branch:
locks: strict
root: 1.179
access list:
symbolic names:
keyword substitution: kv
total revisions: 179; selected revisions: 179
description:
This is a readdev().
Here we start to read data.
—————————-
revision 1.179 locked by: root;
date: 2016/03/31 06:06:31; author: root; state: Exp; lines: +2 -3
*** empty log message ***
—————————-
revision 1.178

Posted in Character Driver | Leave a comment

mdc four-bit

multiple data compression with four bit
RCS file: code_length.c,v
Working file: code_length.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
This is code_length().
Here we calculate the code length of our file.
—————————-
revision 1.3 locked by: root;
date: 2016/03/13 09:31:32; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/13 09:31:11; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/13 09:30:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: compress3.c,v
Working file: compress3.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Create a compress3().
Here we compress the data which code_length is three.
—————————-
revision 1.4 locked by: root;
date: 2016/04/03 14:14:02; author: root; state: Exp; lines: +109 -18
We make a logic to compress three bit data.
In this case we take three char byt and write data at 24 bit then write data into the file.
—————————-
revision 1.3
date: 2016/03/25 11:28:55; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/25 11:27:26; author: root; state: Exp; lines: +37 -16
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/19 03:42:05; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: compress4.c,v
Working file: compress4.c
head: 1.73
branch:
locks: strict
root: 1.73
access list:
symbolic names:
keyword substitution: kv
total revisions: 73; selected revisions: 73
description:
This is the compress4().
Now simply we print the file name to check it call or not.
—————————-
revision 1.73 locked by: root;
date: 2016/04/03 14:43:13; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.72
date: 2016/04/03 14:42:17; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.71
date: 2016/04/03 14:41:56; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.70
date: 2016/04/03 14:39:30; author: root; state: Exp; lines: +2 -4
*** empty log message ***
—————————-
revision 1.69
date: 2016/04/03 14:37:33; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.68
date: 2016/04/03 14:34:36; author: root; state: Exp; lines: +1 -0
Check the logic for odd no. inside the file.
And try to solve this issue.
—————————-
revision 1.67
date: 2016/04/02 18:25:27; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.66
date: 2016/03/19 03:44:24; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.65
date: 2016/03/19 03:43:53; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.64
date: 2016/03/14 06:13:38; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.63
date: 2016/03/14 06:07:04; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.62
date: 2016/03/14 06:06:01; author: root; state: Exp; lines: +10 -1
*** empty log message ***
—————————-
revision 1.61
date: 2016/03/14 06:02:57; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.60
date: 2016/03/14 06:02:07; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.59
date: 2016/03/14 05:58:00; author: root; state: Exp; lines: +4 -3
*** empty log message ***
—————————-
revision 1.58
date: 2016/03/14 05:38:10; author: root; state: Exp; lines: +4 -3
*** empty log message ***
—————————-
revision 1.57
date: 2016/03/14 05:34:12; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.56
date: 2016/03/14 05:33:36; author: root; state: Exp; lines: +4 -1
*** empty log message ***
—————————-
revision 1.55
date: 2016/03/14 05:25:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.54
date: 2016/03/14 05:22:37; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.53
date: 2016/03/14 05:21:15; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.52
date: 2016/03/14 05:20:41; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.51
date: 2016/03/14 05:19:56; author: root; state: Exp; lines: +1 -0
Print the value of byt.
—————————-
revision 1.50
date: 2016/03/14 05:03:37; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.49
date: 2016/03/14 05:01:38; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.48
date: 2016/03/14 04:59:52; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.47
date: 2016/03/14 04:56:42; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.46
date: 2016/03/14 04:52:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.45
date: 2016/03/14 04:52:00; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.44
date: 2016/03/14 04:51:35; author: root; state: Exp; lines: +3 -1
,
—————————-
revision 1.43
date: 2016/03/14 04:50:57; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.42
date: 2016/03/14 04:48:42; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.41
date: 2016/03/14 04:45:31; author: root; state: Exp; lines: +0 -5
*** empty log message ***
—————————-
revision 1.40
date: 2016/03/14 04:44:33; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.39
date: 2016/03/14 04:43:54; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.38
date: 2016/03/14 04:43:18; author: root; state: Exp; lines: +13 -3
Check the read().
—————————-
revision 1.37
date: 2016/03/14 04:40:45; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/13 12:00:54; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/13 11:59:55; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/13 11:54:26; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/13 11:54:10; author: root; state: Exp; lines: +6 -1
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/13 11:51:58; author: root; state: Exp; lines: +3 -4
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/13 11:51:00; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.30
date: 2016/03/13 11:49:43; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/13 11:47:35; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/13 11:45:07; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/13 11:43:35; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.26
date: 2016/03/13 11:43:13; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.25
date: 2016/03/13 11:40:06; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/13 11:39:17; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/13 11:38:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/13 11:37:03; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/13 11:30:14; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/13 11:29:54; author: root; state: Exp; lines: +4 -1
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/13 11:28:53; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/13 11:28:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/13 11:26:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/13 11:26:08; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/13 11:21:29; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/13 11:19:06; author: root; state: Exp; lines: +3 -1
Take the cursor to the starting position.
—————————-
revision 1.13
date: 2016/03/13 11:17:03; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/13 11:15:43; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/13 11:14:41; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/13 11:11:06; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/13 11:10:04; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/13 11:09:01; author: root; state: Exp; lines: +1 -1
Declare the variable i.
—————————-
revision 1.7
date: 2016/03/13 11:05:26; author: root; state: Exp; lines: +17 -0
Apply the logic to compress the data.
Fristly we take c and byt variable and ex-or by c^c then it become zero.
Then we apply a for loop and give a condtion if *(key+i) != 0. then condition true if it not then falls.
After this we shift the c left four bit and save the data inside the byt and again read the next bit and aplly same logic now it consider a next bit inside the last four bit in c and or with the byt and save two bit data.
—————————-
revision 1.6
date: 2016/03/13 10:32:15; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/13 10:31:52; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/13 10:28:17; author: root; state: Exp; lines: +2 -0
Print the accept element inside the compress4().
—————————-
revision 1.3
date: 2016/03/13 10:26:12; author: root; state: Exp; lines: +4 -4
Accept the arguments here.
—————————-
revision 1.2
date: 2016/03/13 10:12:15; author: root; state: Exp; lines: +9 -0
Open a file in wronly mode.
Print the fd.
—————————-
revision 1.1
date: 2016/03/13 09:42:48; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: compression.c,v
Working file: compression.c
head: 1.36
branch:
locks: strict
root: 1.36
access list:
symbolic names:
keyword substitution: kv
total revisions: 36; selected revisions: 36
description:
This is a compression().
Now only print the file name to check it work or not.
—————————-
revision 1.36 locked by: root;
date: 2016/04/02 15:26:17; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/25 11:29:14; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/25 11:28:00; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/19 03:41:52; author: root; state: Exp; lines: +1 -0
Call the compress3().
—————————-
revision 1.32
date: 2016/03/13 10:26:59; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/13 10:25:54; author: root; state: Exp; lines: +3 -3
Pass the aguments inside the compress4().
—————————-
revision 1.30
date: 2016/03/13 09:42:37; author: root; state: Exp; lines: +1 -0
Call the compress4().
—————————-
revision 1.29
date: 2016/03/13 09:37:19; author: root; state: Exp; lines: +19 -0
Apply the switch case.
pass the code length inside the switch case acc. to code length it call compress().
According the code length it compress data.
—————————-
revision 1.28
date: 2016/03/13 09:29:43; author: root; state: Exp; lines: +4 -2
Call the code_length().
Return the code_length() and print the code length.
—————————-
revision 1.27
date: 2016/03/13 09:18:14; author: root; state: Exp; lines: +3 -1
Print the masterarray length through strlen().
—————————-
revision 1.26
date: 2016/03/13 09:07:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.25
date: 2016/03/13 09:02:43; author: root; state: Exp; lines: +1 -0
Call the save_masterarray().
—————————-
revision 1.24
date: 2016/03/13 08:57:46; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/13 08:56:54; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/13 08:55:50; author: root; state: Exp; lines: +4 -5
Remove pointer make its a nocal.
—————————-
revision 1.21
date: 2016/03/13 08:53:46; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/13 07:23:01; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/13 07:20:38; author: root; state: Exp; lines: +1 -1
Save the key inside the key variable.
—————————-
revision 1.18
date: 2016/03/13 06:51:10; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/13 06:50:10; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/13 06:49:28; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/13 06:47:13; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/13 06:46:32; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/13 06:45:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/13 06:44:33; author: root; state: Exp; lines: +3 -2
Call the create_masterarray().
Save the value inside the a variable.
,
—————————-
revision 1.11
date: 2016/03/13 06:30:16; author: root; state: Exp; lines: +1 -1
Make fd as a pointer and allocate the memory.
—————————-
revision 1.10
date: 2016/03/13 06:29:39; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/13 06:28:48; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/13 06:28:25; author: root; state: Exp; lines: +4 -3
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/13 06:24:33; author: root; state: Exp; lines: +8 -7
Provide some commant.
—————————-
revision 1.6
date: 2016/03/13 06:16:54; author: root; state: Exp; lines: +1 -1
Print the value of file descriptor.
—————————-
revision 1.5
date: 2016/03/13 06:16:23; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/13 06:15:12; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/13 06:13:56; author: root; state: Exp; lines: +6 -0
Declare the fd which is integer type.
—————————-
revision 1.2
date: 2016/03/13 06:09:49; author: root; state: Exp; lines: +6 -0
we define a varible whice is integer.
Allocate the 15 bit memory through malloc().
Scan the name from user
And pass the name inside the open().
This return the file file_descriptor.
—————————-
revision 1.1
date: 2016/03/13 05:55:00; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: create_masterarray.c,v
Working file: create_masterarray.c
head: 1.38
branch:
locks: strict
root: 1.38
access list:
symbolic names:
keyword substitution: kv
total revisions: 38; selected revisions: 38
description:
This is create_masterarry().
Here we take the encription key through this.
Now we simply check the create_masterarray() call or not.
—————————-
revision 1.38 locked by: root;
date: 2016/04/02 15:26:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/14 04:46:45; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/14 04:42:09; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/14 04:41:50; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/13 11:46:19; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/13 11:45:47; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/13 11:23:49; author: root; state: Exp; lines: +1 -1
Put the null at the masterarray.
To end of string.
—————————-
revision 1.31
date: 2016/03/13 08:56:07; author: root; state: Exp; lines: +2 -4
return the masterkey through this.
—————————-
revision 1.30
date: 2016/03/13 08:34:41; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/13 08:33:14; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/13 08:31:24; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/13 08:30:55; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.26
date: 2016/03/13 08:24:27; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.25
date: 2016/03/13 08:21:22; author: root; state: Exp; lines: +11 -5
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/13 08:13:05; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/13 08:11:34; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/13 08:10:25; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/13 08:05:49; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/13 08:03:21; author: root; state: Exp; lines: +1 -7
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/13 08:01:25; author: root; state: Exp; lines: +7 -7
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/13 07:59:42; author: root; state: Exp; lines: +1 -3
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/13 07:46:34; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/13 07:46:07; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/13 07:39:36; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/13 07:38:37; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/13 07:37:43; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/13 07:36:49; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/13 07:35:25; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/13 07:32:26; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/13 07:29:47; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/13 07:29:06; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/13 07:28:45; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/13 07:26:14; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/13 07:25:40; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/13 07:24:57; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/13 07:24:06; author: root; state: Exp; lines: +1 -1
Call the realloc() this create memory if we require.
—————————-
revision 1.2
date: 2016/03/13 07:21:00; author: root; state: Exp; lines: +33 -2
Here we read the file through the file descriptor and read at the last null character.
We make a unique key through this function.
—————————-
revision 1.1
date: 2016/03/13 06:53:34; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: decompress4.c,v
Working file: decompress4.c
head: 1.41
branch:
locks: strict
root: 1.41
access list:
symbolic names:
keyword substitution: kv
total revisions: 41; selected revisions: 41
description:
This is decompress4().
—————————-
revision 1.41 locked by: root;
date: 2016/04/03 14:35:02; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.40
date: 2016/04/03 14:31:52; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.39
date: 2016/04/03 14:30:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.38
date: 2016/04/03 14:30:10; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/04/03 14:28:38; author: root; state: Exp; lines: +4 -2
*** empty log message ***
—————————-
revision 1.36
date: 2016/04/03 08:12:15; author: root; state: Exp; lines: +1 -0
Print some msg.
—————————-
revision 1.35
date: 2016/04/03 07:47:36; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.34
date: 2016/04/03 07:27:04; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.33
date: 2016/04/03 07:23:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.32
date: 2016/04/03 06:39:42; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.31
date: 2016/04/03 06:35:15; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.30
date: 2016/04/03 06:25:24; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.29
date: 2016/04/03 06:22:01; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.28
date: 2016/04/03 06:20:02; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/04/03 06:17:53; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.26
date: 2016/04/03 02:33:43; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.25
date: 2016/04/03 02:33:27; author: root; state: Exp; lines: +12 -2
*** empty log message ***
—————————-
revision 1.24
date: 2016/04/03 02:29:38; author: root; state: Exp; lines: +7 -5
*** empty log message ***
—————————-
revision 1.23
date: 2016/04/03 02:20:01; author: root; state: Exp; lines: +2 -1
Print the value of index_word() return value.
—————————-
revision 1.22
date: 2016/04/03 02:10:13; author: root; state: Exp; lines: +2 -1
Call the index_word().
Pass the fd inside this.
—————————-
revision 1.21
date: 2016/04/03 02:06:01; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.20
date: 2016/04/03 02:04:39; author: root; state: Exp; lines: +7 -1
Open or creat a new file with name of decompress_file.
Check its fd and print the value of fd.
—————————-
revision 1.19
date: 2016/04/02 18:22:12; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.18
date: 2016/04/02 18:20:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/04/02 18:18:53; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.16
date: 2016/04/02 18:13:46; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.15
date: 2016/04/02 18:11:10; author: root; state: Exp; lines: +4 -0
*** empty log message ***
—————————-
revision 1.14
date: 2016/04/02 18:08:06; author: root; state: Exp; lines: +9 -9
Open a compress_file.
—————————-
revision 1.13
date: 2016/04/02 18:01:29; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.12
date: 2016/04/02 17:59:25; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.11
date: 2016/04/02 17:57:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/04/02 15:40:34; author: root; state: Exp; lines: +3 -2
Print the save_masterarray fd in compress4().
—————————-
revision 1.9
date: 2016/04/02 15:39:07; author: root; state: Exp; lines: +8 -8
Print the compress_file fd.
—————————-
revision 1.8
date: 2016/04/02 15:35:53; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/04/02 15:35:02; author: root; state: Exp; lines: +1 -1
Open the compress file.
—————————-
revision 1.6
date: 2016/04/02 15:33:01; author: root; state: Exp; lines: +1 -0
Print the value of dfd.
—————————-
revision 1.5
date: 2016/04/02 15:31:33; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2016/04/02 15:30:16; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/04/02 15:27:26; author: root; state: Exp; lines: +2 -3
*** empty log message ***
—————————-
revision 1.2
date: 2016/04/02 15:26:20; author: root; state: Exp; lines: +25 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/25 12:28:33; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: decompression.c,v
Working file: decompression.c
head: 1.25
branch:
locks: strict
root: 1.25
access list:
symbolic names:
keyword substitution: kv
total revisions: 25; selected revisions: 25
description:
This is a decompression().
Inside the decompression() we only check the function is call or not. we simply print the file name.
—————————-
revision 1.25 locked by: root;
date: 2016/04/03 14:21:53; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.24
date: 2016/04/03 08:10:44; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.23
date: 2016/04/03 04:43:29; author: root; state: Exp; lines: +3 -8
*** empty log message ***
—————————-
revision 1.22
date: 2016/04/03 04:34:40; author: root; state: Exp; lines: +1 -0
Print the value of key.
—————————-
revision 1.21
date: 2016/04/02 18:07:30; author: root; state: Exp; lines: +3 -9
Remove some call like open of compress_file.
—————————-
revision 1.20
date: 2016/04/02 15:42:34; author: root; state: Exp; lines: +2 -0
Print the fd inside compression().
—————————-
revision 1.19
date: 2016/04/02 15:38:42; author: root; state: Exp; lines: +2 -2
Send the compress_file fd in read only mode in compress4.
—————————-
revision 1.18
date: 2016/03/25 12:29:48; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/25 12:26:09; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/25 12:25:46; author: root; state: Exp; lines: +6 -13
Call the decompres4().
—————————-
revision 1.15
date: 2016/03/25 12:04:16; author: root; state: Exp; lines: +28 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/25 11:57:00; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/25 11:56:16; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/25 11:55:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/25 11:52:20; author: root; state: Exp; lines: +5 -3
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/25 11:50:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/25 11:50:02; author: root; state: Exp; lines: +8 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/25 11:47:04; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/25 11:44:36; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/25 11:42:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/25 11:41:54; author: root; state: Exp; lines: +8 -3
Open a file in rdonly and print it.
—————————-
revision 1.4
date: 2016/03/25 11:36:01; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/25 11:31:24; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/25 11:26:49; author: root; state: Exp; lines: +15 -0
Decompression().
Open a file in wronly.
Also print the encription_key from user.
—————————-
revision 1.1
date: 2016/03/13 06:01:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
This is the header().
Inside this function we declare all the libraray.
We include the stdio.h libraray which means stander input output header.
—————————-
revision 1.3 locked by: root;
date: 2016/03/13 09:19:28; author: root; state: Exp; lines: +1 -0
Add the header file string.h becuse we use the stdlen().
This function define into the string.h libraray so we include it inside it.
—————————-
revision 1.2
date: 2016/03/13 06:13:29; author: root; state: Exp; lines: +2 -0
Add the libraray for exit().
Add the header file for open().
—————————-
revision 1.1
date: 2016/03/13 05:29:56; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: index_word.c,v
Working file: index_word.c
head: 1.23
branch:
locks: strict
root: 1.23
access list:
symbolic names:
keyword substitution: kv
total revisions: 23; selected revisions: 23
description:
Make a index_word().
Pass the arguments as fd.
print the value of fd.
—————————-
revision 1.23 locked by: root;
date: 2016/04/03 14:21:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/04/03 08:12:21; author: root; state: Exp; lines: +2 -2
Commant some arguments.
—————————-
revision 1.21
date: 2016/04/03 07:26:13; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.20
date: 2016/04/03 07:10:18; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.19
date: 2016/04/03 07:09:56; author: root; state: Exp; lines: +4 -5
*** empty log message ***
—————————-
revision 1.18
date: 2016/04/03 07:07:15; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.17
date: 2016/04/03 07:05:17; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.16
date: 2016/04/03 07:04:21; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.15
date: 2016/04/03 06:41:53; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2016/04/03 06:40:35; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/04/03 06:38:17; author: root; state: Exp; lines: +1 -3
*** empty log message ***
—————————-
revision 1.12
date: 2016/04/03 06:32:23; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/04/03 06:30:13; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/04/03 06:29:34; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.9
date: 2016/04/03 06:27:39; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/04/03 06:25:25; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/04/03 02:35:21; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.6
date: 2016/04/03 02:27:04; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/04/03 02:25:11; author: root; state: Exp; lines: +1 -0
Use the lseek().
—————————-
revision 1.4
date: 2016/04/03 02:23:13; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.3
date: 2016/04/03 02:21:46; author: root; state: Exp; lines: +2 -1
Typecast the value of ch into integer.
—————————-
revision 1.2
date: 2016/04/03 02:20:22; author: root; state: Exp; lines: +21 -1
Make a logic to take a word at a particular index.
We read the fd.
—————————-
revision 1.1
date: 2016/04/03 02:12:13; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: mainmenu.c,v
Working file: mainmenu.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
This is a manimenu().
Here we take the choice from user and return the value of choice inside the mainmenu().
Here we define the menu.
—————————-
revision 1.1 locked by: root;
date: 2016/03/13 05:32:22; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: mdc.c,v
Working file: mdc.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
This is our main function mdc().
Inside this function mainmenu() return the value of choice.
We take the value of choice and rotate it into the while loop.
we use switch case.
Inside the switch case we provide the value of choice and make case acc. to user choice.
—————————-
revision 1.3 locked by: root;
date: 2016/03/13 06:01:11; author: root; state: Exp; lines: +1 -0
Call the decompression().
—————————-
revision 1.2
date: 2016/03/13 05:54:48; author: root; state: Exp; lines: +1 -0
Call the compression().
—————————-
revision 1.1
date: 2016/03/13 05:33:30; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.23
branch:
locks: strict
root: 1.23
access list:
symbolic names:
keyword substitution: kv
total revisions: 23; selected revisions: 23
description:
This is a prototype().
Inside this function we declare the mainmenu().
Here we define its prototype. it return integer and take void argument.
—————————-
revision 1.23 locked by: root;
date: 2016/04/03 02:19:51; author: root; state: Exp; lines: +1 -1
Add the return type is char.
—————————-
revision 1.22
date: 2016/04/03 02:09:43; author: root; state: Exp; lines: +1 -0
Add the new index_word().
Add its prototypes and argument.
—————————-
revision 1.21
date: 2016/04/02 18:07:04; author: root; state: Exp; lines: +1 -1
Delete 2nd arument inside the decompress4().
—————————-
revision 1.20
date: 2016/03/25 12:25:34; author: root; state: Exp; lines: +1 -0
Add the decompress4().
—————————-
revision 1.19
date: 2016/03/25 11:41:34; author: root; state: Exp; lines: +0 -1
remove the code_len().
—————————-
revision 1.18
date: 2016/03/25 11:30:36; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/25 11:28:54; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/25 11:27:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/25 11:26:30; author: root; state: Exp; lines: +1 -0
Add the new function code_len().
—————————-
revision 1.14
date: 2016/03/19 03:41:20; author: root; state: Exp; lines: +2 -1
Add the compress3().
Pass the prototype and return type.
—————————-
revision 1.13
date: 2016/03/13 10:25:34; author: root; state: Exp; lines: +1 -0
Add the compress4().
Pass the argument inside it.
—————————-
revision 1.12
date: 2016/03/13 09:29:15; author: root; state: Exp; lines: +1 -0
Add the code_length().
Pass the argument type interger and return type is interger.
—————————-
revision 1.11
date: 2016/03/13 09:06:44; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/13 09:02:16; author: root; state: Exp; lines: +1 -0
Add the save_masterarray().
Pass the argument and its return type.
—————————-
revision 1.9
date: 2016/03/13 08:55:32; author: root; state: Exp; lines: +1 -1
Remove argument pointer make it simple.
—————————-
revision 1.8
date: 2016/03/13 07:22:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/13 07:20:13; author: root; state: Exp; lines: +1 -1
Define return type of create_masterarray().
—————————-
revision 1.6
date: 2016/03/13 06:48:55; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/13 06:48:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/13 06:43:56; author: root; state: Exp; lines: +1 -0
Add the create_masterarray().
Pass the pointer argument and its return type is integer.
—————————-
revision 1.3
date: 2016/03/13 06:00:34; author: root; state: Exp; lines: +1 -0
Add the decompression()
Pass the argument and define its return type is integer.
—————————-
revision 1.2
date: 2016/03/13 05:54:06; author: root; state: Exp; lines: +1 -0
Add the compression().
This function return type is integer.
—————————-
revision 1.1
date: 2016/03/13 05:31:18; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: save_masterarray.c,v
Working file: save_masterarray.c
head: 1.7
branch:
locks: strict
root: 1.7
access list:
symbolic names:
keyword substitution: kv
total revisions: 7; selected revisions: 7
description:
This is the save_masterarray().
Here create a file name is save_masterarray.
Open this file into the write only mode.
Print the fd if it open.
—————————-
revision 1.7 locked by: root;
date: 2016/03/13 09:39:10; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/13 09:16:25; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/13 09:13:06; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/13 09:11:19; author: root; state: Exp; lines: +1 -0
declare the char ch.
—————————-
revision 1.3
date: 2016/03/13 09:10:45; author: root; state: Exp; lines: +1 -0
Write the data inside the save_master array.
—————————-
revision 1.2
date: 2016/03/13 09:08:55; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/13 09:04:12; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Uncategorized | Leave a comment

char-driver

char driver

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.25
branch:
locks: strict
root: 1.25
access list:
symbolic names:
keyword substitution: kv
total revisions: 25; selected revisions: 25
description:
This cleanup() is use to remove the driver from kernel.
—————————-
revision 1.25 locked by: root;
date: 2016/03/11 12:23:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/11 12:02:38; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/11 09:02:12; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/11 08:56:27; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/11 06:56:41; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/11 06:53:14; author: root; state: Exp; lines: +1 -0
declare the variable i.
—————————-
revision 1.19
date: 2016/03/11 06:52:45; author: root; state: Exp; lines: +4 -1
Delete all the node.
—————————-
revision 1.18
date: 2016/03/10 09:19:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/10 09:18:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/10 09:15:18; author: root; state: Exp; lines: +1 -0
Delete the structure and free the memory.
—————————-
revision 1.15
date: 2016/03/10 08:55:35; author: root; state: Exp; lines: +1 -0
Free the memory which assign to through kmalloc to dev struct.
—————————-
revision 1.14
date: 2016/03/10 05:52:43; author: root; state: Exp; lines: +2 -1
Here cahnge the 2nd argument we define in macro and provide the macro inside the unregister_region().
—————————-
revision 1.13
date: 2016/03/10 05:43:17; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/10 05:41:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/10 05:25:38; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/09 09:55:53; author: root; state: Exp; lines: +1 -1
Provide the devid variable insid the unregister_chrdev_region().
No. of devices.
—————————-
revision 1.9
date: 2016/03/09 09:36:05; author: root; state: Exp; lines: +2 -1
change the registeration process.
Now we register our driver through new call.
here we declare dev_t type variable.
2nd argument is no. of devices in starting we put one.
—————————-
revision 1.8
date: 2016/03/09 09:14:16; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 09:08:45; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 08:59:12; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 08:47:55; author: root; state: Exp; lines: +1 -0
Unregister the driver through unregister().
Here frist argument is major number and second command is name of the driver.
—————————-
revision 1.4
date: 2016/03/08 02:39:06; author: root; state: Exp; lines: +1 -1
Provide space between kern_info and “” statements.
—————————-
revision 1.3
date: 2016/03/06 04:18:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/06 04:14:09; author: root; state: Exp; lines: +1 -1
Now we set the priority of our driver by kern_info.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: file_opr.h,v
Working file: file_opr.h
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
Here change the routine of open file.
Now file open though our routine.
—————————-
revision 1.2 locked by: root;
date: 2016/03/11 10:57:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:46:22; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
root: 1.16
access list:
symbolic names:
keyword substitution: kv
total revisions: 16; selected revisions: 16
description:
Here all the libraray include which are use in basic driver program.
—————————-
revision 1.16 locked by: root;
date: 2016/03/11 12:23:33; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/11 10:54:46; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/11 10:53:09; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/11 06:28:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/11 06:25:49; author: root; state: Exp; lines: +1 -0
Add the header file modules_param.h
—————————-
revision 1.11
date: 2016/03/10 09:00:21; author: root; state: Exp; lines: +1 -0
Add the libaray cdev.h
—————————-
revision 1.10
date: 2016/03/10 08:59:40; author: root; state: Exp; lines: +1 -0
Add the library slab.h
—————————-
revision 1.9
date: 2016/03/10 08:56:07; author: root; state: Exp; lines: +14 -0
Add thr struct dev inside the header.h
—————————-
revision 1.8
date: 2016/03/10 05:12:58; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 10:40:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 10:35:34; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 09:44:07; author: root; state: Exp; lines: +0 -1
Remove the extern file inside the header.h
—————————-
revision 1.4
date: 2016/03/09 09:38:38; author: root; state: Exp; lines: +1 -1
Add the new extern dev_t majorno variable.
—————————-
revision 1.3
date: 2016/03/09 09:08:51; author: root; state: Exp; lines: +1 -0
define the major no. in the header.
Also provide the type .
—————————-
revision 1.2
date: 2016/03/09 08:48:58; author: root; state: Exp; lines: +1 -0
Add the new libraray #include<kernel/fs.h>
—————————-
revision 1.1
date: 2016/03/04 10:28:51; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: insert.c,v
Working file: insert.c
head: 1.51
branch:
locks: strict
root: 1.51
access list:
symbolic names:
keyword substitution: kv
total revisions: 51; selected revisions: 51
description:
This insert_driver() is use to insert the driver into the kernel.
—————————-
revision 1.51 locked by: root;
date: 2016/03/11 12:02:40; author: root; state: Exp; lines: +12 -0
*** empty log message ***
—————————-
revision 1.50
date: 2016/03/11 10:56:23; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.49
date: 2016/03/11 10:55:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.48
date: 2016/03/11 10:51:01; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.47
date: 2016/03/11 09:02:14; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.46
date: 2016/03/11 06:51:06; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.45
date: 2016/03/11 06:50:14; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.44
date: 2016/03/11 06:48:47; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.43
date: 2016/03/11 06:44:06; author: root; state: Exp; lines: +15 -12
Add the mkdev().
Print the value of devices which are connected to it.
—————————-
revision 1.42
date: 2016/03/11 06:26:12; author: root; state: Exp; lines: +1 -0
Declare the modules_param().
—————————-
revision 1.41
date: 2016/03/11 06:12:25; author: root; state: Exp; lines: +7 -2
Check the kernal if it crush then safely out.
—————————-
revision 1.40
date: 2016/03/11 06:02:51; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.39
date: 2016/03/11 05:48:05; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.38
date: 2016/03/11 05:46:49; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/10 09:52:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/10 09:49:21; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/10 09:40:54; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/10 09:34:58; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/10 09:32:03; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/10 09:23:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/10 09:22:50; author: root; state: Exp; lines: +2 -0
We cross check the program.
—————————-
revision 1.30
date: 2016/03/10 09:19:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/10 09:17:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/10 09:17:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/10 09:15:41; author: root; state: Exp; lines: +6 -4
Call the memset().
Call the cdev_init().
Call the cdev_add().
—————————-
revision 1.26
date: 2016/03/10 09:03:11; author: root; state: Exp; lines: +1 -0
Declare the variable of dev inside it.
—————————-
revision 1.25
date: 2016/03/10 08:56:32; author: root; state: Exp; lines: +7 -0
Malloc the memory for dev struct through kmalloc.
It takes two arguments frist type or bit o memory and 2nd is flag.
—————————-
revision 1.24
date: 2016/03/10 08:36:18; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/10 08:34:18; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/10 06:20:52; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/10 06:17:13; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/10 06:15:15; author: root; state: Exp; lines: +6 -6
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/10 06:11:27; author: root; state: Exp; lines: +6 -4
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/10 06:03:04; author: root; state: Exp; lines: +2 -3
Delete the majorno and minorno variable and declare it into the macro.h
Delete the dev_t devid and declare it into the macro.h
—————————-
revision 1.17
date: 2016/03/10 05:53:26; author: root; state: Exp; lines: +3 -1
Here declare the libraray #include”macro.h”.
We spacifie the macro inside the function.
—————————-
revision 1.16
date: 2016/03/09 10:24:50; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.15
date: 2016/03/09 10:23:00; author: root; state: Exp; lines: +1 -1
Here we use alloc_chrdev_region().
Now pass the argument where the minor no. startup and no. of devices.
—————————-
revision 1.14
date: 2016/03/09 10:01:33; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/09 09:58:32; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/09 09:56:35; author: root; state: Exp; lines: +3 -4
Add the dev_t variable and inside the register_chrdev_region().
Print the majar no. and minor no.
—————————-
revision 1.11
date: 2016/03/09 09:48:56; author: root; state: Exp; lines: +1 -1
Add the argument which tell no. of devices.
—————————-
revision 1.10
date: 2016/03/09 09:46:41; author: root; state: Exp; lines: +1 -1
Aplly condition to check the registeration through register_chrdev_region.
—————————-
revision 1.9
date: 2016/03/09 09:46:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/09 09:42:29; author: root; state: Exp; lines: +3 -3
Decalre a integer variable which name is mano.(major no.).
—————————-
revision 1.7
date: 2016/03/09 09:39:01; author: root; state: Exp; lines: +16 -3
Call the register_chrdev_region().
The frist argument is dev_t type in which major no. is save and 2nd argument strore the minor number.
3rd argument is name of driver i.e in which name you register your own driver in table.
—————————-
revision 1.6
date: 2016/03/09 09:20:55; author: root; state: Exp; lines: +1 -1
Add the termination condition.
—————————-
revision 1.5
date: 2016/03/09 09:19:21; author: root; state: Exp; lines: +0 -2
Add the prototype file.
Define the struct file_operations.
—————————-
revision 1.4
date: 2016/03/09 09:09:30; author: root; state: Exp; lines: +1 -1
Here declare the mno.
—————————-
revision 1.3
date: 2016/03/09 08:56:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/09 08:50:51; author: root; state: Exp; lines: +6 -0
Register().
Frist arguments is major no..
So put in 0 for default case.
2nd arguments are driver name
3rd arguments are file operations.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: macro.h,v
Working file: macro.h
head: 1.10
branch:
locks: strict
root: 1.10
access list:
symbolic names:
keyword substitution: kv
total revisions: 10; selected revisions: 10
description:
Declare a new file.Here we define the macro.
—————————-
revision 1.10 locked by: root;
date: 2016/03/11 12:23:37; author: root; state: Exp; lines: +4 -0
Add the macro of DEBUG
—————————-
revision 1.9
date: 2016/03/11 05:58:19; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/11 05:52:49; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:51:42; author: root; state: Exp; lines: +0 -4
Remove the node macro.
—————————-
revision 1.6
date: 2016/03/10 08:57:42; author: root; state: Exp; lines: +15 -0
define the variale of structure like devicesize,quantumsize,qsetsize,datasize.
—————————-
revision 1.5
date: 2016/03/10 08:41:40; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/10 06:17:15; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/10 06:06:02; author: root; state: Exp; lines: +10 -0
Here declare the minorno and majorno .
We also declare dev_t devid variable.
—————————-
revision 1.2
date: 2016/03/10 05:56:12; author: root; state: Exp; lines: +1 -1
Defile the value of nod.
—————————-
revision 1.1
date: 2016/03/10 05:54:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: opendev.c,v
Working file: opendev.c
head: 1.7
branch:
locks: strict
root: 1.7
access list:
symbolic names:
keyword substitution: kv
total revisions: 7; selected revisions: 7
description:
Here open the device.
release the device.
—————————-
revision 1.7 locked by: root;
date: 2016/03/14 08:08:03; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/11 12:23:49; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/11 12:03:53; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/11 12:02:41; author: root; state: Exp; lines: +7 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 11:41:49; author: root; state: Exp; lines: +22 -2
Call the trim function which use to overwrite data.
—————————-
revision 1.2
date: 2016/03/11 10:51:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:04:55; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.12
branch:
locks: strict
root: 1.12
access list:
symbolic names:
keyword substitution: kv
total revisions: 12; selected revisions: 12
description:
—————————-
revision 1.12 locked by: root;
date: 2016/03/11 12:23:50; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/11 11:50:42; author: root; state: Exp; lines: +1 -1
Defination of the trimdev().
—————————-
revision 1.10
date: 2016/03/11 11:42:31; author: root; state: Exp; lines: +1 -0
Add the int trimdev().
—————————-
revision 1.9
date: 2016/03/11 06:44:38; author: root; state: Exp; lines: +1 -1
Add the dev_t devno.
—————————-
revision 1.8
date: 2016/03/11 06:02:54; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:57:57; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/10 09:16:24; author: root; state: Exp; lines: +1 -1
Add the pointer structre.
—————————-
revision 1.5
date: 2016/03/10 09:03:33; author: root; state: Exp; lines: +1 -0
Add the variable of dev.\
—————————-
revision 1.4
date: 2016/03/10 08:37:52; author: root; state: Exp; lines: +2 -0
Add the two variables.
—————————-
revision 1.3
date: 2016/03/09 09:57:27; author: root; state: Exp; lines: +1 -1
Add the variable chrdev.
—————————-
revision 1.2
date: 2016/03/09 09:44:25; author: root; state: Exp; lines: +1 -0
Add the extern file
Declare the major no. inside the prototype.h.
—————————-
revision 1.1
date: 2016/03/09 09:14:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: releasedev.c,v
Working file: releasedev.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
release the device.
—————————-
revision 1.3 locked by: root;
date: 2016/03/11 12:02:42; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 10:07:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:05:34; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: trimdev.c,v
Working file: trimdev.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Trimdev().
—————————-
revision 1.4 locked by: root;
date: 2016/03/14 08:08:13; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 12:23:51; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 12:02:43; author: root; state: Exp; lines: +4 -0
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 11:42:45; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.25
branch:
locks: strict
root: 1.25
access list:
symbolic names:
keyword substitution: kv
total revisions: 25; selected revisions: 25
description:
This cleanup() is use to remove the driver from kernel.
—————————-
revision 1.25 locked by: root;
date: 2016/03/11 12:23:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/11 12:02:38; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/11 09:02:12; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/11 08:56:27; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/11 06:56:41; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/11 06:53:14; author: root; state: Exp; lines: +1 -0
declare the variable i.
—————————-
revision 1.19
date: 2016/03/11 06:52:45; author: root; state: Exp; lines: +4 -1
Delete all the node.
—————————-
revision 1.18
date: 2016/03/10 09:19:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/10 09:18:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/10 09:15:18; author: root; state: Exp; lines: +1 -0
Delete the structure and free the memory.
—————————-
revision 1.15
date: 2016/03/10 08:55:35; author: root; state: Exp; lines: +1 -0
Free the memory which assign to through kmalloc to dev struct.
—————————-
revision 1.14
date: 2016/03/10 05:52:43; author: root; state: Exp; lines: +2 -1
Here cahnge the 2nd argument we define in macro and provide the macro inside the unregister_region().
—————————-
revision 1.13
date: 2016/03/10 05:43:17; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/10 05:41:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/10 05:25:38; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/09 09:55:53; author: root; state: Exp; lines: +1 -1
Provide the devid variable insid the unregister_chrdev_region().
No. of devices.
—————————-
revision 1.9
date: 2016/03/09 09:36:05; author: root; state: Exp; lines: +2 -1
change the registeration process.
Now we register our driver through new call.
here we declare dev_t type variable.
2nd argument is no. of devices in starting we put one.
—————————-
revision 1.8
date: 2016/03/09 09:14:16; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 09:08:45; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 08:59:12; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 08:47:55; author: root; state: Exp; lines: +1 -0
Unregister the driver through unregister().
Here frist argument is major number and second command is name of the driver.
—————————-
revision 1.4
date: 2016/03/08 02:39:06; author: root; state: Exp; lines: +1 -1
Provide space between kern_info and “” statements.
—————————-
revision 1.3
date: 2016/03/06 04:18:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/06 04:14:09; author: root; state: Exp; lines: +1 -1
Now we set the priority of our driver by kern_info.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: file_opr.h,v
Working file: file_opr.h
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
Here change the routine of open file.
Now file open though our routine.
—————————-
revision 1.2 locked by: root;
date: 2016/03/11 10:57:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:46:22; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
root: 1.16
access list:
symbolic names:
keyword substitution: kv
total revisions: 16; selected revisions: 16
description:
Here all the libraray include which are use in basic driver program.
—————————-
revision 1.16 locked by: root;
date: 2016/03/11 12:23:33; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/11 10:54:46; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/11 10:53:09; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/11 06:28:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/11 06:25:49; author: root; state: Exp; lines: +1 -0
Add the header file modules_param.h
—————————-
revision 1.11
date: 2016/03/10 09:00:21; author: root; state: Exp; lines: +1 -0
Add the libaray cdev.h
—————————-
revision 1.10
date: 2016/03/10 08:59:40; author: root; state: Exp; lines: +1 -0
Add the library slab.h
—————————-
revision 1.9
date: 2016/03/10 08:56:07; author: root; state: Exp; lines: +14 -0
Add thr struct dev inside the header.h
—————————-
revision 1.8
date: 2016/03/10 05:12:58; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 10:40:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 10:35:34; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 09:44:07; author: root; state: Exp; lines: +0 -1
Remove the extern file inside the header.h
—————————-
revision 1.4
date: 2016/03/09 09:38:38; author: root; state: Exp; lines: +1 -1
Add the new extern dev_t majorno variable.
—————————-
revision 1.3
date: 2016/03/09 09:08:51; author: root; state: Exp; lines: +1 -0
define the major no. in the header.
Also provide the type .
—————————-
revision 1.2
date: 2016/03/09 08:48:58; author: root; state: Exp; lines: +1 -0
Add the new libraray #include<kernel/fs.h>
—————————-
revision 1.1
date: 2016/03/04 10:28:51; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: insert.c,v
Working file: insert.c
head: 1.51
branch:
locks: strict
root: 1.51
access list:
symbolic names:
keyword substitution: kv
total revisions: 51; selected revisions: 51
description:
This insert_driver() is use to insert the driver into the kernel.
—————————-
revision 1.51 locked by: root;
date: 2016/03/11 12:02:40; author: root; state: Exp; lines: +12 -0
*** empty log message ***
—————————-
revision 1.50
date: 2016/03/11 10:56:23; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.49
date: 2016/03/11 10:55:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.48
date: 2016/03/11 10:51:01; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.47
date: 2016/03/11 09:02:14; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.46
date: 2016/03/11 06:51:06; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.45
date: 2016/03/11 06:50:14; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.44
date: 2016/03/11 06:48:47; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.43
date: 2016/03/11 06:44:06; author: root; state: Exp; lines: +15 -12
Add the mkdev().
Print the value of devices which are connected to it.
—————————-
revision 1.42
date: 2016/03/11 06:26:12; author: root; state: Exp; lines: +1 -0
Declare the modules_param().
—————————-
revision 1.41
date: 2016/03/11 06:12:25; author: root; state: Exp; lines: +7 -2
Check the kernal if it crush then safely out.
—————————-
revision 1.40
date: 2016/03/11 06:02:51; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.39
date: 2016/03/11 05:48:05; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.38
date: 2016/03/11 05:46:49; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/10 09:52:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/10 09:49:21; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/10 09:40:54; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/10 09:34:58; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/10 09:32:03; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/10 09:23:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/10 09:22:50; author: root; state: Exp; lines: +2 -0
We cross check the program.
—————————-
revision 1.30
date: 2016/03/10 09:19:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/10 09:17:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/10 09:17:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/10 09:15:41; author: root; state: Exp; lines: +6 -4
Call the memset().
Call the cdev_init().
Call the cdev_add().
—————————-
revision 1.26
date: 2016/03/10 09:03:11; author: root; state: Exp; lines: +1 -0
Declare the variable of dev inside it.
—————————-
revision 1.25
date: 2016/03/10 08:56:32; author: root; state: Exp; lines: +7 -0
Malloc the memory for dev struct through kmalloc.
It takes two arguments frist type or bit o memory and 2nd is flag.
—————————-
revision 1.24
date: 2016/03/10 08:36:18; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/10 08:34:18; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/10 06:20:52; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/10 06:17:13; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/10 06:15:15; author: root; state: Exp; lines: +6 -6
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/10 06:11:27; author: root; state: Exp; lines: +6 -4
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/10 06:03:04; author: root; state: Exp; lines: +2 -3
Delete the majorno and minorno variable and declare it into the macro.h
Delete the dev_t devid and declare it into the macro.h
—————————-
revision 1.17
date: 2016/03/10 05:53:26; author: root; state: Exp; lines: +3 -1
Here declare the libraray #include”macro.h”.
We spacifie the macro inside the function.
—————————-
revision 1.16
date: 2016/03/09 10:24:50; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.15
date: 2016/03/09 10:23:00; author: root; state: Exp; lines: +1 -1
Here we use alloc_chrdev_region().
Now pass the argument where the minor no. startup and no. of devices.
—————————-
revision 1.14
date: 2016/03/09 10:01:33; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/09 09:58:32; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/09 09:56:35; author: root; state: Exp; lines: +3 -4
Add the dev_t variable and inside the register_chrdev_region().
Print the majar no. and minor no.
—————————-
revision 1.11
date: 2016/03/09 09:48:56; author: root; state: Exp; lines: +1 -1
Add the argument which tell no. of devices.
—————————-
revision 1.10
date: 2016/03/09 09:46:41; author: root; state: Exp; lines: +1 -1
Aplly condition to check the registeration through register_chrdev_region.
—————————-
revision 1.9
date: 2016/03/09 09:46:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/09 09:42:29; author: root; state: Exp; lines: +3 -3
Decalre a integer variable which name is mano.(major no.).
—————————-
revision 1.7
date: 2016/03/09 09:39:01; author: root; state: Exp; lines: +16 -3
Call the register_chrdev_region().
The frist argument is dev_t type in which major no. is save and 2nd argument strore the minor number.
3rd argument is name of driver i.e in which name you register your own driver in table.
—————————-
revision 1.6
date: 2016/03/09 09:20:55; author: root; state: Exp; lines: +1 -1
Add the termination condition.
—————————-
revision 1.5
date: 2016/03/09 09:19:21; author: root; state: Exp; lines: +0 -2
Add the prototype file.
Define the struct file_operations.
—————————-
revision 1.4
date: 2016/03/09 09:09:30; author: root; state: Exp; lines: +1 -1
Here declare the mno.
—————————-
revision 1.3
date: 2016/03/09 08:56:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/09 08:50:51; author: root; state: Exp; lines: +6 -0
Register().
Frist arguments is major no..
So put in 0 for default case.
2nd arguments are driver name
3rd arguments are file operations.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: macro.h,v
Working file: macro.h
head: 1.10
branch:
locks: strict
root: 1.10
access list:
symbolic names:
keyword substitution: kv
total revisions: 10; selected revisions: 10
description:
Declare a new file.Here we define the macro.
—————————-
revision 1.10 locked by: root;
date: 2016/03/11 12:23:37; author: root; state: Exp; lines: +4 -0
Add the macro of DEBUG
—————————-
revision 1.9
date: 2016/03/11 05:58:19; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/11 05:52:49; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:51:42; author: root; state: Exp; lines: +0 -4
Remove the node macro.
—————————-
revision 1.6
date: 2016/03/10 08:57:42; author: root; state: Exp; lines: +15 -0
define the variale of structure like devicesize,quantumsize,qsetsize,datasize.
—————————-
revision 1.5
date: 2016/03/10 08:41:40; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/10 06:17:15; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/10 06:06:02; author: root; state: Exp; lines: +10 -0
Here declare the minorno and majorno .
We also declare dev_t devid variable.
—————————-
revision 1.2
date: 2016/03/10 05:56:12; author: root; state: Exp; lines: +1 -1
Defile the value of nod.
—————————-
revision 1.1
date: 2016/03/10 05:54:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: opendev.c,v
Working file: opendev.c
head: 1.8
branch:
locks: strict
root: 1.8
access list:
symbolic names:
keyword substitution: kv
total revisions: 8; selected revisions: 8
description:
Here open the device.
release the device.
—————————-
revision 1.8 locked by: root;
date: 2016/03/14 10:17:23; author: root; state: Exp; lines: +5 -1
And operataion perform.
—————————-
revision 1.7
date: 2016/03/14 08:08:03; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/11 12:23:49; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/11 12:03:53; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/11 12:02:41; author: root; state: Exp; lines: +7 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 11:41:49; author: root; state: Exp; lines: +22 -2
Call the trim function which use to overwrite data.
—————————-
revision 1.2
date: 2016/03/11 10:51:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:04:55; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.12
branch:
locks: strict
root: 1.12
access list:
symbolic names:
keyword substitution: kv
total revisions: 12; selected revisions: 12
description:
—————————-
revision 1.12 locked by: root;
date: 2016/03/11 12:23:50; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/11 11:50:42; author: root; state: Exp; lines: +1 -1
Defination of the trimdev().
—————————-
revision 1.10
date: 2016/03/11 11:42:31; author: root; state: Exp; lines: +1 -0
Add the int trimdev().
—————————-
revision 1.9
date: 2016/03/11 06:44:38; author: root; state: Exp; lines: +1 -1
Add the dev_t devno.
—————————-
revision 1.8
date: 2016/03/11 06:02:54; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:57:57; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/10 09:16:24; author: root; state: Exp; lines: +1 -1
Add the pointer structre.
—————————-
revision 1.5
date: 2016/03/10 09:03:33; author: root; state: Exp; lines: +1 -0
Add the variable of dev.\
—————————-
revision 1.4
date: 2016/03/10 08:37:52; author: root; state: Exp; lines: +2 -0
Add the two variables.
—————————-
revision 1.3
date: 2016/03/09 09:57:27; author: root; state: Exp; lines: +1 -1
Add the variable chrdev.
—————————-
revision 1.2
date: 2016/03/09 09:44:25; author: root; state: Exp; lines: +1 -0
Add the extern file
Declare the major no. inside the prototype.h.
—————————-
revision 1.1
date: 2016/03/09 09:14:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: releasedev.c,v
Working file: releasedev.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
release the device.
—————————-
revision 1.3 locked by: root;
date: 2016/03/11 12:02:42; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 10:07:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:05:34; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: trimdev.c,v
Working file: trimdev.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Trimdev().
—————————-
revision 1.4 locked by: root;
date: 2016/03/14 08:08:13; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 12:23:51; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 12:02:43; author: root; state: Exp; lines: +4 -0
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 11:42:45; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.25
branch:
locks: strict
root: 1.25
access list:
symbolic names:
keyword substitution: kv
total revisions: 25; selected revisions: 25
description:
This cleanup() is use to remove the driver from kernel.
—————————-
revision 1.25 locked by: root;
date: 2016/03/11 12:23:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.24
date: 2016/03/11 12:02:38; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/11 09:02:12; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/11 08:56:27; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/11 06:56:41; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/11 06:53:14; author: root; state: Exp; lines: +1 -0
declare the variable i.
—————————-
revision 1.19
date: 2016/03/11 06:52:45; author: root; state: Exp; lines: +4 -1
Delete all the node.
—————————-
revision 1.18
date: 2016/03/10 09:19:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/10 09:18:30; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/10 09:15:18; author: root; state: Exp; lines: +1 -0
Delete the structure and free the memory.
—————————-
revision 1.15
date: 2016/03/10 08:55:35; author: root; state: Exp; lines: +1 -0
Free the memory which assign to through kmalloc to dev struct.
—————————-
revision 1.14
date: 2016/03/10 05:52:43; author: root; state: Exp; lines: +2 -1
Here cahnge the 2nd argument we define in macro and provide the macro inside the unregister_region().
—————————-
revision 1.13
date: 2016/03/10 05:43:17; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/10 05:41:19; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/10 05:25:38; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/09 09:55:53; author: root; state: Exp; lines: +1 -1
Provide the devid variable insid the unregister_chrdev_region().
No. of devices.
—————————-
revision 1.9
date: 2016/03/09 09:36:05; author: root; state: Exp; lines: +2 -1
change the registeration process.
Now we register our driver through new call.
here we declare dev_t type variable.
2nd argument is no. of devices in starting we put one.
—————————-
revision 1.8
date: 2016/03/09 09:14:16; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 09:08:45; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 08:59:12; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 08:47:55; author: root; state: Exp; lines: +1 -0
Unregister the driver through unregister().
Here frist argument is major number and second command is name of the driver.
—————————-
revision 1.4
date: 2016/03/08 02:39:06; author: root; state: Exp; lines: +1 -1
Provide space between kern_info and “” statements.
—————————-
revision 1.3
date: 2016/03/06 04:18:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/06 04:14:09; author: root; state: Exp; lines: +1 -1
Now we set the priority of our driver by kern_info.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: file_opr.h,v
Working file: file_opr.h
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
Here change the routine of open file.
Now file open though our routine.
—————————-
revision 1.2 locked by: root;
date: 2016/03/11 10:57:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:46:22; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
root: 1.16
access list:
symbolic names:
keyword substitution: kv
total revisions: 16; selected revisions: 16
description:
Here all the libraray include which are use in basic driver program.
—————————-
revision 1.16 locked by: root;
date: 2016/03/11 12:23:33; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/11 10:54:46; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.14
date: 2016/03/11 10:53:09; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/11 06:28:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/11 06:25:49; author: root; state: Exp; lines: +1 -0
Add the header file modules_param.h
—————————-
revision 1.11
date: 2016/03/10 09:00:21; author: root; state: Exp; lines: +1 -0
Add the libaray cdev.h
—————————-
revision 1.10
date: 2016/03/10 08:59:40; author: root; state: Exp; lines: +1 -0
Add the library slab.h
—————————-
revision 1.9
date: 2016/03/10 08:56:07; author: root; state: Exp; lines: +14 -0
Add thr struct dev inside the header.h
—————————-
revision 1.8
date: 2016/03/10 05:12:58; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/09 10:40:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/09 10:35:34; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/09 09:44:07; author: root; state: Exp; lines: +0 -1
Remove the extern file inside the header.h
—————————-
revision 1.4
date: 2016/03/09 09:38:38; author: root; state: Exp; lines: +1 -1
Add the new extern dev_t majorno variable.
—————————-
revision 1.3
date: 2016/03/09 09:08:51; author: root; state: Exp; lines: +1 -0
define the major no. in the header.
Also provide the type .
—————————-
revision 1.2
date: 2016/03/09 08:48:58; author: root; state: Exp; lines: +1 -0
Add the new libraray #include<kernel/fs.h>
—————————-
revision 1.1
date: 2016/03/04 10:28:51; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: insert.c,v
Working file: insert.c
head: 1.51
branch:
locks: strict
root: 1.51
access list:
symbolic names:
keyword substitution: kv
total revisions: 51; selected revisions: 51
description:
This insert_driver() is use to insert the driver into the kernel.
—————————-
revision 1.51 locked by: root;
date: 2016/03/11 12:02:40; author: root; state: Exp; lines: +12 -0
*** empty log message ***
—————————-
revision 1.50
date: 2016/03/11 10:56:23; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.49
date: 2016/03/11 10:55:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.48
date: 2016/03/11 10:51:01; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.47
date: 2016/03/11 09:02:14; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.46
date: 2016/03/11 06:51:06; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.45
date: 2016/03/11 06:50:14; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.44
date: 2016/03/11 06:48:47; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.43
date: 2016/03/11 06:44:06; author: root; state: Exp; lines: +15 -12
Add the mkdev().
Print the value of devices which are connected to it.
—————————-
revision 1.42
date: 2016/03/11 06:26:12; author: root; state: Exp; lines: +1 -0
Declare the modules_param().
—————————-
revision 1.41
date: 2016/03/11 06:12:25; author: root; state: Exp; lines: +7 -2
Check the kernal if it crush then safely out.
—————————-
revision 1.40
date: 2016/03/11 06:02:51; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.39
date: 2016/03/11 05:48:05; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.38
date: 2016/03/11 05:46:49; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.37
date: 2016/03/10 09:52:22; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.36
date: 2016/03/10 09:49:21; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.35
date: 2016/03/10 09:40:54; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.34
date: 2016/03/10 09:34:58; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.33
date: 2016/03/10 09:32:03; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.32
date: 2016/03/10 09:23:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.31
date: 2016/03/10 09:22:50; author: root; state: Exp; lines: +2 -0
We cross check the program.
—————————-
revision 1.30
date: 2016/03/10 09:19:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.29
date: 2016/03/10 09:17:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.28
date: 2016/03/10 09:17:21; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.27
date: 2016/03/10 09:15:41; author: root; state: Exp; lines: +6 -4
Call the memset().
Call the cdev_init().
Call the cdev_add().
—————————-
revision 1.26
date: 2016/03/10 09:03:11; author: root; state: Exp; lines: +1 -0
Declare the variable of dev inside it.
—————————-
revision 1.25
date: 2016/03/10 08:56:32; author: root; state: Exp; lines: +7 -0
Malloc the memory for dev struct through kmalloc.
It takes two arguments frist type or bit o memory and 2nd is flag.
—————————-
revision 1.24
date: 2016/03/10 08:36:18; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.23
date: 2016/03/10 08:34:18; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.22
date: 2016/03/10 06:20:52; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.21
date: 2016/03/10 06:17:13; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.20
date: 2016/03/10 06:15:15; author: root; state: Exp; lines: +6 -6
*** empty log message ***
—————————-
revision 1.19
date: 2016/03/10 06:11:27; author: root; state: Exp; lines: +6 -4
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/10 06:03:04; author: root; state: Exp; lines: +2 -3
Delete the majorno and minorno variable and declare it into the macro.h
Delete the dev_t devid and declare it into the macro.h
—————————-
revision 1.17
date: 2016/03/10 05:53:26; author: root; state: Exp; lines: +3 -1
Here declare the libraray #include”macro.h”.
We spacifie the macro inside the function.
—————————-
revision 1.16
date: 2016/03/09 10:24:50; author: root; state: Exp; lines: +1 -1
Pass the address.
—————————-
revision 1.15
date: 2016/03/09 10:23:00; author: root; state: Exp; lines: +1 -1
Here we use alloc_chrdev_region().
Now pass the argument where the minor no. startup and no. of devices.
—————————-
revision 1.14
date: 2016/03/09 10:01:33; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/09 09:58:32; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/09 09:56:35; author: root; state: Exp; lines: +3 -4
Add the dev_t variable and inside the register_chrdev_region().
Print the majar no. and minor no.
—————————-
revision 1.11
date: 2016/03/09 09:48:56; author: root; state: Exp; lines: +1 -1
Add the argument which tell no. of devices.
—————————-
revision 1.10
date: 2016/03/09 09:46:41; author: root; state: Exp; lines: +1 -1
Aplly condition to check the registeration through register_chrdev_region.
—————————-
revision 1.9
date: 2016/03/09 09:46:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/09 09:42:29; author: root; state: Exp; lines: +3 -3
Decalre a integer variable which name is mano.(major no.).
—————————-
revision 1.7
date: 2016/03/09 09:39:01; author: root; state: Exp; lines: +16 -3
Call the register_chrdev_region().
The frist argument is dev_t type in which major no. is save and 2nd argument strore the minor number.
3rd argument is name of driver i.e in which name you register your own driver in table.
—————————-
revision 1.6
date: 2016/03/09 09:20:55; author: root; state: Exp; lines: +1 -1
Add the termination condition.
—————————-
revision 1.5
date: 2016/03/09 09:19:21; author: root; state: Exp; lines: +0 -2
Add the prototype file.
Define the struct file_operations.
—————————-
revision 1.4
date: 2016/03/09 09:09:30; author: root; state: Exp; lines: +1 -1
Here declare the mno.
—————————-
revision 1.3
date: 2016/03/09 08:56:52; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/09 08:50:51; author: root; state: Exp; lines: +6 -0
Register().
Frist arguments is major no..
So put in 0 for default case.
2nd arguments are driver name
3rd arguments are file operations.
—————————-
revision 1.1
date: 2016/03/04 10:29:25; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: macro.h,v
Working file: macro.h
head: 1.10
branch:
locks: strict
root: 1.10
access list:
symbolic names:
keyword substitution: kv
total revisions: 10; selected revisions: 10
description:
Declare a new file.Here we define the macro.
—————————-
revision 1.10 locked by: root;
date: 2016/03/11 12:23:37; author: root; state: Exp; lines: +4 -0
Add the macro of DEBUG
—————————-
revision 1.9
date: 2016/03/11 05:58:19; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/11 05:52:49; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:51:42; author: root; state: Exp; lines: +0 -4
Remove the node macro.
—————————-
revision 1.6
date: 2016/03/10 08:57:42; author: root; state: Exp; lines: +15 -0
define the variale of structure like devicesize,quantumsize,qsetsize,datasize.
—————————-
revision 1.5
date: 2016/03/10 08:41:40; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/10 06:17:15; author: root; state: Exp; lines: +0 -3
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/10 06:06:02; author: root; state: Exp; lines: +10 -0
Here declare the minorno and majorno .
We also declare dev_t devid variable.
—————————-
revision 1.2
date: 2016/03/10 05:56:12; author: root; state: Exp; lines: +1 -1
Defile the value of nod.
—————————-
revision 1.1
date: 2016/03/10 05:54:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: opendev.c,v
Working file: opendev.c
head: 1.9
branch:
locks: strict
root: 1.9
access list:
symbolic names:
keyword substitution: kv
total revisions: 9; selected revisions: 9
description:
Here open the device.
release the device.
—————————-
revision 1.9 locked by: root;
date: 2016/03/14 10:24:30; author: root; state: Exp; lines: +0 -4
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/14 10:17:23; author: root; state: Exp; lines: +5 -1
And operataion perform.
—————————-
revision 1.7
date: 2016/03/14 08:08:03; author: root; state: Exp; lines: +3 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/11 12:23:49; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/11 12:03:53; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/11 12:02:41; author: root; state: Exp; lines: +7 -1
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/11 11:41:49; author: root; state: Exp; lines: +22 -2
Call the trim function which use to overwrite data.
—————————-
revision 1.2
date: 2016/03/11 10:51:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:04:55; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.12
branch:
locks: strict
root: 1.12
access list:
symbolic names:
keyword substitution: kv
total revisions: 12; selected revisions: 12
description:
—————————-
revision 1.12 locked by: root;
date: 2016/03/11 12:23:50; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/11 11:50:42; author: root; state: Exp; lines: +1 -1
Defination of the trimdev().
—————————-
revision 1.10
date: 2016/03/11 11:42:31; author: root; state: Exp; lines: +1 -0
Add the int trimdev().
—————————-
revision 1.9
date: 2016/03/11 06:44:38; author: root; state: Exp; lines: +1 -1
Add the dev_t devno.
—————————-
revision 1.8
date: 2016/03/11 06:02:54; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 05:57:57; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/10 09:16:24; author: root; state: Exp; lines: +1 -1
Add the pointer structre.
—————————-
revision 1.5
date: 2016/03/10 09:03:33; author: root; state: Exp; lines: +1 -0
Add the variable of dev.\
—————————-
revision 1.4
date: 2016/03/10 08:37:52; author: root; state: Exp; lines: +2 -0
Add the two variables.
—————————-
revision 1.3
date: 2016/03/09 09:57:27; author: root; state: Exp; lines: +1 -1
Add the variable chrdev.
—————————-
revision 1.2
date: 2016/03/09 09:44:25; author: root; state: Exp; lines: +1 -0
Add the extern file
Declare the major no. inside the prototype.h.
—————————-
revision 1.1
date: 2016/03/09 09:14:21; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: releasedev.c,v
Working file: releasedev.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
release the device.
—————————-
revision 1.3 locked by: root;
date: 2016/03/11 12:02:42; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 10:07:03; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 10:05:34; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: trimdev.c,v
Working file: trimdev.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:

 

Posted in Uncategorized | Leave a comment

char_driver

logfile

Posted in Uncategorized | Leave a comment

KERNEL MODULE vs APPLICATION

 

Difference between kernel module and application program.

  KERNEL MODULE                                                APPLICATION

1.Register itself to serve the future Request.

1.Perform a single task from beginning to end.

2.Not Lazy at releasing resources. it perform the cleanup fun altogether. exit undo everything init do.

2.Lazy at releasing resources

3.Lack of Floating point support.

3.Floating point support.

4.No Library support

4.There is glib c library.

5.Error can at least kill the current program if not the whole system.

5.Error not cause tremendous problems.

6.Run in kernel space.

6.Application runs in user space.

7.Concurrency is Important as many thing happenings frequently. at same time.

7.not much apart from MultiThreading. program run

8.not in virtual memory. so limited size of stack of (4 KB)

8.are laid out in virtual memory so large size of stack

9.Memory is not swap-able

9.User Memory is swap-able.

 

 

Posted in Device Drivers | Leave a comment

DATA TYPE : dev_t

dev_t data type :
*Kernel data type to represent a major / minor number pair

*Also called a device number.

*Defined in <linux/kdev_t.h>

*In Linux bit size is (major: 12 bits, minor: 20 bits)

*Macro to compose the device number:

MKDEV(int major, int minor);

*Macro to extract the minor and major numbers:

MAJOR(dev_t dev);
MINOR(dev_t dev);

Posted in Device Drivers, Linux Internals and System Programming | Leave a comment

client-server program using AF_UNIX

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
This is the base header file for the Project
—————————-
revision 1.1 locked by: root;
date: 2016/04/03 15:35:50; author: root; state: Exp;
Initial revision
=============================================================================RCS file: req_client.c,v
Working file: req_client.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
This is the requesting client …sending request to the server.
Has socket() to creat the socket.
Has the connect() to connect to the server.
—————————-
revision 1.2 locked by: root;
date: 2015/06/18 09:04:22; author: root; state: Exp; lines: +7 -1
client has entered some data …into the buffer…and send that buffer through the socket file discriptor.
write()is used to wrote data
—————————-
revision 1.1
date: 2015/06/18 07:20:19; author: root; state: Exp;
Initial revision
=============================================================================RCS file: srvr.c,v
Working file: srvr.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
this is my server program for socket programming.
this includes socket()to create the socket and returns file discriptor.
then there is bind call to name the socket created.
—————————-
revision 1.4 locked by: root;
date: 2016/01/29 08:41:59; author: root; state: Exp; lines: +36 -25
Used remove instead of unlink
used strncpy insted of strcpy to maintain the portability.
—————————-
revision 1.3
date: 2015/06/18 09:05:59; author: root; state: Exp; lines: +16 -2
the data accepted by the accept()call .
read and print the data
—————————-
revision 1.2
date: 2015/06/18 06:37:40; author: root; state: Exp; lines: +27 -7
Created listen() to listen the accept and given backlog value as 10.that is listen queue size
created accept() to accept the request of the client
—————————-
revision 1.1
date: 2015/06/18 05:55:53; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Project 03: Client Server Communication using Linux and IPC, Project 04: FTP based Client Server using Threads and Sockets | Leave a comment

Multiple Client server program using Thread,Pipes and signals

RCS file: ./header.h,v
Working file: ./header.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
This is the header file
—————————-
revision 1.1 locked by: root;
date: 2015/08/11 18:20:29; author: root; state: Exp;
Initial revision
=============================================================================RCS file: server.c,v
Working file: server.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
This is the server
—————————-
revision 1.2 locked by: root;
date: 2015/09/01 09:01:10; author: root; state: Exp; lines: +12 -4
Included comments
—————————-
revision 1.1
date: 2015/08/11 18:20:38; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment

CAUSE OF CONCURRENCY

********************Cause of Concurrency*********************

–>Interrupts : An interrupt can occur asynchronously at almost any time, interrupting the currently executing code.

–>Softirqs and tasklets : The kernel can raise or schedule a softirq or tasklet at almost any time, interrupting the currently executing code.

–>Kernel preemption : Because the kernel is preemptive, one task in the kernel can preempt another.

–>Sleeping and synchronization with user-space : A task in the kernel can sleep and thus invoke the scheduler, resulting in the running of a new process.

–>Symmetrical multiprocessing : Two or more processors can execute kernel code at exactly the same time.

Posted in Linux Internals and System Programming | Leave a comment

char driver ioctl

summary
1-kernel documentation .txt file if not available in path usr/src/kernel/kernel version/documentation
then search online http:kernel.org/doc
2-prototype of unlocked ioctl is in fs.h file
3-_IO _IOR etc is available in path
usr/src/kernel/kernel version/include/uapi/asm-generic -ioctl.h
4.in user space second arrgument of ioctl should be macro of _IO _IOR etc

//////////////////////////////////////////////////////////////////////////////////
RCS file: ioctloperation.c,v
Working file: ioctloperation.c
head: 1.6
branch:
locks: strict
root: 1.6
access list:
symbolic names:
keyword substitution: kv
total revisions: 6; selected revisions: 6
description:
choce the fuction by switch statement
—————————-
revision 1.6 locked by: root;
date: 2016/03/31 19:11:28; author: root; state: Exp; lines: +1 -2
chang argumment back int to long int
—————————-
revision 1.5
date: 2016/03/31 19:08:11; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/31 18:55:06; author: root; state: Exp; lines: +9 -0
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/31 18:16:02; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/31 18:15:24; author: root; state: Exp; lines: +9 -9
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/31 18:03:35; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: ioctldev.c,v
Working file: ioctldev.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
make function ioctl print its parameters
—————————-
revision 1.2 locked by: root;
date: 2016/03/31 18:53:25; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/31 18:51:37; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: app.c,v
Working file: app.c
head: 1.63
branch:
locks: strict
root: 1.63
access list:
symbolic names:
keyword substitution: kv
total revisions: 63; selected revisions: 63
description:
—————————-
revision 1.63 locked by: root;
date: 2016/03/31 18:02:57; author: root; state: Exp; lines: +7 -8
add iocltl option
—————————-
revision 1.62
date: 2016/03/28 09:10:58; author: root; state: Exp; lines: +0 -1
remove write
—————————-
revision 1.61
date: 2016/03/28 05:30:49; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.60
date: 2016/03/26 10:45:24; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.59
date: 2016/03/26 10:19:56; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.58
date: 2016/03/26 10:16:28; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.57
date: 2016/03/25 17:45:23; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.56
date: 2016/03/25 12:45:46; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.55
date: 2016/03/25 11:51:09; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.54
date: 2016/03/25 11:41:12; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.53
date: 2016/03/25 09:58:25; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.52
date: 2016/03/25 09:57:26; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.51
date: 2016/03/25 09:57:02; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.50
84,1 Top

Posted in Uncategorized | Leave a comment

HIGH AND LOW MEMORY

==============HIGH AND LOW MEMORY================
High Memory : Memory for which logical addresses do not exist,
because it is beyond the address range set aside for kernel virtual
addresses.

Low Memory : Memory for which logical addresses exist in kernel space.
On almost every system you will likely encounter, all memory is low
memory.

Posted in Linux Internals and System Programming | Leave a comment

char driver

—————————-
revision 1.3
date: 2016/03/11 17:34:14;  author: root;  state: Exp;  lines: +5 -0
*** empty log message ***
—————————-
revision 1.2
date: 2016/03/11 17:29:28;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/11 06:36:04;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.20
branch:
locks: strict
root: 1.20
access list:
symbolic names:
keyword substitution: kv
total revisions: 20;    selected revisions: 20
description:
—————————-
revision 1.20   locked by: root;
date: 2016/03/30 11:28:43;  author: root;  state: Exp;  lines: +1 -0
add sched here TASK_NORMAL macros are define
—————————-
revision 1.19
date: 2016/03/30 10:39:42;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.18
date: 2016/03/30 09:13:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.17
date: 2016/03/28 10:05:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.16
date: 2016/03/28 10:05:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.15
date: 2016/03/28 10:04:15;  author: root;  state: Exp;  lines: +2 -0
add semaphore header file
—————————-
revision 1.14
date: 2016/03/16 08:11:58;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.13
date: 2016/03/15 19:12:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2016/03/15 19:12:31;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2016/03/15 18:12:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2016/03/15 18:12:15;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2016/03/15 18:11:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2016/03/15 18:10:40;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2016/03/11 06:17:31;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2016/03/11 05:46:03;  author: root;  state: Exp;  lines: +3 -0
*** empty log message ***
—————————-
revision 1.5
date: 2016/03/10 05:45:16;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.4
date: 2016/03/09 15:23:14;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.3
date: 2016/03/09 14:48:15;  author: root;  state: Exp;  lines: +1 -0
add linux.slab.h for kmalloc.h
—————————-
revision 1.2
date: 2016/03/09 14:22:38;  author: root;  state: Exp;  lines: +1 -1
add declare into header.h
—————————-
revision 1.1
date: 2016/03/04 11:38:30;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: headermain.h,v
Working file: headermain.h
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;     selected revisions: 2
description:
—————————-
revision 1.2    locked by: root;
date: 2016/03/19 09:11:37;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2016/03/19 09:10:37;  author: root;  state: Exp;
Initial revision
3013,1        99%

Posted in Uncategorized | Leave a comment