<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EmbLogic &#187; Shubham Gupta</title>
	<atom:link href="https://www.emblogic.com/blog/author/gishubhamgi/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.emblogic.com/blog</link>
	<description>Embedded System and ARM Training</description>
	<lastBuildDate>Tue, 03 Mar 2020 13:00:06 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Shell Script for Character_Device_Driver</title>
		<link>https://www.emblogic.com/blog/01/shell-script-for-character_device_driver/</link>
		<comments>https://www.emblogic.com/blog/01/shell-script-for-character_device_driver/#comments</comments>
		<pubDate>Sun, 31 Jan 2016 05:25:45 +0000</pubDate>
		<dc:creator><![CDATA[Shubham Gupta]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13208</guid>
		<description><![CDATA[#! /bin/bash cheakout_l() { echo &#8220;Do you want to look the all file for further editing [y/n]&#8221; read responce if [ $responce='y' ] then for file in $(ls *.h,v *.c,v) do co -l $file done fi make clean exit 0 &#8230; <a href="https://www.emblogic.com/blog/01/shell-script-for-character_device_driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>#! /bin/bash<br />
cheakout_l()<br />
{<br />
        echo &#8220;Do you want to look the all file for further editing [y/n]&#8221;<br />
        read responce<br />
        if [ $responce='y' ]<br />
        then<br />
                for file in $(ls *.h,v *.c,v)<br />
        do<br />
                co -l $file<br />
        done<br />
        fi<br />
        make clean<br />
        exit 0<br />
}<br />
cheakin()<br />
{<br />
        for file in $(ls *.h *.c)<br />
        do<br />
                ci $file<br />
        done<br />
}<br />
cheakout()<br />
{<br />
        for file in $(ls *.h,v *.c,v)<br />
        do<br />
                co $file<br />
        done<br />
}<br />
insert()<br />
{</p>
<p>        insmod ./modules/My_Char_Driver.ko NOD=3<br />
  echo &#8220;Do you want to print the proc devices table [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                cat /proc/devices<br />
        fi<br />
        echo &#8220;Do you want to print the dmesg [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                dmesg #-c<br />
        fi<br />
}<br />
remove()<br />
{<br />
        rmmod ./modules/My_Char_Driver.ko<br />
        echo &#8220;Do you want to print the proc devices table [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                cat /proc/devices<br />
        fi<br />
        echo &#8220;Do you want to print the dmesg [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                dmesg #-c<br />
        fi<br />
}<br />
runapps()<br />
{<br />
        echo &#8220;Do you want to compile application [y/n] &#8221;<br />
 then<br />
                if ( make -f Makeapps )<br />
                then<br />
                        echo &#8220;Application make successfully&#8221;<br />
                        ./apps<br />
                else<br />
                        remove<br />
                        un_link<br />
                        cheakout_l<br />
                fi<br />
        fi<br />
}<br />
major_n()<br />
{<br />
        echo &#8220;Enter the major_no&#8221;<br />
        read major_no<br />
}<br />
node()<br />
{<br />
        echo &#8220;Do you want to create node the node [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                mknod NODE c $major_no 0<br />
        fi<br />
}<br />
un_link()<br />
{<br />
        echo &#8220;Do you want to unlink the node [y/n] &#8221;<br />
        read responce<br />
        if [ $responce = 'y' ]<br />
        then<br />
                unlink NODE<br />
        fi<br />
}<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-script start&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
echo &#8220;Do you want to cheakin and cheakout [a/b] &#8221;<br />
        read responce<br />
        if [ $responce = 'a' ]<br />
        then<br />
                cheakin<br />
                cheakout<br />
        else<br />
                unlink NODE<br />
                cheakout_l<br />
        fi</p>
<p>echo &#8220;Do you want to compile the char_driver [y/n] &#8221;<br />
read responce<br />
if [ $responce = 'y' ]<br />
then<br />
        if ( make )<br />
        then<br />
                echo &#8220;make successfully&#8221;<br />
                echo &#8220;Do you want to insert the char_driver [y/n] &#8221;<br />
                read responce<br />
                if [ $responce = 'y' ]<br />
                then<br />
    then<br />
                        insert<br />
                        major_n<br />
                        node<br />
                        runapps<br />
                else<br />
                        cheakout_l<br />
                fi<br />
                echo &#8220;Do you want to remove the char_driver [y/n] &#8221;<br />
                read responce<br />
                if [ $responce = 'y' ]<br />
                then<br />
                        remove<br />
                        un_link<br />
                else<br />
                        cheakout_l<br />
                fi<br />
        else<br />
                echo &#8220;make failed&#8221;<br />
        fi<br />
else<br />
                echo &#8220;Ok bye bye&#8221;<br />
                cheakout_l<br />
fi</p>
<p>cheakout_l<br />
                                                                                                                    150,9         Bot</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/shell-script-for-character_device_driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character_Device Driver</title>
		<link>https://www.emblogic.com/blog/01/character_device-driver/</link>
		<comments>https://www.emblogic.com/blog/01/character_device-driver/#comments</comments>
		<pubDate>Sun, 31 Jan 2016 05:02:55 +0000</pubDate>
		<dc:creator><![CDATA[Shubham Gupta]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=13203</guid>
		<description><![CDATA[RCS file: application.c,v Working file: application.c head: 1.7 branch: locks: strict emblogic: 1.7 access list: symbolic names: keyword substitution: kv total revisions: 7; selected revisions: 7 description: This is a application.c file In this file control the all applications(read,write,lseek) And &#8230; <a href="https://www.emblogic.com/blog/01/character_device-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: application.c,v<br />
Working file: application.c<br />
head: 1.7<br />
branch:<br />
locks: strict<br />
        emblogic: 1.7<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 7;     selected revisions: 7<br />
description:<br />
This is a application.c file<br />
In this file control the all applications(read,write,lseek)<br />
And calling the all function.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7    locked by: emblogic;<br />
date: 2016/01/28 07:48:54;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/28 07:43:24;  author: emblogic;  state: Exp;  lines: +1 -1<br />
mainmenu call in loop<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/28 07:40:08;  author: emblogic;  state: Exp;  lines: +3 -3<br />
first call the writer<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/28 07:37:16;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
revision 1.2<br />
date: 2016/01/28 06:55:43;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/28 06:28:04;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: clean.c,v<br />
Working file: clean.c<br />
head: 1.35<br />
branch:<br />
locks: strict<br />
        emblogic: 1.35<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 36;    selected revisions: 36<br />
description:<br />
This is a clean.c file.<br />
In this file unregister the driver in the kernel.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35   locked by: emblogic;<br />
date: 2016/01/22 04:33:11;  author: emblogic;  state: Exp;  lines: +0 -2<br />
remove the comments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2016/01/21 09:07:11;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2016/01/21 08:36:40;  author: emblogic;  state: Exp;  lines: +2 -0<br />
revision 1.12<br />
date: 2016/01/08 11:08:26;  author: emblogic;  state: Exp;  lines: +1 -1<br />
Disconnect the struct cdev from device table by cdev_del(struct cdev*).<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/01/08 08:26:06;  author: emblogic;  state: Exp;  lines: +1 -1<br />
put the camments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/01/08 07:50:20;  author: emblogic;  state: Exp;  lines: +3 -3<br />
use datatype in extern statement<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/01/08 07:46:56;  author: emblogic;  state: Exp;  lines: +14 -1<br />
replace the unregister _chrdev function to unregister_chrdev_region<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/07 12:05:47;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/01/07 12:01:14;  author: emblogic;  state: Exp;  lines: +1 -0<br />
printk statement in if condition<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/07 10:47:07;  author: emblogic;  state: Exp;  lines: +1 -1<br />
Add the macro DEV_NAME.<br />
,<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Add the macro DEV_NAME.<br />
,<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/07 09:50:39;  author: emblogic;  state: Exp;  lines: +1 -1<br />
use extern in major_no<br />
,<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/07 09:38:17;  author: emblogic;  state: Exp;  lines: +1 -1<br />
declare the mojor_no in declaration.h file using extern.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/07 06:50:54;  author: emblogic;  state: Exp;  lines: +1 -1<br />
remove the spelling mistake<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/07 06:48:38;  author: emblogic;  state: Exp;  lines: +1 -1<br />
remove the spelling mistake<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/07 06:21:38;  author: emblogic;  state: Exp;<br />
Initial revision<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31.1.1<br />
date: 2016/01/10 10:30:20;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
RCS file: create_scull.c,v<br />
Working file: create_scull.c<br />
head: 1.11<br />
branch:<br />
locks: strict<br />
        emblogic: 1.11<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 11;    selected revisions: 11<br />
description:<br />
This is a creatr_scull.c file<br />
in this file allcate the linklist foe Qset(number of items)<br />
and return the address of linklist(starding address of linklist)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11   locked by: emblogic;<br />
date: 2016/01/24 06:42:02;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/01/24 06:40:10;  author: emblogic;  state: Exp;  lines: +3 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/01/24 05:44:57;  author: emblogic;  state: Exp;  lines: +0 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/24 05:40:28;  author: emblogic;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
revision 1.4<br />
date: 2016/01/22 04:33:40;  author: emblogic;  state: Exp;  lines: +1 -1<br />
calculate the number of itom and design the scull<br />
firstly create itoms then after create the qsetarray and in qsetarray create the quantum for each<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/21 08:36:42;  author: emblogic;  state: Exp;  lines: +29 -13<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/21 07:17:28;  author: emblogic;  state: Exp;  lines: +85 -44<br />
create the scull<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/17 12:00:45;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: declaration.h,v<br />
Working file: declaration.h<br />
head: 1.26<br />
branch:<br />
locks: strict<br />
        emblogic: 1.26<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 26;    selected revisions: 26<br />
description:<br />
This file is declaration.h file.<br />
This file is containing the variables and constant.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26   locked by: emblogic;<br />
date: 2016/01/29 06:35:30;  author: emblogic;  state: Exp;  lines: +1 -0<br />
For syschonization operation use samaphore .<br />
Add the semaphore structure in Dev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2016/01/25 09:42:33;  author: emblogic;  state: Exp;  lines: +2 -0<br />
Add the llseek prototype<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2016/01/25 07:06:58;  author: emblogic;  state: Exp;  lines: +0 -1<br />
romove the extern qset because use only dev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2016/01/25 04:16:24;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2016/01/24 12:09:00;  author: emblogic;  state: Exp;  lines: +1 -0<br />
extern the Qset variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2016/01/24 10:10:37;  author: emblogic;  state: Exp;  lines: +1 -0<br />
Add the prototype of read call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/01/22 04:35:45;  author: emblogic;  state: Exp;  lines: +3 -15<br />
revision 1.23<br />
date: 2016/01/25 04:16:24;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2016/01/24 12:09:00;  author: emblogic;  state: Exp;  lines: +1 -0<br />
extern the Qset variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2016/01/24 10:10:37;  author: emblogic;  state: Exp;  lines: +1 -0<br />
Add the prototype of read call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/01/22 04:35:45;  author: emblogic;  state: Exp;  lines: +3 -15<br />
remove the comments and sequence the all lines<br />
add the create scull prototype and write_dev prototype<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/01/11 08:32:24;  author: emblogic;  state: Exp;  lines: +2 -2<br />
constant structure pass in open_dec(inode,file)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2016/01/11 07:35:11;  author: emblogic;  state: Exp;  lines: +2 -0<br />
declare the open_dev function for open the device<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/01/11 06:30:14;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/01/11 04:14:02;  author: emblogic;  state: Exp;  lines: +2 -2<br />
add the NOD and NOD_T variables for take the input from terminal.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/01/10 05:18:28;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/01/10 05:13:42;  author: emblogic;  state: Exp;  lines: +1 -1<br />
remove the dev_t type variable(new_devid)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/01/08 13:41:23;  author: emblogic;  state: Exp;  lines: +4 -0<br />
revision 1.8<br />
date: 2016/01/08 13:08:50;  author: emblogic;  state: Exp;  lines: +1 -0<br />
declare the new kernel datatype dev_t new_devid.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/01/08 10:24:38;  author: emblogic;  state: Exp;  lines: +3 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/08 10:17:54;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/08 10:09:25;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/08 09:56:38;  author: emblogic;  state: Exp;  lines: +10 -0<br />
taking the structure(Qset,DEV)for scull mapping<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/08 07:19:38;  author: emblogic;  state: Exp;  lines: +1 -0<br />
Add the dev_t type variable for alloc_chrdev_region<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/07 09:40:29;  author: emblogic;  state: Exp;  lines: +1 -0<br />
declare the major_no.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/07 06:25:49;  author: emblogic;  state: Exp;<br />
RCS file: file_operation.h,v<br />
Working file: file_operation.h<br />
head: 1.6<br />
branch:<br />
locks: strict<br />
        emblogic: 1.6<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 6;     selected revisions: 6<br />
description:<br />
This file is file operation file .<br />
Its containing the all operation read,write,delete,open&#8230;.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6    locked by: emblogic;<br />
date: 2016/01/25 09:42:59;  author: emblogic;  state: Exp;  lines: +2 -1<br />
Add the llseek call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/24 11:24:20;  author: emblogic;  state: Exp;  lines: +2 -1<br />
Add the read call and maping own call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/22 04:36:36;  author: emblogic;  state: Exp;  lines: +0 -1<br />
add the trim dev function for flush the data<br />
revision 1.5<br />
date: 2016/01/24 11:24:20;  author: emblogic;  state: Exp;  lines: +2 -1<br />
Add the read call and maping own call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/22 04:36:36;  author: emblogic;  state: Exp;  lines: +0 -1<br />
add the trim dev function for flush the data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/21 07:18:21;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/17 12:04:17;  author: emblogic;  state: Exp;  lines: +3 -2<br />
add the more operation like write<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/15 09:42:07;  author: emblogic;  state: Exp;<br />
Initial revision<br />
RCS file: header_apps.h,v<br />
Working file: header_apps.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
        emblogic: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
This file is header_apps,c<br />
In this file put the all header for application<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3    locked by: emblogic;<br />
date: 2016/01/30 05:45:05;  author: emblogic;  state: Exp;  lines: +1 -1<br />
set the arguments in lseek functin<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/28 06:55:53;  author: emblogic;  state: Exp;  lines: +1 -0<br />
include the header stdlib for exit function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/28 06:29:34;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.26<br />
branch:<br />
locks: strict<br />
        emblogic: 1.26<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 26;    selected revisions: 26<br />
description:<br />
This file is a header.h file.<br />
This file is containing the all require header file and macro.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26   locked by: emblogic;<br />
date: 2016/01/29 06:36:53;  author: emblogic;  state: Exp;  lines: +1 -0<br />
include the header linex/semaphore<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2016/01/27 11:37:39;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2016/01/22 05:07:58;  author: emblogic;  state: Exp;  lines: +1 -0<br />
include the header file asm-gereric/uaccess.h for copy from user<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2016/01/22 04:37:02;  author: emblogic;  state: Exp;  lines: +3 -3<br />
Maintain the sequence the header file<br />
revision 1.22<br />
date: 2016/01/11 08:33:37;  author: emblogic;  state: Exp;  lines: +2 -0<br />
include the open and release operations<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2016/01/11 04:14:50;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/01/11 03:48:46;  author: emblogic;  state: Exp;  lines: +1 -4<br />
remove the macro PRINT<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2016/01/11 03:44:31;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2016/01/10 11:58:02;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2016/01/10 06:08:14;  author: emblogic;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2016/01/09 11:33:15;  author: emblogic;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/01/09 11:17:00;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2016/01/09 09:00:55;  author: emblogic;  state: Exp;  lines: +1 -1<br />
nod is 5<br />
;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/01/09 08:59:22;  author: emblogic;  state: Exp;  lines: +13 -1<br />
include the macro for cdev structure<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/01/09 05:34:29;  author: emblogic;  state: Exp;  lines: +1 -1<br />
for one NOD<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/01/09 04:18:45;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/01/08 11:13:43;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/01/08 11:09:52;  author: emblogic;  state: Exp;  lines: +1 -0<br />
include the moduleparam header file for cdev_init()function.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/08 09:57:32;  author: emblogic;  state: Exp;  lines: +2 -0<br />
Include the header file for kmalloc(slab.h)<br />
Include the header file for scull (cdev.h)<br />
revision 1.6<br />
date: 2016/01/07 12:06:41;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/07 12:04:05;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/07 12:02:11;  author: emblogic;  state: Exp;  lines: +3 -0<br />
Add the PRINT macro<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/07 10:32:19;  author: emblogic;  state: Exp;  lines: +2 -2<br />
Add n<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/07 10:23:27;  author: emblogic;  state: Exp;  lines: +6 -0<br />
Use the macros DEV_NAME and MINOR_NO.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/07 06:33:30;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: init.c,v<br />
Working file: init.c<br />
head: 1.62<br />
branch:<br />
locks: strict<br />
        emblogic: 1.62<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 62;    selected revisions: 62<br />
description:<br />
This file is init.c file.<br />
In this file,  insert and register the driver in the kernal.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.62   locked by: emblogic;<br />
date: 2016/01/29 11:30:00;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.61<br />
date: 2016/01/29 11:21:21;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.60<br />
date: 2016/01/29 06:37:34;  author: emblogic;  state: Exp;  lines: +1 -0<br />
declaration and initization the semaphote<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.59<br />
date: 2016/01/22 04:37:42;  author: emblogic;  state: Exp;  lines: +4 -3<br />
recall the value of devid<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
                                  revision 1.58<br />
date: 2016/01/21 09:10:57;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.57<br />
date: 2016/01/21 09:10:14;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.56<br />
date: 2016/01/21 09:07:13;  author: emblogic;  state: Exp;  lines: +7 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.55<br />
date: 2016/01/11 06:53:44;  author: emblogic;  state: Exp;  lines: +2 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.54<br />
date: 2016/01/11 06:35:30;  author: emblogic;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.53<br />
date: 2016/01/11 06:33:49;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.52<br />
date: 2016/01/11 06:30:17;  author: emblogic;  state: Exp;  lines: +2 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2016/01/09 09:43:25;  author: emblogic;  state: Exp;  lines: +2 -2<br />
replace new_devid to devid<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2016/01/09 08:37:40;  author: emblogic;  state: Exp;  lines: +11 -3<br />
add the structure elements(cdev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2016/01/09 04:22:11;  author: emblogic;  state: Exp;  lines: +1 -1<br />
correct the third arguments of cdev_add by 1<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2016/01/09 04:18:50;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2016/01/08 13:42:02;  author: emblogic;  state: Exp;  lines: +17 -15<br />
use the number of device more then one.<br />
using for loop.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2016/01/08 13:13:27;  author: emblogic;  state: Exp;  lines: +4 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2016/01/08 13:09:56;  author: emblogic;  state: Exp;  lines: +5 -0<br />
use the MKDEV macro for find out the new minor and major no.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2016/01/08 12:14:17;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
                      revision 1.26<br />
date: 2016/01/08 12:11:52;  author: emblogic;  state: Exp;  lines: +1 -0<br />
add the cdev_init ()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2016/01/08 11:55:57;  author: emblogic;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2016/01/08 11:54:03;  author: emblogic;  state: Exp;  lines: +4 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2016/01/08 11:32:48;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2016/01/08 11:24:02;  author: emblogic;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2016/01/08 11:11:01;  author: emblogic;  state: Exp;  lines: +10 -1<br />
added the struct cdev in device table by cdev_add() function.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/01/08 10:38:07;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***added the struct cdev in device table by cdev_add() function.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2016/01/08 10:38:07;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2016/01/08 10:33:14;  author: emblogic;  state: Exp;  lines: +1 -0<br />
useing memset for flush the scull<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2016/01/08 10:24:40;  author: emblogic;  state: Exp;  lines: +9 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2016/01/08 10:12:54;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2016/01/08 10:06:00;  author: emblogic;  state: Exp;  lines: +2 -1<br />
decl. the struct Dev *dev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2016/01/08 09:59:20;  author: emblogic;  state: Exp;  lines: +1 -0<br />
Get the memory in kernel by kmalloc with GFP_kernel(get memory page in kernel);<br />
revision 1.14<br />
date: 2016/01/08 08:26:17;  author: emblogic;  state: Exp;  lines: +11 -9<br />
put the camments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2016/01/08 08:06:54;  author: emblogic;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/01/08 07:51:50;  author: emblogic;  state: Exp;  lines: +1 -1<br />
print the minor_no<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/01/08 07:23:55;  author: emblogic;  state: Exp;  lines: +27 -2<br />
Change the register_chrdev to alloc_chrdev_region due to some region<br />
1&gt;in the alloc_chrdev_region no required file operation(fops) arguments.<br />
2&gt;Register_chrdev not cheak the preinstall driver.<br />
3&gt;so alwayes register the driver<br />
register_chrdev perform in all kernel version but allco_chrdev perform only 2.6.1 to up to date kernial version.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2016/01/07 12:05:50;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2016/01/07 12:02:32;  author: emblogic;  state: Exp;  lines: +3 -0<br />
printk statement in if condition<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/07 11:19:17;  author: emblogic;  state: Exp;  lines: +7 -0<br />
print the error message<br />
revision 1.9<br />
date: 2016/01/07 12:02:32;  author: emblogic;  state: Exp;  lines: +3 -0<br />
printk statement in if condition<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/07 11:19:17;  author: emblogic;  state: Exp;  lines: +7 -0<br />
print the error message<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/01/07 10:47:32;  author: emblogic;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/07 10:24:20;  author: emblogic;  state: Exp;  lines: +2 -1<br />
Put the macro DEV_NAME,and MOJOR_NO.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/07 10:09:50;  author: emblogic;  state: Exp;  lines: +2 -1<br />
use __init in initization function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/07 09:48:06;  author: emblogic;  state: Exp;  lines: +1 -0<br />
Add the declaration header file.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/07 09:40:49;  author: emblogic;  state: Exp;  lines: +1 -1<br />
declare the major_no in declaretion.h file using extern.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/07 06:44:44;  author: emblogic;  state: Exp;  lines: +1 -1<br />
Add the file_operation header file<br />
RCS file: lseek.c,v<br />
Working file: lseek.c<br />
head: 1.7<br />
branch:<br />
locks: strict<br />
        emblogic: 1.7<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 7;     selected revisions: 7<br />
description:<br />
This is a lseek.c file<br />
in this file chande the cursior position in reqire position<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7    locked by: emblogic;<br />
date: 2016/01/30 05:58:42;  author: emblogic;  state: Exp;  lines: +0 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/30 05:56:29;  author: emblogic;  state: Exp;  lines: +17 -14<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/30 05:45:35;  author: emblogic;  state: Exp;  lines: +21 -12<br />
catch the fd in arguments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: main_menu.c,v<br />
Working file: main_menu.c<br />
head: 1.4<br />
branch:<br />
locks: strict<br />
        emblogic: 1.4<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 4;     selected revisions: 4<br />
description:<br />
This file is main_menu.c<br />
In this file collect the choice from user and rand applicaion file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4    locked by: emblogic;<br />
date: 2016/01/28 07:19:19;  author: emblogic;  state: Exp;  lines: +1 -1<br />
return choice<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: open.c,v<br />
Working file: open.c<br />
head: 1.13<br />
branch:<br />
locks: strict<br />
        emblogic: 1.13<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 13;    selected revisions: 13<br />
description:<br />
This is open.c file<br />
In this file try to open the application own manor<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13   locked by: emblogic;<br />
date: 2016/01/29 11:08:04;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2016/01/23 12:55:07;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2016/01/22 04:38:11;  author: emblogic;  state: Exp;  lines: +3 -2<br />
calling the trim_dev function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2016/01/17 12:04:42;  author: emblogic;  state: Exp;  lines: +8 -0<br />
calling the function trim_dev for removing the previous data in device file and cheak the condition on device that data is avilable in device<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2016/01/11 11:49:22;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2016/01/11 11:12:25;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/11 10:00:11;  author: emblogic;  state: Exp;  lines: +8 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2016/01/11 09:39:21;  author: emblogic;  state: Exp;  lines: +4 -1<br />
use container_of macro .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/11 08:34:13;  author: emblogic;  state: Exp;  lines: +4 -3<br />
                                                                                      RCS file: reader.c,v<br />
Working file: reader.c<br />
head: 1.27<br />
branch:<br />
locks: strict<br />
        emblogic: 1.27<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 27;    selected revisions: 27<br />
description:<br />
This is a reader .c file<br />
revision 1.2<br />
date: 2016/01/11 09:41:25;  author: emblogic;  state: Exp;  lines: +16 -6<br />
this ia application file<br />
open the node in readonly made and print the fd<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: reader_dev.c,v<br />
Working file: reader_dev.c<br />
head: 1.51<br />
branch:<br />
locks: strict<br />
        emblogic: 1.51<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 51;    selected revisions: 51<br />
description:<br />
This is a reader_dev.c file<br />
In this file read the data from kernel and stor the data in user space in reader.c file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.51   locked by: emblogic;<br />
date: 2016/01/30 05:56:34;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.50<br />
date: 2016/01/30 05:46:17;  author: emblogic;  state: Exp;  lines: +1 -1<br />
use return ERESTARTSYS<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.49<br />
date: 2016/01/30 05:16:14;  author: emblogic;  state: Exp;  lines: +1 -1<br />
remove the if in semaphore<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.48<br />
date: 2016/01/30 04:55:38;  author: emblogic;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;revision 1.42<br />
date: 2016/01/29 06:38:21;  author: emblogic;  state: Exp;  lines: +2 -0<br />
use the semaphore and release the variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.41<br />
date: 2016/01/28 08:07:56;  author: emblogic;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.40<br />
date: 2016/01/27 11:53:17;  author: emblogic;  state: Exp;  lines: +1 -0<br />
catch the data from private data to ldev<br />
and link with dev structure qset variable<br />
and fatch the data from dev-&gt;data_size and put in lsize<br />
maintain the while loop according to nocsw<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2016/01/25 07:34:44;  author: emblogic;  state: Exp;  lines: +9 -4<br />
catch the address from private data to ldev and pass in copy to suer macro<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: release.c,v<br />
Working file: release.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
        emblogic: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
This file is release.c file<br />
In this file release the application own manor<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: seek_dev.c,v<br />
Working file: seek_dev.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
        emblogic: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
This is seek_dev file<br />
In this file llseek operation perform<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3    locked by: emblogic;<br />
date: 2016/01/25 09:52:04;  author: emblogic;  state: Exp;  lines: +1 -1<br />
Add the formal arguments<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/25 09:47:03;  author: emblogic;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/25 09:45:06;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================RCS file: trim_dev.c,v<br />
Working file: trim_dev.c<br />
head: 1.20<br />
branch:<br />
locks: strict<br />
        emblogic: 1.20<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 20;    selected revisions: 20<br />
description:<br />
this is a trim_dev.c file<br />
In this file removing the previous data in device<br />
triming started<br />
In this file dealocate the memory (scull)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/22 04:39:25;  author: emblogic;  state: Exp;  lines: +12 -11<br />
Put the header file on top and remove the undeclaration error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
RCS file: writer.c,v<br />
Working file: writer.c<br />
head: 1.24<br />
branch:<br />
locks: strict<br />
        emblogic: 1.24<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 24;    selected revisions: 24<br />
description:<br />
This file is writer .c<br />
file<br />
in this file open the node for connect the application and vfs<br />
revision 1.3<br />
date: 2016/01/11 09:42:32;  author: emblogic;  state: Exp;  lines: +15 -6<br />
This is a application file<br />
open the node in write only mode and print the fd<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2016/01/11 08:38:17;  author: emblogic;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2016/01/11 06:54:51;  author: emblogic;  state: Exp;<br />
Initial revision<br />
RCS file: writer_dev.c,v<br />
Working file: writer_dev.c<br />
head: 1.46<br />
branch:<br />
locks: strict<br />
        emblogic: 1.46<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 46;    selected revisions: 46<br />
description:<br />
chang the write routine and use the macro copy from user for copy the data from user space to kernel space<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.46   locked by: emblogic;<br />
date: 2016/01/30 05:56:35;  author: emblogic;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.45<br />
date: 2016/01/30 05:46:43;  author: emblogic;  state: Exp;  lines: +1 -1<br />
use ERESTARTSYS<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.44<br />
date: 2016/01/30 05:16:32;  author: emblogic;  state: Exp;  lines: +1 -1<br />
remove the if condition in semaphore<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.37<br />
date: 2016/01/27 11:56:13;  author: emblogic;  state: Exp;  lines: +1 -0<br />
fatch the address from private data in ldev and<br />
catch the return address by scull in dev-&gt;Qset stracture variable<br />
revision 1.22<br />
date: 2016/01/25 07:07:41;  author: emblogic;  state: Exp;  lines: +5 -4<br />
fatch the value private data and stor in local variable and pass in copy form user<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
revision 1.5<br />
date: 2016/01/22 05:15:07;  author: emblogic;  state: Exp;  lines: +3 -5<br />
catch the data from copy from user macro and use header hile for this<br />
,<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2016/01/2</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/character_device-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
