<?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; Ankit.singhal85@yahoo.com</title>
	<atom:link href="https://www.emblogic.com/blog/author/ankit-singhal85/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>Parallel Port DD (Compatibility mode ).</title>
		<link>https://www.emblogic.com/blog/06/parallel-port-dd-compatibility-mode/</link>
		<comments>https://www.emblogic.com/blog/06/parallel-port-dd-compatibility-mode/#comments</comments>
		<pubDate>Thu, 26 Jun 2014 09:03:21 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10664</guid>
		<description><![CDATA[#use the parallel port in the compatibility mode which is work in the forward direction and in this i use the read operation which is seems to be the reverse operation but its not the reverse operation because we reterive &#8230; <a href="https://www.emblogic.com/blog/06/parallel-port-dd-compatibility-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#use the parallel port in the compatibility mode which is work in the forward direction and in this i use the read operation which is seems to be the reverse operation but its not the reverse operation because we reterive the data in the single PC wihch is in the form of the buffer....
RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
mapp the devopen function with file_operation..
----------------------------
revision 1.1
date: 2014/06/23 10:13:11;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
use copy_from_user which is used to receive the data from the application layer to kernel layer...
then use outb to send the information from kernel layer to parallel port...
----------------------------
revision 1.2
date: 2014/06/23 10:37:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/23 09:54:34;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
file operation call which is used in init only...
this is not include in the header because if i include this is header then suffer a problem of multiple declaration...
----------------------------
revision 1.1
date: 2014/06/23 09:54:34;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
call the module_init and module_exit for initilization and cleanup respectively..
alloc_chrdev_region, cdev_init, check_region,release_region, request_region, and cdev_add
in module_exit function call release_region, unregister_chrdev_region....
----------------------------
revision 1.2
date: 2014/06/23 09:54:16;  author: root;  state: Exp;  lines: +9 -1
include the file operation file in this
----------------------------
revision 1.1
date: 2014/06/23 05:08:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
mapp the read in kernel layer with the application...
----------------------------
revision 1.1
date: 2014/06/23 09:54:34;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
include all the header file need for this project like init, module, fs, cdev, slab and ioport for the parallel port...
define some macros like DEVNAME as device name MAJORNO MINORNO QSET_SIZE QUANTUM_SIZE
define the struct ScullDev and ScullQset....
define the struct of file_operation for the mapping...
----------------------------
revision 1.3
date: 2014/06/23 10:12:33;  author: root;  state: Exp;  lines: +2 -0
give the prototype for the devopen
----------------------------
revision 1.2
date: 2014/06/23 09:53:30;  author: root;  state: Exp;  lines: +17 -3
remove the file_operation from this...
include the header file for the outb and copy_from_user
----------------------------
revision 1.1
date: 2014/06/23 05:08:09;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/parallel-port-dd-compatibility-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Port Device Driver(acquire the parallel pot by my DD)</title>
		<link>https://www.emblogic.com/blog/06/parallel-port-device-driveracquire-the-parallel-pot-by-my-dd/</link>
		<comments>https://www.emblogic.com/blog/06/parallel-port-device-driveracquire-the-parallel-pot-by-my-dd/#comments</comments>
		<pubDate>Thu, 26 Jun 2014 03:29:06 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10612</guid>
		<description><![CDATA[#acquire the parallel port by my device driver... RCS file: header.h,v Working file: header.h head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: include all the header file need for &#8230; <a href="https://www.emblogic.com/blog/06/parallel-port-device-driveracquire-the-parallel-pot-by-my-dd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#acquire the parallel port by my device driver...
RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
include all the header file need for this project like init, module, fs, cdev, slab and ioport for the parallel port...
define some macros like DEVNAME as device name MAJORNO MINORNO QSET_SIZE QUANTUM_SIZE
define the struct ScullDev and ScullQset....
define the struct of file_operation for the mapping...
----------------------------
revision 1.1
date: 2014/06/23 05:08:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
call the module_init and module_exit for initilization and cleanup respectively..
alloc_chrdev_region, cdev_init, check_region,release_region, request_region, and cdev_add
in module_exit function call release_region, unregister_chrdev_region....
----------------------------
revision 1.1
date: 2014/06/23 05:08:09;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/parallel-port-device-driveracquire-the-parallel-pot-by-my-dd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(/proc)</title>
		<link>https://www.emblogic.com/blog/06/character-driverproc/</link>
		<comments>https://www.emblogic.com/blog/06/character-driverproc/#comments</comments>
		<pubDate>Thu, 19 Jun 2014 05:13:34 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10536</guid>
		<description><![CDATA[#sucessfully implement the /proc in device driver.... RCS file: application.c,v Working file: application.c head: 1.34 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 34; selected revisions: 34 description: this is the application program in the user &#8230; <a href="https://www.emblogic.com/blog/06/character-driverproc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#sucessfully implement the /proc in device driver....

RCS file: application.c,v
Working file: application.c
head: 1.34
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 34;	selected revisions: 34
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.34
date: 2014/06/08 10:27:10;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.33
date: 2014/06/08 10:17:20;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.32
date: 2014/06/08 10:13:33;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.31
date: 2014/06/08 10:03:52;  author: root;  state: Exp;  lines: +1 -1
make arg instead of &amp;arg
----------------------------
revision 1.30
date: 2014/06/08 07:10:04;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.29
date: 2014/06/08 05:14:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/07 12:59:04;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/07 12:57:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/07 12:45:21;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/07 12:42:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/07 12:42:03;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/07 12:37:56;  author: root;  state: Exp;  lines: +6 -2
call a system call for the SCULL_SQUANTUM
----------------------------
revision 1.22
date: 2014/06/07 12:31:14;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/07 10:20:19;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/07 10:11:16;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/07 09:55:19;  author: root;  state: Exp;  lines: +3 -1
make a call for the othe macro i.e for the SCUlL_GQUANTUM
----------------------------
revision 1.18
date: 2014/06/07 09:35:52;  author: root;  state: Exp;  lines: +5 -1
make a application call for the ioctl
----------------------------
revision 1.17
date: 2014/06/02 12:09:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
----------------------------
revision 1.3
date: 2014/06/02 07:22:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.15
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 15;	selected revisions: 15
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.15
date: 2014/06/05 06:54:22;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/05 05:07:03;  author: root;  state: Exp;  lines: +5 -3
use the spin_lock and spin_unlock
----------------------------
revision 1.12
date: 2014/06/03 12:48:15;  author: root;  state: Exp;  lines: +1 -0
given the complete call in the last...
----------------------------
revision 1.11
date: 2014/06/03 12:44:22;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/03 04:57:08;  author: root;  state: Exp;  lines: +4 -3
apply the wait_for_completion() same as the downing the semaphore...
apply the complete() same as the uping the semaphore...
----------------------------
revision 1.9
date: 2014/06/03 04:28:45;  author: root;  state: Exp;  lines: +2 -1
making up the semaphore above the returing.....
----------------------------
revision 1.8
date: 2014/06/03 04:21:25;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/02 12:11:54;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/02 11:45:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/02 05:14:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/02 04:51:17;  author: root;  state: Exp;  lines: +5 -0
making down and up the semaphore by using down_interruptible() and up() respectively
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.11
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 11;	selected revisions: 11
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.11
date: 2014/06/17 13:23:44;  author: root;  state: Exp;  lines: +18 -2
call the creat_proc_entry_read...
----------------------------
revision 1.10
date: 2014/06/16 13:23:35;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.9
date: 2014/06/16 13:02:05;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/16 12:33:57;  author: root;  state: Exp;  lines: +6 -0
create the proc entry as *create_proc_entry() and works fine for me....as the entry is listed in the /proc...
----------------------------
revision 1.7
date: 2014/06/05 06:54:20;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/05 05:55:48;  author: root;  state: Exp;  lines: +4 -2
use the rwlock_t
----------------------------
revision 1.5
date: 2014/06/05 05:05:37;  author: root;  state: Exp;  lines: +3 -1
make the init
init_apin_lock is applied here....
----------------------------
revision 1.4
date: 2014/06/03 04:56:36;  author: root;  state: Exp;  lines: +2 -1
initilize the completion by init_completion above the cdev_add...
----------------------------
revision 1.3
date: 2014/06/02 11:38:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 04:50:25;  author: root;  state: Exp;  lines: +1 -0
initilize the binary semaphore before the cdev_add using the sema_init()
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the prototype.
----------------------------
revision 1.4
date: 2014/06/07 09:35:22;  author: root;  state: Exp;  lines: +2 -0
write the prototype for the scullioctl
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.3
date: 2014/06/02 11:43:23;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 11:38:54;  author: root;  state: Exp;  lines: +7 -3
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.c,v
Working file: ioctl.c
head: 1.22
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 22;	selected revisions: 22
description:
the file corresponds to unlocked_ioctl...
----------------------------
revision 1.22
date: 2014/06/08 08:09:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/08 08:09:05;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/08 05:36:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/08 05:23:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.18
date: 2014/06/08 05:15:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/06/08 05:14:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/07 13:09:16;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/07 13:08:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/07 13:07:43;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/07 12:48:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/07 12:44:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/06/07 12:40:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/07 12:38:55;  author: root;  state: Exp;  lines: +5 -0
make the defination for the SULL_SQUANTUM
----------------------------
revision 1.9
date: 2014/06/07 12:31:19;  author: root;  state: Exp;  lines: +4 -3
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/07 10:21:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/07 10:21:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/07 10:12:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/07 10:10:06;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/07 09:55:55;  author: root;  state: Exp;  lines: +1 -0
use put_user
use put_user() to written in the application layer.
----------------------------
revision 1.3
date: 2014/06/07 09:47:26;  author: root;  state: Exp;  lines: +9 -1
making the switch for the different MACRO of IOCTL
----------------------------
revision 1.2
date: 2014/06/07 09:43:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.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 used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.3	locked by: root;
date: 2014/06/16 13:00:23;  author: root;  state: Exp;  lines: +1 -1
pass 0 istead of NULL in the parent...
----------------------------
revision 1.2
date: 2014/06/16 12:35:08;  author: root;  state: Exp;  lines: +1 -0
remove the entry from the /proc.....and works file for me.... :)
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.29
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 29;	selected revisions: 29
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.29
date: 2014/06/08 10:29:24;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/08 10:26:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/08 10:21:43;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/05 06:54:23;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/05 06:29:11;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/05 06:02:00;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.22
date: 2014/06/05 05:07:23;  author: root;  state: Exp;  lines: +6 -3
use the spin_lock and the spin_unlock...
----------------------------
revision 1.21
date: 2014/06/03 12:48:40;  author: root;  state: Exp;  lines: +1 -0
give the wait_for_completion in the start...
and complete in the last....
work fine....in the different application accesing the same node....
----------------------------
revision 1.20
date: 2014/06/03 05:00:49;  author: root;  state: Exp;  lines: +3 -2
apply the completion in the devread.
----------------------------
revision 1.19
date: 2014/06/03 04:58:08;  author: root;  state: Exp;  lines: +2 -2
remove the semaphore...
----------------------------
revision 1.18
date: 2014/06/03 04:29:10;  author: root;  state: Exp;  lines: +1 -1
making up the semaphore above the returing...
----------------------------
revision 1.17
date: 2014/06/03 04:23:54;  author: root;  state: Exp;  lines: +3 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/02 12:00:36;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/02 11:45:09;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/02 05:14:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/02 05:08:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/02 04:52:46;  author: root;  state: Exp;  lines: +6 -0
making down and up the semaphore by using the down_interruptible() and up() respectively.
----------------------------
revision 1.11
date: 2014/05/30 11:03:46;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
used for the mapping purpose.
----------------------------
revision 1.4
date: 2014/06/07 09:36:06;  author: root;  state: Exp;  lines: +2 -1
mapp the unlocked_ioctl with the scull_ioctl
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.c,v
Working file: ioctl.c
head: 1.22
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 22;	selected revisions: 22
description:
the file corresponds to unlocked_ioctl...
----------------------------
revision 1.22
date: 2014/06/08 08:09:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/08 08:09:05;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/08 05:36:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/08 05:23:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.18
date: 2014/06/08 05:15:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/06/08 05:14:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/07 13:09:16;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/07 13:08:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/07 13:07:43;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/07 12:48:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/07 12:44:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/06/07 12:40:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/07 12:38:55;  author: root;  state: Exp;  lines: +5 -0
make the defination for the SULL_SQUANTUM
----------------------------
revision 1.9
date: 2014/06/07 12:31:19;  author: root;  state: Exp;  lines: +4 -3
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/07 10:21:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/07 10:21:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/07 10:12:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/07 10:10:06;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/07 09:55:55;  author: root;  state: Exp;  lines: +1 -0
use put_user
use put_user() to written in the application layer.
----------------------------
revision 1.3
date: 2014/06/07 09:47:26;  author: root;  state: Exp;  lines: +9 -1
making the switch for the different MACRO of IOCTL
----------------------------
revision 1.2
date: 2014/06/07 09:43:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.4
date: 2014/06/05 06:54:21;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/06/05 05:56:14;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/05 05:06:10;  author: root;  state: Exp;  lines: +1 -0
make the extern variable spinlock_t lock
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.6
date: 2014/06/16 12:33:19;  author: root;  state: Exp;  lines: +1 -0
include the header file for the proc i.e &lt;linux/proc_fs.h&gt;
----------------------------
revision 1.5
date: 2014/06/07 09:29:12;  author: root;  state: Exp;  lines: +3 -0
here we include the header file &lt;asm-generic/ioctl.h&gt;
here we also include the user define ioctl.h header file.
----------------------------
revision 1.4
date: 2014/06/05 05:05:01;  author: root;  state: Exp;  lines: +2 -0
include the header file for the spinlock....i.e spinlock.h
----------------------------
revision 1.3
date: 2014/06/03 04:56:00;  author: root;  state: Exp;  lines: +2 -0
include the header file &lt;linux.completion.h&gt; for the completion...
----------------------------
revision 1.2
date: 2014/06/02 04:49:56;  author: root;  state: Exp;  lines: +3 -1
include the linux/semaphore.h header file for the semaphores.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: read_proc.h,v
Working file: read_proc.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the read proc file...
----------------------------
revision 1.1
date: 2014/06/19 05:06:08;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
<pre>#sucessfully implement the /proc in device driver....

RCS file: application.c,v
Working file: application.c
head: 1.34
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 34;	selected revisions: 34
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.34
date: 2014/06/08 10:27:10;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.33
date: 2014/06/08 10:17:20;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.32
date: 2014/06/08 10:13:33;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.31
date: 2014/06/08 10:03:52;  author: root;  state: Exp;  lines: +1 -1
make arg instead of &amp;arg
----------------------------
revision 1.30
date: 2014/06/08 07:10:04;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.29
date: 2014/06/08 05:14:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/07 12:59:04;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/07 12:57:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/07 12:45:21;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/07 12:42:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/07 12:42:03;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/07 12:37:56;  author: root;  state: Exp;  lines: +6 -2
call a system call for the SCULL_SQUANTUM
----------------------------
revision 1.22
date: 2014/06/07 12:31:14;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/07 10:20:19;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/07 10:11:16;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/07 09:55:19;  author: root;  state: Exp;  lines: +3 -1
make a call for the othe macro i.e for the SCUlL_GQUANTUM
----------------------------
revision 1.18
date: 2014/06/07 09:35:52;  author: root;  state: Exp;  lines: +5 -1
make a application call for the ioctl
----------------------------
revision 1.17
date: 2014/06/02 12:09:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
----------------------------
revision 1.3
date: 2014/06/02 07:22:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.15
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 15;	selected revisions: 15
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.15
date: 2014/06/05 06:54:22;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/05 05:07:03;  author: root;  state: Exp;  lines: +5 -3
use the spin_lock and spin_unlock
----------------------------
revision 1.12
date: 2014/06/03 12:48:15;  author: root;  state: Exp;  lines: +1 -0
given the complete call in the last...
----------------------------
revision 1.11
date: 2014/06/03 12:44:22;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/03 04:57:08;  author: root;  state: Exp;  lines: +4 -3
apply the wait_for_completion() same as the downing the semaphore...
apply the complete() same as the uping the semaphore...
----------------------------
revision 1.9
date: 2014/06/03 04:28:45;  author: root;  state: Exp;  lines: +2 -1
making up the semaphore above the returing.....
----------------------------
revision 1.8
date: 2014/06/03 04:21:25;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/02 12:11:54;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/02 11:45:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/02 05:14:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/02 04:51:17;  author: root;  state: Exp;  lines: +5 -0
making down and up the semaphore by using down_interruptible() and up() respectively
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.11
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 11;	selected revisions: 11
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.11
date: 2014/06/17 13:23:44;  author: root;  state: Exp;  lines: +18 -2
call the creat_proc_entry_read...
----------------------------
revision 1.10
date: 2014/06/16 13:23:35;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.9
date: 2014/06/16 13:02:05;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/16 12:33:57;  author: root;  state: Exp;  lines: +6 -0
create the proc entry as *create_proc_entry() and works fine for me....as the entry is listed in the /proc...
----------------------------
revision 1.7
date: 2014/06/05 06:54:20;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/05 05:55:48;  author: root;  state: Exp;  lines: +4 -2
use the rwlock_t
----------------------------
revision 1.5
date: 2014/06/05 05:05:37;  author: root;  state: Exp;  lines: +3 -1
make the init
init_apin_lock is applied here....
----------------------------
revision 1.4
date: 2014/06/03 04:56:36;  author: root;  state: Exp;  lines: +2 -1
initilize the completion by init_completion above the cdev_add...
----------------------------
revision 1.3
date: 2014/06/02 11:38:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 04:50:25;  author: root;  state: Exp;  lines: +1 -0
initilize the binary semaphore before the cdev_add using the sema_init()
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the prototype.
----------------------------
revision 1.4
date: 2014/06/07 09:35:22;  author: root;  state: Exp;  lines: +2 -0
write the prototype for the scullioctl
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.3
date: 2014/06/02 11:43:23;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 11:38:54;  author: root;  state: Exp;  lines: +7 -3
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.c,v
Working file: ioctl.c
head: 1.22
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 22;	selected revisions: 22
description:
the file corresponds to unlocked_ioctl...
----------------------------
revision 1.22
date: 2014/06/08 08:09:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/08 08:09:05;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/08 05:36:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/08 05:23:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.18
date: 2014/06/08 05:15:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/06/08 05:14:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/07 13:09:16;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/07 13:08:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/07 13:07:43;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/07 12:48:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/07 12:44:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/06/07 12:40:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/07 12:38:55;  author: root;  state: Exp;  lines: +5 -0
make the defination for the SULL_SQUANTUM
----------------------------
revision 1.9
date: 2014/06/07 12:31:19;  author: root;  state: Exp;  lines: +4 -3
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/07 10:21:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/07 10:21:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/07 10:12:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/07 10:10:06;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/07 09:55:55;  author: root;  state: Exp;  lines: +1 -0
use put_user
use put_user() to written in the application layer.
----------------------------
revision 1.3
date: 2014/06/07 09:47:26;  author: root;  state: Exp;  lines: +9 -1
making the switch for the different MACRO of IOCTL
----------------------------
revision 1.2
date: 2014/06/07 09:43:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.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 used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.3	locked by: root;
date: 2014/06/16 13:00:23;  author: root;  state: Exp;  lines: +1 -1
pass 0 istead of NULL in the parent...
----------------------------
revision 1.2
date: 2014/06/16 12:35:08;  author: root;  state: Exp;  lines: +1 -0
remove the entry from the /proc.....and works file for me.... :)
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.29
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 29;	selected revisions: 29
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.29
date: 2014/06/08 10:29:24;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/08 10:26:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/08 10:21:43;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/05 06:54:23;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/05 06:29:11;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/05 06:02:00;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.22
date: 2014/06/05 05:07:23;  author: root;  state: Exp;  lines: +6 -3
use the spin_lock and the spin_unlock...
----------------------------
revision 1.21
date: 2014/06/03 12:48:40;  author: root;  state: Exp;  lines: +1 -0
give the wait_for_completion in the start...
and complete in the last....
work fine....in the different application accesing the same node....
----------------------------
revision 1.20
date: 2014/06/03 05:00:49;  author: root;  state: Exp;  lines: +3 -2
apply the completion in the devread.
----------------------------
revision 1.19
date: 2014/06/03 04:58:08;  author: root;  state: Exp;  lines: +2 -2
remove the semaphore...
----------------------------
revision 1.18
date: 2014/06/03 04:29:10;  author: root;  state: Exp;  lines: +1 -1
making up the semaphore above the returing...
----------------------------
revision 1.17
date: 2014/06/03 04:23:54;  author: root;  state: Exp;  lines: +3 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/02 12:00:36;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/02 11:45:09;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/02 05:14:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/02 05:08:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/02 04:52:46;  author: root;  state: Exp;  lines: +6 -0
making down and up the semaphore by using the down_interruptible() and up() respectively.
----------------------------
revision 1.11
date: 2014/05/30 11:03:46;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
used for the mapping purpose.
----------------------------
revision 1.4
date: 2014/06/07 09:36:06;  author: root;  state: Exp;  lines: +2 -1
mapp the unlocked_ioctl with the scull_ioctl
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.c,v
Working file: ioctl.c
head: 1.22
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 22;	selected revisions: 22
description:
the file corresponds to unlocked_ioctl...
----------------------------
revision 1.22
date: 2014/06/08 08:09:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/08 08:09:05;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/08 05:36:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/08 05:23:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.18
date: 2014/06/08 05:15:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/06/08 05:14:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/07 13:09:16;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/07 13:08:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/07 13:07:43;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/07 12:48:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/07 12:44:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/06/07 12:40:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/07 12:38:55;  author: root;  state: Exp;  lines: +5 -0
make the defination for the SULL_SQUANTUM
----------------------------
revision 1.9
date: 2014/06/07 12:31:19;  author: root;  state: Exp;  lines: +4 -3
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/07 10:21:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/07 10:21:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/07 10:12:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/07 10:10:06;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/07 09:55:55;  author: root;  state: Exp;  lines: +1 -0
use put_user
use put_user() to written in the application layer.
----------------------------
revision 1.3
date: 2014/06/07 09:47:26;  author: root;  state: Exp;  lines: +9 -1
making the switch for the different MACRO of IOCTL
----------------------------
revision 1.2
date: 2014/06/07 09:43:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.4
date: 2014/06/05 06:54:21;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/06/05 05:56:14;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/05 05:06:10;  author: root;  state: Exp;  lines: +1 -0
make the extern variable spinlock_t lock
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.6
date: 2014/06/16 12:33:19;  author: root;  state: Exp;  lines: +1 -0
include the header file for the proc i.e &lt;linux/proc_fs.h&gt;
----------------------------
revision 1.5
date: 2014/06/07 09:29:12;  author: root;  state: Exp;  lines: +3 -0
here we include the header file &lt;asm-generic/ioctl.h&gt;
here we also include the user define ioctl.h header file.
----------------------------
revision 1.4
date: 2014/06/05 05:05:01;  author: root;  state: Exp;  lines: +2 -0
include the header file for the spinlock....i.e spinlock.h
----------------------------
revision 1.3
date: 2014/06/03 04:56:00;  author: root;  state: Exp;  lines: +2 -0
include the header file &lt;linux.completion.h&gt; for the completion...
----------------------------
revision 1.2
date: 2014/06/02 04:49:56;  author: root;  state: Exp;  lines: +3 -1
include the linux/semaphore.h header file for the semaphores.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: read_proc.h,v
Working file: read_proc.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the read proc file...
----------------------------
revision 1.1
date: 2014/06/19 05:06:08;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/character-driverproc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(IOCTL for the set quantum)</title>
		<link>https://www.emblogic.com/blog/06/character-driverioctl-for-the-set-quantum/</link>
		<comments>https://www.emblogic.com/blog/06/character-driverioctl-for-the-set-quantum/#comments</comments>
		<pubDate>Sun, 08 Jun 2014 10:56:14 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10408</guid>
		<description><![CDATA[#apply the ioctl in the kernel layer and get quantum and set quantum is work fine....and after changing the quantum size we are able to write according to that but we are not able to read when we are changing &#8230; <a href="https://www.emblogic.com/blog/06/character-driverioctl-for-the-set-quantum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#apply the ioctl in the kernel layer and get quantum and set quantum is work fine....and after changing the quantum size we are able to write according to that but we are not able to read when we are changing the quantum size....

RCS file: application.c,v
Working file: application.c
head: 1.34
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 34;	selected revisions: 34
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.34
date: 2014/06/08 10:27:10;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.33
date: 2014/06/08 10:17:20;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.32
date: 2014/06/08 10:13:33;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.31
date: 2014/06/08 10:03:52;  author: root;  state: Exp;  lines: +1 -1
make arg instead of &amp;arg
----------------------------
revision 1.30
date: 2014/06/08 07:10:04;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.29
date: 2014/06/08 05:14:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/07 12:59:04;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/07 12:57:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/07 12:45:21;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/07 12:42:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/07 12:42:03;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/07 12:37:56;  author: root;  state: Exp;  lines: +6 -2
call a system call for the SCULL_SQUANTUM
----------------------------
revision 1.22
date: 2014/06/07 12:31:14;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/07 10:20:19;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/07 10:11:16;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/07 09:55:19;  author: root;  state: Exp;  lines: +3 -1
make a call for the othe macro i.e for the SCUlL_GQUANTUM
----------------------------
revision 1.18
date: 2014/06/07 09:35:52;  author: root;  state: Exp;  lines: +5 -1
make a application call for the ioctl
----------------------------
revision 1.17
date: 2014/06/02 12:09:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.3
date: 2014/06/02 11:43:23;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 11:38:54;  author: root;  state: Exp;  lines: +7 -3
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.c,v
Working file: ioctl.c
head: 1.22
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 22;	selected revisions: 22
description:
the file corresponds to unlocked_ioctl...
----------------------------
revision 1.22
date: 2014/06/08 08:09:38;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.21
date: 2014/06/08 08:09:05;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.20
date: 2014/06/08 05:36:29;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.19
date: 2014/06/08 05:23:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.18
date: 2014/06/08 05:15:34;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/06/08 05:14:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/07 13:09:16;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/07 13:08:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/07 13:07:43;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/07 12:48:51;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/07 12:44:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/06/07 12:40:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/07 12:38:55;  author: root;  state: Exp;  lines: +5 -0
make the defination for the SULL_SQUANTUM
----------------------------
revision 1.9
date: 2014/06/07 12:31:19;  author: root;  state: Exp;  lines: +4 -3
*** empty log message ***
----------------------------
revision 1.8
date: 2014/06/07 10:21:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/07 10:21:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/07 10:12:39;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/07 10:10:06;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/07 09:55:55;  author: root;  state: Exp;  lines: +1 -0
use put_user
use put_user() to written in the application layer.
----------------------------
revision 1.3
date: 2014/06/07 09:47:26;  author: root;  state: Exp;  lines: +9 -1
making the switch for the different MACRO of IOCTL
----------------------------
revision 1.2
date: 2014/06/07 09:43:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.29
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 29;	selected revisions: 29
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.29
date: 2014/06/08 10:29:24;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.28
date: 2014/06/08 10:26:24;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/06/08 10:21:43;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.26
date: 2014/06/05 06:54:23;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/06/05 06:29:11;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.24
date: 2014/06/05 06:02:00;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.23
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.22
date: 2014/06/05 05:07:23;  author: root;  state: Exp;  lines: +6 -3
use the spin_lock and the spin_unlock...
----------------------------
revision 1.21
date: 2014/06/03 12:48:40;  author: root;  state: Exp;  lines: +1 -0
give the wait_for_completion in the start...
and complete in the last....
work fine....in the different application accesing the same node....
----------------------------
revision 1.20
date: 2014/06/03 05:00:49;  author: root;  state: Exp;  lines: +3 -2
apply the completion in the devread.
----------------------------
revision 1.19
date: 2014/06/03 04:58:08;  author: root;  state: Exp;  lines: +2 -2
remove the semaphore...
----------------------------
revision 1.18
date: 2014/06/03 04:29:10;  author: root;  state: Exp;  lines: +1 -1
making up the semaphore above the returing...
----------------------------
revision 1.17
date: 2014/06/03 04:23:54;  author: root;  state: Exp;  lines: +3 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/02 12:00:36;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/02 11:45:09;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/02 05:14:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/02 05:08:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/02 04:52:46;  author: root;  state: Exp;  lines: +6 -0
making down and up the semaphore by using the down_interruptible() and up() respectively.
----------------------------
revision 1.11
date: 2014/05/30 11:03:46;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
used for the mapping purpose.
----------------------------
revision 1.4
date: 2014/06/07 09:36:06;  author: root;  state: Exp;  lines: +2 -1
mapp the unlocked_ioctl with the scull_ioctl
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: ioctl.h,v
Working file: ioctl.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
make the header file for the ioctl this is the user define header file...
----------------------------
revision 1.4
date: 2014/06/07 13:05:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/06/07 12:38:17;  author: root;  state: Exp;  lines: +1 -0
include the micro SCULL_SQUANTUM to set the new quantum size.
----------------------------
revision 1.2
date: 2014/06/07 09:36:38;  author: root;  state: Exp;  lines: +1 -1
make the user define header file for the ioctl
----------------------------
revision 1.1
date: 2014/06/07 09:30:35;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.4
date: 2014/06/05 06:54:21;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/06/05 05:56:14;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/05 05:06:10;  author: root;  state: Exp;  lines: +1 -0
make the extern variable spinlock_t lock
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.5
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 5;	selected revisions: 5
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.5
date: 2014/06/07 09:29:12;  author: root;  state: Exp;  lines: +3 -0
here we include the header file &lt;asm-generic/ioctl.h&gt;
here we also include the user define ioctl.h header file.
----------------------------
revision 1.4
date: 2014/06/05 05:05:01;  author: root;  state: Exp;  lines: +2 -0
include the header file for the spinlock....i.e spinlock.h
----------------------------
revision 1.3
date: 2014/06/03 04:56:00;  author: root;  state: Exp;  lines: +2 -0
include the header file &lt;linux.completion.h&gt; for the completion...
----------------------------
revision 1.2
date: 2014/06/02 04:49:56;  author: root;  state: Exp;  lines: +3 -1
include the linux/semaphore.h header file for the semaphores.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
----------------------------
revision 1.3
date: 2014/06/02 07:22:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.15
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 15;	selected revisions: 15
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.15
date: 2014/06/05 06:54:22;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/05 05:56:16;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/05 05:07:03;  author: root;  state: Exp;  lines: +5 -3
use the spin_lock and spin_unlock
----------------------------
revision 1.12
date: 2014/06/03 12:48:15;  author: root;  state: Exp;  lines: +1 -0
given the complete call in the last...
----------------------------
revision 1.11
date: 2014/06/03 12:44:22;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/03 04:57:08;  author: root;  state: Exp;  lines: +4 -3
apply the wait_for_completion() same as the downing the semaphore...
apply the complete() same as the uping the semaphore...
----------------------------
revision 1.9
date: 2014/06/03 04:28:45;  author: root;  state: Exp;  lines: +2 -1
making up the semaphore above the returing.....
----------------------------
revision 1.8
date: 2014/06/03 04:21:25;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/02 12:11:54;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/02 11:45:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/02 05:14:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/02 04:51:17;  author: root;  state: Exp;  lines: +5 -0
making down and up the semaphore by using down_interruptible() and up() respectively
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.7
date: 2014/06/05 06:54:20;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/05 05:55:48;  author: root;  state: Exp;  lines: +4 -2
use the rwlock_t
----------------------------
revision 1.5
date: 2014/06/05 05:05:37;  author: root;  state: Exp;  lines: +3 -1
make the init
init_apin_lock is applied here....
----------------------------
revision 1.4
date: 2014/06/03 04:56:36;  author: root;  state: Exp;  lines: +2 -1
initilize the completion by init_completion above the cdev_add...
----------------------------
revision 1.3
date: 2014/06/02 11:38:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 04:50:25;  author: root;  state: Exp;  lines: +1 -0
initilize the binary semaphore before the cdev_add using the sema_init()
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the prototype.
----------------------------
revision 1.4
date: 2014/06/07 09:35:22;  author: root;  state: Exp;  lines: +2 -0
write the prototype for the scullioctl
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/character-driverioctl-for-the-set-quantum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API &#8211; application program interface</title>
		<link>https://www.emblogic.com/blog/06/api-application-program-interface/</link>
		<comments>https://www.emblogic.com/blog/06/api-application-program-interface/#comments</comments>
		<pubDate>Thu, 05 Jun 2014 04:41:31 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10320</guid>
		<description><![CDATA[API, an abbreviation of application program interface, is a set of routines, protocols, and tools for building software applications. The API specifies how software components should interact and are used when programming graphical user interface (GUI) components.  A good API &#8230; <a href="https://www.emblogic.com/blog/06/api-application-program-interface/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>API, an abbreviation of <strong><em>a</em></strong><em>pplication <strong>p</strong>rogram <strong>i</strong>nterface</em>, is a set of <a href="http://www.webopedia.com/TERM/R/routine.html">routines</a>, <a href="http://www.webopedia.com/TERM/P/protocol.html">protocols</a>, and tools for building <a href="http://www.webopedia.com/TERM/A/application.html">software applications</a>. The API specifies how software components should interact and are used when programming graphical user interface (GUI) components.  A good API makes it easier to develop a <a href="http://www.webopedia.com/TERM/P/program.html">program</a> by providing all the building blocks. A <a href="http://www.webopedia.com/TERM/P/programmer.html">programmer</a> then puts the blocks together.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/api-application-program-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(Completion)</title>
		<link>https://www.emblogic.com/blog/06/character-drivercompletion/</link>
		<comments>https://www.emblogic.com/blog/06/character-drivercompletion/#comments</comments>
		<pubDate>Thu, 05 Jun 2014 04:26:28 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10318</guid>
		<description><![CDATA[#for the another synchroniztion technique.....COMPLETION....here in the end of the devwrite i make a call for the completion and in the devread in the starting i call wait_for_completion() and in the end i call complete()....it work fine for me..... RCS &#8230; <a href="https://www.emblogic.com/blog/06/character-drivercompletion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#for the another synchroniztion technique.....COMPLETION....here in the end of the devwrite i make a call for the completion and in the devread in the starting i call wait_for_completion() and in the end i call complete()....it work fine for me.....

RCS file: application.c,v
Working file: application.c
head: 1.17
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 17;	selected revisions: 17
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.17
date: 2014/06/02 12:09:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.3
date: 2014/06/02 11:43:23;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 11:38:54;  author: root;  state: Exp;  lines: +7 -3
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application2.c,v
Working file: application2.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the application2.
here we are using the single node to exess the two application.
----------------------------
revision 1.1
date: 2014/05/30 07:55:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.21
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 21;	selected revisions: 21
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.21
date: 2014/06/03 12:48:40;  author: root;  state: Exp;  lines: +1 -0
give the wait_for_completion in the start...
and complete in the last....
work fine....in the different application accesing the same node....
----------------------------
revision 1.20
date: 2014/06/03 05:00:49;  author: root;  state: Exp;  lines: +3 -2
apply the completion in the devread.
----------------------------
revision 1.19
date: 2014/06/03 04:58:08;  author: root;  state: Exp;  lines: +2 -2
remove the semaphore...
----------------------------
revision 1.18
date: 2014/06/03 04:29:10;  author: root;  state: Exp;  lines: +1 -1
making up the semaphore above the returing...
----------------------------
revision 1.17
date: 2014/06/03 04:23:54;  author: root;  state: Exp;  lines: +3 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/02 12:00:36;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/02 11:45:09;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/02 05:14:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/02 05:08:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/02 04:52:46;  author: root;  state: Exp;  lines: +6 -0
making down and up the semaphore by using the down_interruptible() and up() respectively.
----------------------------
revision 1.11
date: 2014/05/30 11:03:46;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used for the mapping purpose.
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the prototype.
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application3.c,v
Working file: application3.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the third application.
----------------------------
revision 1.1
date: 2014/05/30 09:20:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.3
date: 2014/06/03 04:56:00;  author: root;  state: Exp;  lines: +2 -0
include the header file &lt;linux.completion.h&gt; for the completion...
----------------------------
revision 1.2
date: 2014/06/02 04:49:56;  author: root;  state: Exp;  lines: +3 -1
include the linux/semaphore.h header file for the semaphores.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application4.c,v
Working file: application4.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the fourth application.
----------------------------
revision 1.1
date: 2014/05/30 09:21:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
----------------------------
revision 1.3
date: 2014/06/02 07:22:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.12
date: 2014/06/03 12:48:15;  author: root;  state: Exp;  lines: +1 -0
given the complete call in the last...
----------------------------
revision 1.11
date: 2014/06/03 12:44:22;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/06/03 04:57:08;  author: root;  state: Exp;  lines: +4 -3
apply the wait_for_completion() same as the downing the semaphore...
apply the complete() same as the uping the semaphore...
----------------------------
revision 1.9
date: 2014/06/03 04:28:45;  author: root;  state: Exp;  lines: +2 -1
making up the semaphore above the returing.....
----------------------------
revision 1.8
date: 2014/06/03 04:21:25;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/02 12:11:54;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/02 11:45:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/02 05:14:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/02 04:51:17;  author: root;  state: Exp;  lines: +5 -0
making down and up the semaphore by using down_interruptible() and up() respectively
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.4
date: 2014/06/03 04:56:36;  author: root;  state: Exp;  lines: +2 -1
initilize the completion by init_completion above the cdev_add...
----------------------------
revision 1.3
date: 2014/06/02 11:38:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 04:50:25;  author: root;  state: Exp;  lines: +1 -0
initilize the binary semaphore before the cdev_add using the sema_init()
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/character-drivercompletion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(Semaphore)</title>
		<link>https://www.emblogic.com/blog/06/character-driversemaphore/</link>
		<comments>https://www.emblogic.com/blog/06/character-driversemaphore/#comments</comments>
		<pubDate>Thu, 05 Jun 2014 04:25:06 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10316</guid>
		<description><![CDATA[#applying the semaphore....here i run the 4 application(open, write and read) from the single node.....and its working fine.... RCS file: application.c,v Working file: application.c head: 1.17 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 17; selected &#8230; <a href="https://www.emblogic.com/blog/06/character-driversemaphore/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#applying the semaphore....here i run the 4 application(open, write and read) from the single node.....and its working fine....


RCS file: application.c,v
Working file: application.c
head: 1.17
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 17;	selected revisions: 17
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.17
date: 2014/06/02 12:09:20;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.3
date: 2014/06/02 11:43:23;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 11:38:54;  author: root;  state: Exp;  lines: +7 -3
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application2.c,v
Working file: application2.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the application2.
here we are using the single node to exess the two application.
----------------------------
revision 1.1
date: 2014/05/30 07:55:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.18
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 18;	selected revisions: 18
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.18
date: 2014/06/03 04:29:10;  author: root;  state: Exp;  lines: +1 -1
making up the semaphore above the returing...
----------------------------
revision 1.17
date: 2014/06/03 04:23:54;  author: root;  state: Exp;  lines: +3 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/06/02 12:00:36;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/06/02 11:45:09;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/06/02 05:14:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/06/02 05:08:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.12
date: 2014/06/02 04:52:46;  author: root;  state: Exp;  lines: +6 -0
making down and up the semaphore by using the down_interruptible() and up() respectively.
----------------------------
revision 1.11
date: 2014/05/30 11:03:46;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used for the mapping purpose.
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the prototype.
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application3.c,v
Working file: application3.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the third application.
----------------------------
revision 1.1
date: 2014/05/30 09:20:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.2
date: 2014/06/02 04:49:56;  author: root;  state: Exp;  lines: +3 -1
include the linux/semaphore.h header file for the semaphores.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application4.c,v
Working file: application4.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the fourth application.
----------------------------
revision 1.1
date: 2014/05/30 09:21:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
----------------------------
revision 1.3
date: 2014/06/02 07:22:38;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.9
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 9;	selected revisions: 9
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.9
date: 2014/06/03 04:28:45;  author: root;  state: Exp;  lines: +2 -1
making up the semaphore above the returing.....
----------------------------
revision 1.8
date: 2014/06/03 04:21:25;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/06/02 12:11:54;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/06/02 11:45:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/06/02 05:14:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/06/02 04:51:17;  author: root;  state: Exp;  lines: +5 -0
making down and up the semaphore by using down_interruptible() and up() respectively
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.3
date: 2014/06/02 11:38:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/06/02 04:50:25;  author: root;  state: Exp;  lines: +1 -0
initilize the binary semaphore before the cdev_add using the sema_init()
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/character-driversemaphore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character driver (Problem in synchronization).</title>
		<link>https://www.emblogic.com/blog/05/character-driver-problem-in-synchronization/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-problem-in-synchronization/#comments</comments>
		<pubDate>Fri, 30 May 2014 09:35:37 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10244</guid>
		<description><![CDATA[#problem persist in this as i required some synchronize technique because when i run multiple application onto the single node then data is to be in mingle form......do required semphore in this..... RCS file: application3.c,v Working file: application3.c head: 1.1 &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-problem-in-synchronization/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#problem persist in this as i required some synchronize technique because when i run multiple application onto the single node then data is to be in mingle form......do required semphore in this.....
RCS file: application3.c,v
Working file: application3.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the third application.
----------------------------
revision 1.1
date: 2014/05/30 09:20:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the prototype.
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application4.c,v
Working file: application4.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
making the fourth application.
----------------------------
revision 1.1
date: 2014/05/30 09:21:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.10
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 10;	selected revisions: 10
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application2.c,v
Working file: application2.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the application2.
here we are using the single node to exess the two application.
----------------------------
revision 1.1
date: 2014/05/30 07:55:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read
 while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used for the mapping purpose.
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-problem-in-synchronization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(SEEK_SET seeking operation in the reader).</title>
		<link>https://www.emblogic.com/blog/05/character-driverseek_set-seeking-operation-in-the-reader/</link>
		<comments>https://www.emblogic.com/blog/05/character-driverseek_set-seeking-operation-in-the-reader/#comments</comments>
		<pubDate>Fri, 30 May 2014 07:34:59 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10239</guid>
		<description><![CDATA[#implementing the lseek(SEEK_SET) operation in the kernel layer then read the written bytes from the application layer, without closing the fd RCS file: application.c,v Working file: application.c head: 1.16 branch: locks: strict access list: symbolic names: keyword substitution: kv total &#8230; <a href="https://www.emblogic.com/blog/05/character-driverseek_set-seeking-operation-in-the-reader/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#implementing the lseek(SEEK_SET) operation in the kernel layer then read the written bytes from the application layer, without closing the fd

RCS file: application.c,v
Working file: application.c
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.16
date: 2014/05/30 07:19:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/30 07:09:07;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/29 06:06:43;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/29 06:05:10;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.12
date: 2014/05/29 05:44:00;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.11
date: 2014/05/29 05:43:01;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/29 05:38:44;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/29 05:37:02;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/26 11:19:01;  author: root;  state: Exp;  lines: +2 -2
seeking operation applied
apply SEEK_SET. and call lseek in application layer
----------------------------
revision 1.7
date: 2014/05/26 06:00:53;  author: root;  state: Exp;  lines: +10 -4
not open the node in RDWR mode because the node either open in the WR mode or in RD mode because its tbecause if we make it fullduplex then data get mingle.
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
----------------------------
revision 1.2
date: 2014/05/30 07:09:37;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used for the mapping purpose.
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the prototype.
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.10
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 10;	selected revisions: 10
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.10
date: 2014/05/30 07:09:09;  author: root;  state: Exp;  lines: +13 -8
implement the SEEK_SET again.
and it work file
----------------------------
revision 1.9
date: 2014/05/26 11:19:45;  author: root;  state: Exp;  lines: +28 -9
draw logic for the seek operation.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driverseek_set-seeking-operation-in-the-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(seek operation)</title>
		<link>https://www.emblogic.com/blog/05/character-driverseek-operation/</link>
		<comments>https://www.emblogic.com/blog/05/character-driverseek-operation/#comments</comments>
		<pubDate>Sun, 25 May 2014 11:39:12 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10197</guid>
		<description><![CDATA[#implementing the lseek opereration in the kernel layer then read the writen bytes from the application layer, without closing the fd RCS file: application.c,v Working file: application.c head: 1.7 branch: locks: strict access list: symbolic names: keyword substitution: kv total &#8230; <a href="https://www.emblogic.com/blog/05/character-driverseek-operation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#implementing the lseek opereration in the kernel layer then read the writen bytes from the application layer, without closing the fd
RCS file: application.c,v
Working file: application.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
make the open call.
----------------------------
revision 1.7
date: 2014/05/18 09:45:03;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/18 09:10:37;  author: root;  state: Exp;  lines: +8 -8
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/18 04:26:31;  author: root;  state: Exp;  lines: +8 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/13 15:18:27;  author: root;  state: Exp;  lines: +1 -0
include the string.h
----------------------------
revision 1.3
date: 2014/05/13 15:17:20;  author: root;  state: Exp;  lines: +5 -1
use the write system call.
----------------------------
revision 1.2
date: 2014/05/08 06:06:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/08 06:05:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the extern variable as dev, nod, minorno and majorno.
----------------------------
revision 1.4
date: 2014/05/07 03:36:11;  author: root;  state: Exp;  lines: +5 -0
define extern for new_dev quantum_size qset_size data_size and device_size
----------------------------
revision 1.3
date: 2014/05/06 06:25:08;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/06 03:29:21;  author: root;  state: Exp;  lines: +6 -0
declare a structure SkullDev with a structure cdev define in cdev,h
----------------------------
revision 1.1
date: 2014/05/06 02:07:46;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
including the linux/modules.
includding the linux/init.
define GPL.
----------------------------
revision 1.16
date: 2014/05/18 04:25:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/15 10:20:14;  author: root;  state: Exp;  lines: +1 -0
include asm-generic uaccess.h header file for the copy_to_user.
----------------------------
revision 1.14
date: 2014/05/13 13:27:30;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/11 14:39:30;  author: root;  state: Exp;  lines: +4 -0
make the macro for the header because its included multiple times in the program.....and we have to use __header as macro otherwise it leads to a error.
----------------------------
revision 1.12
date: 2014/05/07 03:41:07;  author: root;  state: Exp;  lines: +4 -4
define MACROS
----------------------------
revision 1.11
date: 2014/05/07 03:31:31;  author: root;  state: Exp;  lines: +27 -1
define macro for QSET_SIZE, QUANTUM_SIZE, DATA_SIZE and DEVICE_SIZE.
define structure ScullQset.
----------------------------
revision 1.10
date: 2014/05/06 07:17:41;  author: root;  state: Exp;  lines: +2 -1
include the moduleparam.h for the module_param i.e. passing the arguments in the kernel layer.
----------------------------
revision 1.9
date: 2014/05/06 06:36:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 06:33:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/06 06:31:04;  author: root;  state: Exp;  lines: +2 -0
include slab.h for the kmalloc and kdev_t for the Macros MINOR and MAJOR.
----------------------------
revision 1.6
date: 2014/05/06 06:26:43;  author: root;  state: Exp;  lines: +1 -0
include cdev.h header file for struct cdev
----------------------------
revision 1.5
date: 2014/05/06 06:24:27;  author: root;  state: Exp;  lines: +4 -0
declare the struct SkullDev in header instead of in declaration.h.
----------------------------
revision 1.4
date: 2014/05/06 02:12:04;  author: root;  state: Exp;  lines: +4 -4
redfine the macro in header file again.
----------------------------
revision 1.3
date: 2014/05/06 02:03:21;  author: root;  state: Exp;  lines: +17 -0
include the linux/fs.h
difine the macros DEVNAME N
----------------------------
revision 1.2
date: 2014/05/06 01:04:44;  author: root;  state: Exp;  lines: +1 -1
correct the license GPL
----------------------------
revision 1.1
date: 2014/05/06 00:58:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
use the module_exit(exitfn) and define the declaration of exitfn
----------------------------
revision 1.6
date: 2014/05/06 03:28:56;  author: root;  state: Exp;  lines: +1 -0
kfree the memory allocated during kmalloc.
----------------------------
revision 1.5
date: 2014/05/06 02:35:09;  author: root;  state: Exp;  lines: +2 -1
include the declaration.h in this.
----------------------------
revision 1.4
date: 2014/05/06 02:32:49;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:30:41;  author: root;  state: Exp;  lines: +1 -1
the function name we use as __
----------------------------
revision 1.2
date: 2014/05/06 02:06:30;  author: root;  state: Exp;  lines: +3 -1
call unregister_chrdev_region for the unregistration.
----------------------------
revision 1.1
date: 2014/05/06 01:00:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
write the defination of the devopen
----------------------------
revision 1.4
date: 2014/05/13 14:35:37;  author: root;  state: Exp;  lines: +22 -0
call the trim function.
write the defination of the trim function.
----------------------------
revision 1.3
date: 2014/05/11 15:53:59;  author: root;  state: Exp;  lines: +3 -2
include declaration.h
----------------------------
revision 1.2
date: 2014/05/11 15:26:48;  author: root;  state: Exp;  lines: +12 -0
introduce container of  which is used to point out the memory of external device.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
write the devwrite function.
map the devwrite function.
----------------------------
revision 1.12
date: 2014/05/18 09:42:30;  author: root;  state: Exp;  lines: +1 -1
return the size-ret to the write system call of the application layer i.e application.c program.
----------------------------
revision 1.11
date: 2014/05/18 09:16:13;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/18 05:28:36;  author: root;  state: Exp;  lines: +7 -7
make the scullqset_creat qset_create and quantum_creat
make the 1 quantum for the world emblogic.
and make the 1 scullqset for the world emblogic
----------------------------
revision 1.9
date: 2014/05/18 04:26:34;  author: root;  state: Exp;  lines: +31 -15
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/15 14:20:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/15 11:56:09;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/15 11:53:16;  author: root;  state: Exp;  lines: +6 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 11:37:23;  author: root;  state: Exp;  lines: +7 -5
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/15 10:21:47;  author: root;  state: Exp;  lines: +28 -20
write the defination for the create_scullqset, create_qset, and create_quantum.
----------------------------
revision 1.3
date: 2014/05/13 17:03:30;  author: root;  state: Exp;  lines: +73 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/13 15:12:20;  author: root;  state: Exp;  lines: +4 -1
give the defination of devwrite()
----------------------------
revision 1.1
date: 2014/05/13 15:07:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.31
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 31;	selected revisions: 31
description:
use the module_init(initfn) and define the declaration of initfn
----------------------------
revision 1.31
date: 2014/05/18 04:26:28;  author: root;  state: Exp;  lines: +9 -0
*** empty log message ***
----------------------------
revision 1.30
date: 2014/05/13 13:27:32;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.29
date: 2014/05/08 03:47:42;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.28
date: 2014/05/08 03:31:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/05/08 03:30:27;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/05/08 03:28:42;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/05/08 03:20:39;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/05/08 03:15:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/05/08 03:05:46;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.22
date: 2014/05/08 03:00:33;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.21
date: 2014/05/08 02:59:54;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.20
date: 2014/05/08 02:13:15;  author: root;  state: Exp;  lines: +4 -3
replace by [] and -&gt; by .
----------------------------
revision 1.19
date: 2014/05/08 02:06:31;  author: root;  state: Exp;  lines: +11 -7
print the major and minor number for all nodes.
----------------------------
revision 1.18
date: 2014/05/07 03:41:18;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/05/07 03:34:19;  author: root;  state: Exp;  lines: +29 -8
call MKDEV
call cdev_add
----------------------------
revision 1.16
date: 2014/05/06 07:34:43;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/06 07:32:45;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/06 07:23:46;  author: root;  state: Exp;  lines: +2 -2
define the module_param above the init_func
----------------------------
revision 1.13
date: 2014/05/06 07:18:42;  author: root;  state: Exp;  lines: +2 -0
define module_param call
----------------------------
revision 1.12
date: 2014/05/06 06:44:23;  author: root;  state: Exp;  lines: +2 -1
initilize the struct ScullDev above the function name
----------------------------
revision 1.11
date: 2014/05/06 06:24:59;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/06 03:34:40;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/06 03:31:46;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 03:26:36;  author: root;  state: Exp;  lines: +9 -0
call kmalloc and allocate the space uptp the structure SkullDev.
SkullDev is used to map the memory of the Device Driver.
defint the *skulldev which is extern and define in the struct SkullDev
----------------------------
revision 1.7
date: 2014/05/06 02:55:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/06 02:31:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/06 02:30:20;  author: root;  state: Exp;  lines: +2 -2
the fuction name we use __
----------------------------
revision 1.4
date: 2014/05/06 02:24:27;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:17:40;  author: root;  state: Exp;  lines: +5 -2
initialize the extern variable to MACRO within the function itself
----------------------------
revision 1.2
date: 2014/05/06 02:05:12;  author: root;  state: Exp;  lines: +21 -1
call alloc chr_dev region to register the DD into kernel and then call MAJOR and MINOR to display ita majorno and mno.
----------------------------
revision 1.1
date: 2014/05/06 00:59:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
mention the prototype of devopen and devrelease
----------------------------
revision 1.6
date: 2014/05/15 11:37:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 10:20:55;  author: root;  state: Exp;  lines: +3 -5
write the prototype fot the create_scullqset, create_qset, create_quantun.
----------------------------
revision 1.4
date: 2014/05/13 17:03:23;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/13 15:11:44;  author: root;  state: Exp;  lines: +1 -0
write the prototype of the devwrite()
----------------------------
revision 1.2
date: 2014/05/13 14:34:33;  author: root;  state: Exp;  lines: +1 -0
give the prototype of trim function used in the devopen and this trim function is used to flush the data, when its open in WR mode.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the mapping of the open close and write system call from the application layer to the kernel system call...
----------------------------
revision 1.1
date: 2014/05/18 09:50:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
used for the mapping purpose.
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
declare the prototype.
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.5
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 5;	selected revisions: 5
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.8
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 8;	selected revisions: 8
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used for the mapping purpose.
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
declare the prototype.
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.3
date: 2014/05/25 09:31:31;  author: root;  state: Exp;  lines: +11 -4
use the loff and filep-&gt;f_pos to see the position of the pointer.
this loff and filep-&gt;f_pos could not be updated automatically so we make the updation.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.8
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 8;	selected revisions: 8
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the prototype.
----------------------------
revision 1.3
date: 2014/05/25 11:29:17;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.6
date: 2014/05/25 11:29:25;  author: root;  state: Exp;  lines: +11 -7
open the file in the O_RDWR mode then its capable to read and write from the files.
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devlseek.c,v
Working file: devlseek.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/05/25 11:30:12;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
used for the mapping purpose.
----------------------------
revision 1.3
date: 2014/05/25 11:30:20;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driverseek-operation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(Read from kernel layer)</title>
		<link>https://www.emblogic.com/blog/05/character-driverread-from-kernel-layer/</link>
		<comments>https://www.emblogic.com/blog/05/character-driverread-from-kernel-layer/#comments</comments>
		<pubDate>Sat, 24 May 2014 12:16:11 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10192</guid>
		<description><![CDATA[#implementing the read from the kernel layer into the application layer after performing the write operation... RCS file: application.c,v Working file: application.c head: 1.7 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 7; selected revisions: 7 &#8230; <a href="https://www.emblogic.com/blog/05/character-driverread-from-kernel-layer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#implementing the read from the kernel layer into the application layer after performing the write operation...
RCS file: application.c,v
Working file: application.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
make the open call.
----------------------------
revision 1.7
date: 2014/05/18 09:45:03;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/18 09:10:37;  author: root;  state: Exp;  lines: +8 -8
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/18 04:26:31;  author: root;  state: Exp;  lines: +8 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/13 15:18:27;  author: root;  state: Exp;  lines: +1 -0
include the string.h
----------------------------
revision 1.3
date: 2014/05/13 15:17:20;  author: root;  state: Exp;  lines: +5 -1
use the write system call.
----------------------------
revision 1.2
date: 2014/05/08 06:06:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/08 06:05:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the extern variable as dev, nod, minorno and majorno.
----------------------------
revision 1.4
date: 2014/05/07 03:36:11;  author: root;  state: Exp;  lines: +5 -0
define extern for new_dev quantum_size qset_size data_size and device_size
----------------------------
revision 1.3
date: 2014/05/06 06:25:08;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/06 03:29:21;  author: root;  state: Exp;  lines: +6 -0
declare a structure SkullDev with a structure cdev define in cdev,h
----------------------------
revision 1.1
date: 2014/05/06 02:07:46;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
including the linux/modules.
includding the linux/init.
define GPL.
----------------------------
revision 1.16
date: 2014/05/18 04:25:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/15 10:20:14;  author: root;  state: Exp;  lines: +1 -0
include asm-generic uaccess.h header file for the copy_to_user.
----------------------------
revision 1.14
date: 2014/05/13 13:27:30;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/11 14:39:30;  author: root;  state: Exp;  lines: +4 -0
make the macro for the header because its included multiple times in the program.....and we have to use __header as macro otherwise it leads to a error.
----------------------------
revision 1.12
date: 2014/05/07 03:41:07;  author: root;  state: Exp;  lines: +4 -4
define MACROS
----------------------------
revision 1.11
date: 2014/05/07 03:31:31;  author: root;  state: Exp;  lines: +27 -1
define macro for QSET_SIZE, QUANTUM_SIZE, DATA_SIZE and DEVICE_SIZE.
define structure ScullQset.
----------------------------
revision 1.10
date: 2014/05/06 07:17:41;  author: root;  state: Exp;  lines: +2 -1
include the moduleparam.h for the module_param i.e. passing the arguments in the kernel layer.
----------------------------
revision 1.9
date: 2014/05/06 06:36:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 06:33:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/06 06:31:04;  author: root;  state: Exp;  lines: +2 -0
include slab.h for the kmalloc and kdev_t for the Macros MINOR and MAJOR.
----------------------------
revision 1.6
date: 2014/05/06 06:26:43;  author: root;  state: Exp;  lines: +1 -0
include cdev.h header file for struct cdev
----------------------------
revision 1.5
date: 2014/05/06 06:24:27;  author: root;  state: Exp;  lines: +4 -0
declare the struct SkullDev in header instead of in declaration.h.
----------------------------
revision 1.4
date: 2014/05/06 02:12:04;  author: root;  state: Exp;  lines: +4 -4
redfine the macro in header file again.
----------------------------
revision 1.3
date: 2014/05/06 02:03:21;  author: root;  state: Exp;  lines: +17 -0
include the linux/fs.h
difine the macros DEVNAME N
----------------------------
revision 1.2
date: 2014/05/06 01:04:44;  author: root;  state: Exp;  lines: +1 -1
correct the license GPL
----------------------------
revision 1.1
date: 2014/05/06 00:58:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
use the module_exit(exitfn) and define the declaration of exitfn
----------------------------
revision 1.6
date: 2014/05/06 03:28:56;  author: root;  state: Exp;  lines: +1 -0
kfree the memory allocated during kmalloc.
----------------------------
revision 1.5
date: 2014/05/06 02:35:09;  author: root;  state: Exp;  lines: +2 -1
include the declaration.h in this.
----------------------------
revision 1.4
date: 2014/05/06 02:32:49;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:30:41;  author: root;  state: Exp;  lines: +1 -1
the function name we use as __
----------------------------
revision 1.2
date: 2014/05/06 02:06:30;  author: root;  state: Exp;  lines: +3 -1
call unregister_chrdev_region for the unregistration.
----------------------------
revision 1.1
date: 2014/05/06 01:00:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
write the defination of the devopen
----------------------------
revision 1.4
date: 2014/05/13 14:35:37;  author: root;  state: Exp;  lines: +22 -0
call the trim function.
write the defination of the trim function.
----------------------------
revision 1.3
date: 2014/05/11 15:53:59;  author: root;  state: Exp;  lines: +3 -2
include declaration.h
----------------------------
revision 1.2
date: 2014/05/11 15:26:48;  author: root;  state: Exp;  lines: +12 -0
introduce container of  which is used to point out the memory of external device.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
write the devwrite function.
map the devwrite function.
----------------------------
revision 1.12
date: 2014/05/18 09:42:30;  author: root;  state: Exp;  lines: +1 -1
return the size-ret to the write system call of the application layer i.e application.c program.
----------------------------
revision 1.11
date: 2014/05/18 09:16:13;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/18 05:28:36;  author: root;  state: Exp;  lines: +7 -7
make the scullqset_creat qset_create and quantum_creat
make the 1 quantum for the world emblogic.
and make the 1 scullqset for the world emblogic
----------------------------
revision 1.9
date: 2014/05/18 04:26:34;  author: root;  state: Exp;  lines: +31 -15
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/15 14:20:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/15 11:56:09;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/15 11:53:16;  author: root;  state: Exp;  lines: +6 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 11:37:23;  author: root;  state: Exp;  lines: +7 -5
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/15 10:21:47;  author: root;  state: Exp;  lines: +28 -20
write the defination for the create_scullqset, create_qset, and create_quantum.
----------------------------
revision 1.3
date: 2014/05/13 17:03:30;  author: root;  state: Exp;  lines: +73 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/13 15:12:20;  author: root;  state: Exp;  lines: +4 -1
give the defination of devwrite()
----------------------------
revision 1.1
date: 2014/05/13 15:07:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.31
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 31;	selected revisions: 31
description:
use the module_init(initfn) and define the declaration of initfn
----------------------------
revision 1.31
date: 2014/05/18 04:26:28;  author: root;  state: Exp;  lines: +9 -0
*** empty log message ***
----------------------------
revision 1.30
date: 2014/05/13 13:27:32;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.29
date: 2014/05/08 03:47:42;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.28
date: 2014/05/08 03:31:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/05/08 03:30:27;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/05/08 03:28:42;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/05/08 03:20:39;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/05/08 03:15:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/05/08 03:05:46;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.22
date: 2014/05/08 03:00:33;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.21
date: 2014/05/08 02:59:54;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.20
date: 2014/05/08 02:13:15;  author: root;  state: Exp;  lines: +4 -3
replace by [] and -&gt; by .
----------------------------
revision 1.19
date: 2014/05/08 02:06:31;  author: root;  state: Exp;  lines: +11 -7
print the major and minor number for all nodes.
----------------------------
revision 1.18
date: 2014/05/07 03:41:18;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/05/07 03:34:19;  author: root;  state: Exp;  lines: +29 -8
call MKDEV
call cdev_add
----------------------------
revision 1.16
date: 2014/05/06 07:34:43;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/06 07:32:45;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/06 07:23:46;  author: root;  state: Exp;  lines: +2 -2
define the module_param above the init_func
----------------------------
revision 1.13
date: 2014/05/06 07:18:42;  author: root;  state: Exp;  lines: +2 -0
define module_param call
----------------------------
revision 1.12
date: 2014/05/06 06:44:23;  author: root;  state: Exp;  lines: +2 -1
initilize the struct ScullDev above the function name
----------------------------
revision 1.11
date: 2014/05/06 06:24:59;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/06 03:34:40;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/06 03:31:46;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 03:26:36;  author: root;  state: Exp;  lines: +9 -0
call kmalloc and allocate the space uptp the structure SkullDev.
SkullDev is used to map the memory of the Device Driver.
defint the *skulldev which is extern and define in the struct SkullDev
----------------------------
revision 1.7
date: 2014/05/06 02:55:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/06 02:31:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/06 02:30:20;  author: root;  state: Exp;  lines: +2 -2
the fuction name we use __
----------------------------
revision 1.4
date: 2014/05/06 02:24:27;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:17:40;  author: root;  state: Exp;  lines: +5 -2
initialize the extern variable to MACRO within the function itself
----------------------------
revision 1.2
date: 2014/05/06 02:05:12;  author: root;  state: Exp;  lines: +21 -1
call alloc chr_dev region to register the DD into kernel and then call MAJOR and MINOR to display ita majorno and mno.
----------------------------
revision 1.1
date: 2014/05/06 00:59:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
mention the prototype of devopen and devrelease
----------------------------
revision 1.6
date: 2014/05/15 11:37:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 10:20:55;  author: root;  state: Exp;  lines: +3 -5
write the prototype fot the create_scullqset, create_qset, create_quantun.
----------------------------
revision 1.4
date: 2014/05/13 17:03:23;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/13 15:11:44;  author: root;  state: Exp;  lines: +1 -0
write the prototype of the devwrite()
----------------------------
revision 1.2
date: 2014/05/13 14:34:33;  author: root;  state: Exp;  lines: +1 -0
give the prototype of trim function used in the devopen and this trim function is used to flush the data, when its open in WR mode.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the mapping of the open close and write system call from the application layer to the kernel system call...
----------------------------
revision 1.1
date: 2014/05/18 09:50:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
used for the mapping purpose.
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
declare the prototype.
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.5
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 5;	selected revisions: 5
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.5
date: 2014/05/24 11:49:01;  author: root;  state: Exp;  lines: +9 -9
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 11:35:56;  author: root;  state: Exp;  lines: +12 -12
close the fd for the writing then open it again in the read mode.
----------------------------
revision 1.3
date: 2014/05/24 09:07:54;  author: root;  state: Exp;  lines: +16 -2
close the fd for the write operation(important to close the fd otherwise use lseek)
then open in the read mode then read while using its file descriptor.
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devread.c,v
Working file: devread.c
head: 1.8
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 8;	selected revisions: 8
description:
write the fuction for the read which is work in the kernel layer.
----------------------------
revision 1.8
date: 2014/05/24 11:40:26;  author: root;  state: Exp;  lines: +9 -5
give the defination for the read function.
----------------------------
revision 1.7
date: 2014/05/24 10:34:09;  author: root;  state: Exp;  lines: +7 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/24 09:28:15;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/24 09:26:24;  author: root;  state: Exp;  lines: +7 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/24 09:21:09;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/24 09:19:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/24 09:16:07;  author: root;  state: Exp;  lines: +1 -0
make a access to the private data to the sculldev
----------------------------
revision 1.1
date: 2014/05/24 09:09:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used for the mapping purpose.
----------------------------
revision 1.2
date: 2014/05/24 09:09:56;  author: root;  state: Exp;  lines: +2 -1
do the mapping of read
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
declare the prototype.
----------------------------
revision 1.2
date: 2014/05/24 09:07:02;  author: root;  state: Exp;  lines: +2 -0
mention the prototype of the read call which is is fs.h header file and is in the struct file_operations {
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driverread-from-kernel-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(Write in the multiple Qsets)</title>
		<link>https://www.emblogic.com/blog/05/character-driverwrite-in-the-multiple-qsets/</link>
		<comments>https://www.emblogic.com/blog/05/character-driverwrite-in-the-multiple-qsets/#comments</comments>
		<pubDate>Sat, 24 May 2014 07:57:33 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10190</guid>
		<description><![CDATA[#here i am able to write in the multiple qsets of the scull and by this i am able to write in the kernel layer.... RCS file: application.c,v Working file: application.c head: 1.7 branch: locks: strict access list: symbolic names: &#8230; <a href="https://www.emblogic.com/blog/05/character-driverwrite-in-the-multiple-qsets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#here i am able to write in the multiple qsets of the scull and by this i am able to write in the kernel layer....
RCS file: application.c,v
Working file: application.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
make the open call.
----------------------------
revision 1.7
date: 2014/05/18 09:45:03;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/18 09:10:37;  author: root;  state: Exp;  lines: +8 -8
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/18 04:26:31;  author: root;  state: Exp;  lines: +8 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/13 15:18:27;  author: root;  state: Exp;  lines: +1 -0
include the string.h
----------------------------
revision 1.3
date: 2014/05/13 15:17:20;  author: root;  state: Exp;  lines: +5 -1
use the write system call.
----------------------------
revision 1.2
date: 2014/05/08 06:06:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/08 06:05:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the extern variable as dev, nod, minorno and majorno.
----------------------------
revision 1.4
date: 2014/05/07 03:36:11;  author: root;  state: Exp;  lines: +5 -0
define extern for new_dev quantum_size qset_size data_size and device_size
----------------------------
revision 1.3
date: 2014/05/06 06:25:08;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/06 03:29:21;  author: root;  state: Exp;  lines: +6 -0
declare a structure SkullDev with a structure cdev define in cdev,h
----------------------------
revision 1.1
date: 2014/05/06 02:07:46;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
including the linux/modules.
includding the linux/init.
define GPL.
----------------------------
revision 1.16
date: 2014/05/18 04:25:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/15 10:20:14;  author: root;  state: Exp;  lines: +1 -0
include asm-generic uaccess.h header file for the copy_to_user.
----------------------------
revision 1.14
date: 2014/05/13 13:27:30;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/11 14:39:30;  author: root;  state: Exp;  lines: +4 -0
make the macro for the header because its included multiple times in the program.....and we have to use __header as macro otherwise it leads to a error.
----------------------------
revision 1.12
date: 2014/05/07 03:41:07;  author: root;  state: Exp;  lines: +4 -4
define MACROS
----------------------------
revision 1.11
date: 2014/05/07 03:31:31;  author: root;  state: Exp;  lines: +27 -1
define macro for QSET_SIZE, QUANTUM_SIZE, DATA_SIZE and DEVICE_SIZE.
define structure ScullQset.
----------------------------
revision 1.10
date: 2014/05/06 07:17:41;  author: root;  state: Exp;  lines: +2 -1
include the moduleparam.h for the module_param i.e. passing the arguments in the kernel layer.
----------------------------
revision 1.9
date: 2014/05/06 06:36:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 06:33:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/06 06:31:04;  author: root;  state: Exp;  lines: +2 -0
include slab.h for the kmalloc and kdev_t for the Macros MINOR and MAJOR.
----------------------------
revision 1.6
date: 2014/05/06 06:26:43;  author: root;  state: Exp;  lines: +1 -0
include cdev.h header file for struct cdev
----------------------------
revision 1.5
date: 2014/05/06 06:24:27;  author: root;  state: Exp;  lines: +4 -0
declare the struct SkullDev in header instead of in declaration.h.
----------------------------
revision 1.4
date: 2014/05/06 02:12:04;  author: root;  state: Exp;  lines: +4 -4
redfine the macro in header file again.
----------------------------
revision 1.3
date: 2014/05/06 02:03:21;  author: root;  state: Exp;  lines: +17 -0
include the linux/fs.h
difine the macros DEVNAME N
----------------------------
revision 1.2
date: 2014/05/06 01:04:44;  author: root;  state: Exp;  lines: +1 -1
correct the license GPL
----------------------------
revision 1.1
date: 2014/05/06 00:58:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
use the module_exit(exitfn) and define the declaration of exitfn
----------------------------
revision 1.6
date: 2014/05/06 03:28:56;  author: root;  state: Exp;  lines: +1 -0
kfree the memory allocated during kmalloc.
----------------------------
revision 1.5
date: 2014/05/06 02:35:09;  author: root;  state: Exp;  lines: +2 -1
include the declaration.h in this.
----------------------------
revision 1.4
date: 2014/05/06 02:32:49;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:30:41;  author: root;  state: Exp;  lines: +1 -1
the function name we use as __
----------------------------
revision 1.2
date: 2014/05/06 02:06:30;  author: root;  state: Exp;  lines: +3 -1
call unregister_chrdev_region for the unregistration.
----------------------------
revision 1.1
date: 2014/05/06 01:00:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
write the defination of the devopen
----------------------------
revision 1.4
date: 2014/05/13 14:35:37;  author: root;  state: Exp;  lines: +22 -0
call the trim function.
write the defination of the trim function.
----------------------------
revision 1.3
date: 2014/05/11 15:53:59;  author: root;  state: Exp;  lines: +3 -2
include declaration.h
----------------------------
revision 1.2
date: 2014/05/11 15:26:48;  author: root;  state: Exp;  lines: +12 -0
introduce container of  which is used to point out the memory of external device.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
write the devwrite function.
map the devwrite function.
----------------------------
revision 1.12
date: 2014/05/18 09:42:30;  author: root;  state: Exp;  lines: +1 -1
return the size-ret to the write system call of the application layer i.e application.c program.
----------------------------
revision 1.11
date: 2014/05/18 09:16:13;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/18 05:28:36;  author: root;  state: Exp;  lines: +7 -7
make the scullqset_creat qset_create and quantum_creat
make the 1 quantum for the world emblogic.
and make the 1 scullqset for the world emblogic
----------------------------
revision 1.9
date: 2014/05/18 04:26:34;  author: root;  state: Exp;  lines: +31 -15
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/15 14:20:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/15 11:56:09;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/15 11:53:16;  author: root;  state: Exp;  lines: +6 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 11:37:23;  author: root;  state: Exp;  lines: +7 -5
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/15 10:21:47;  author: root;  state: Exp;  lines: +28 -20
write the defination for the create_scullqset, create_qset, and create_quantum.
----------------------------
revision 1.3
date: 2014/05/13 17:03:30;  author: root;  state: Exp;  lines: +73 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/13 15:12:20;  author: root;  state: Exp;  lines: +4 -1
give the defination of devwrite()
----------------------------
revision 1.1
date: 2014/05/13 15:07:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.31
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 31;	selected revisions: 31
description:
use the module_init(initfn) and define the declaration of initfn
----------------------------
revision 1.31
date: 2014/05/18 04:26:28;  author: root;  state: Exp;  lines: +9 -0
*** empty log message ***
----------------------------
revision 1.30
date: 2014/05/13 13:27:32;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.29
date: 2014/05/08 03:47:42;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.28
date: 2014/05/08 03:31:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/05/08 03:30:27;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/05/08 03:28:42;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/05/08 03:20:39;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/05/08 03:15:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/05/08 03:05:46;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.22
date: 2014/05/08 03:00:33;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.21
date: 2014/05/08 02:59:54;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.20
date: 2014/05/08 02:13:15;  author: root;  state: Exp;  lines: +4 -3
replace by [] and -&gt; by .
----------------------------
revision 1.19
date: 2014/05/08 02:06:31;  author: root;  state: Exp;  lines: +11 -7
print the major and minor number for all nodes.
----------------------------
revision 1.18
date: 2014/05/07 03:41:18;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/05/07 03:34:19;  author: root;  state: Exp;  lines: +29 -8
call MKDEV
call cdev_add
----------------------------
revision 1.16
date: 2014/05/06 07:34:43;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/06 07:32:45;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/06 07:23:46;  author: root;  state: Exp;  lines: +2 -2
define the module_param above the init_func
----------------------------
revision 1.13
date: 2014/05/06 07:18:42;  author: root;  state: Exp;  lines: +2 -0
define module_param call
----------------------------
revision 1.12
date: 2014/05/06 06:44:23;  author: root;  state: Exp;  lines: +2 -1
initilize the struct ScullDev above the function name
----------------------------
revision 1.11
date: 2014/05/06 06:24:59;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/06 03:34:40;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/06 03:31:46;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 03:26:36;  author: root;  state: Exp;  lines: +9 -0
call kmalloc and allocate the space uptp the structure SkullDev.
SkullDev is used to map the memory of the Device Driver.
defint the *skulldev which is extern and define in the struct SkullDev
----------------------------
revision 1.7
date: 2014/05/06 02:55:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/06 02:31:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/06 02:30:20;  author: root;  state: Exp;  lines: +2 -2
the fuction name we use __
----------------------------
revision 1.4
date: 2014/05/06 02:24:27;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:17:40;  author: root;  state: Exp;  lines: +5 -2
initialize the extern variable to MACRO within the function itself
----------------------------
revision 1.2
date: 2014/05/06 02:05:12;  author: root;  state: Exp;  lines: +21 -1
call alloc chr_dev region to register the DD into kernel and then call MAJOR and MINOR to display ita majorno and mno.
----------------------------
revision 1.1
date: 2014/05/06 00:59:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
mention the prototype of devopen and devrelease
----------------------------
revision 1.6
date: 2014/05/15 11:37:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 10:20:55;  author: root;  state: Exp;  lines: +3 -5
write the prototype fot the create_scullqset, create_qset, create_quantun.
----------------------------
revision 1.4
date: 2014/05/13 17:03:23;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/13 15:11:44;  author: root;  state: Exp;  lines: +1 -0
write the prototype of the devwrite()
----------------------------
revision 1.2
date: 2014/05/13 14:34:33;  author: root;  state: Exp;  lines: +1 -0
give the prototype of trim function used in the devopen and this trim function is used to flush the data, when its open in WR mode.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the mapping of the open close and write system call from the application layer to the kernel system call...
----------------------------
revision 1.1
date: 2014/05/18 09:50:00;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: application.c,v
Working file: application.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
this is the application program in the user space
open write and close is used
----------------------------
revision 1.2
date: 2014/05/24 07:49:26;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define some macros which are freq	uently used in our program.
----------------------------
revision 1.1
date: 2014/05/24 07:14:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
used to write in the multiple quantum
multiple qset
then use copy_from_user.
very important file and hard too.
----------------------------
revision 1.2
date: 2014/05/24 07:47:23;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/24 07:17:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
used for the mapping purpose.
----------------------------
revision 1.1
date: 2014/05/24 07:18:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to insert the module the register the module.
in this i dont use trim function.
----------------------------
revision 1.1
date: 2014/05/24 07:12:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
declare the prototype.
----------------------------
revision 1.1
date: 2014/05/24 07:14:52;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is used to remove and unregistered the module from the /proc/devices table.
----------------------------
revision 1.1
date: 2014/05/24 07:13:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
open the module in the kernel layer by passing the argument from the application layer of the open system call.
here we are not using the trim funciton.
----------------------------
revision 1.1
date: 2014/05/24 07:15:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
for closeing the module
----------------------------
revision 1.1
date: 2014/05/24 07:16:45;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
define macros and include header file in this and make a ScullDev and ScullQset structure in this.
----------------------------
revision 1.1
date: 2014/05/24 07:11:00;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driverwrite-in-the-multiple-qsets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver(Writing data in the 1 quantum)</title>
		<link>https://www.emblogic.com/blog/05/character-driverwriting-data-in-the-1-quantum/</link>
		<comments>https://www.emblogic.com/blog/05/character-driverwriting-data-in-the-1-quantum/#comments</comments>
		<pubDate>Sun, 18 May 2014 09:56:53 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10140</guid>
		<description><![CDATA[#here i write in the 1 quantum of the scull and by this i am able to write in the kernel layer.... RCS file: application.c,v Working file: application.c head: 1.7 branch: locks: strict access list: symbolic names: keyword substitution: kv &#8230; <a href="https://www.emblogic.com/blog/05/character-driverwriting-data-in-the-1-quantum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#here i write in the 1 quantum of the scull and by this i am able to write in the kernel layer....
RCS file: application.c,v
Working file: application.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
make the open call.
----------------------------
revision 1.7
date: 2014/05/18 09:45:03;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/18 09:10:37;  author: root;  state: Exp;  lines: +8 -8
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/18 04:26:31;  author: root;  state: Exp;  lines: +8 -7
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/13 15:18:27;  author: root;  state: Exp;  lines: +1 -0
include the string.h
----------------------------
revision 1.3
date: 2014/05/13 15:17:20;  author: root;  state: Exp;  lines: +5 -1
use the write system call.
----------------------------
revision 1.2
date: 2014/05/08 06:06:12;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.1
date: 2014/05/08 06:05:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
declare the extern variable as dev, nod, minorno and majorno.
----------------------------
revision 1.4
date: 2014/05/07 03:36:11;  author: root;  state: Exp;  lines: +5 -0
define extern for new_dev quantum_size qset_size data_size and device_size
----------------------------
revision 1.3
date: 2014/05/06 06:25:08;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/06 03:29:21;  author: root;  state: Exp;  lines: +6 -0
declare a structure SkullDev with a structure cdev define in cdev,h
----------------------------
revision 1.1
date: 2014/05/06 02:07:46;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devrelease.c,v
Working file: devrelease.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.16
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 16;	selected revisions: 16
description:
including the linux/modules.
includding the linux/init.
define GPL.
----------------------------
revision 1.16
date: 2014/05/18 04:25:51;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/15 10:20:14;  author: root;  state: Exp;  lines: +1 -0
include asm-generic uaccess.h header file for the copy_to_user.
----------------------------
revision 1.14
date: 2014/05/13 13:27:30;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.13
date: 2014/05/11 14:39:30;  author: root;  state: Exp;  lines: +4 -0
make the macro for the header because its included multiple times in the program.....and we have to use __header as macro otherwise it leads to a error.
----------------------------
revision 1.12
date: 2014/05/07 03:41:07;  author: root;  state: Exp;  lines: +4 -4
define MACROS
----------------------------
revision 1.11
date: 2014/05/07 03:31:31;  author: root;  state: Exp;  lines: +27 -1
define macro for QSET_SIZE, QUANTUM_SIZE, DATA_SIZE and DEVICE_SIZE.
define structure ScullQset.
----------------------------
revision 1.10
date: 2014/05/06 07:17:41;  author: root;  state: Exp;  lines: +2 -1
include the moduleparam.h for the module_param i.e. passing the arguments in the kernel layer.
----------------------------
revision 1.9
date: 2014/05/06 06:36:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 06:33:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/06 06:31:04;  author: root;  state: Exp;  lines: +2 -0
include slab.h for the kmalloc and kdev_t for the Macros MINOR and MAJOR.
----------------------------
revision 1.6
date: 2014/05/06 06:26:43;  author: root;  state: Exp;  lines: +1 -0
include cdev.h header file for struct cdev
----------------------------
revision 1.5
date: 2014/05/06 06:24:27;  author: root;  state: Exp;  lines: +4 -0
declare the struct SkullDev in header instead of in declaration.h.
----------------------------
revision 1.4
date: 2014/05/06 02:12:04;  author: root;  state: Exp;  lines: +4 -4
redfine the macro in header file again.
----------------------------
revision 1.3
date: 2014/05/06 02:03:21;  author: root;  state: Exp;  lines: +17 -0
include the linux/fs.h
difine the macros DEVNAME N
----------------------------
revision 1.2
date: 2014/05/06 01:04:44;  author: root;  state: Exp;  lines: +1 -1
correct the license GPL
----------------------------
revision 1.1
date: 2014/05/06 00:58:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
use the module_exit(exitfn) and define the declaration of exitfn
----------------------------
revision 1.6
date: 2014/05/06 03:28:56;  author: root;  state: Exp;  lines: +1 -0
kfree the memory allocated during kmalloc.
----------------------------
revision 1.5
date: 2014/05/06 02:35:09;  author: root;  state: Exp;  lines: +2 -1
include the declaration.h in this.
----------------------------
revision 1.4
date: 2014/05/06 02:32:49;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:30:41;  author: root;  state: Exp;  lines: +1 -1
the function name we use as __
----------------------------
revision 1.2
date: 2014/05/06 02:06:30;  author: root;  state: Exp;  lines: +3 -1
call unregister_chrdev_region for the unregistration.
----------------------------
revision 1.1
date: 2014/05/06 01:00:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devopen.c,v
Working file: devopen.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
write the defination of the devopen
----------------------------
revision 1.4
date: 2014/05/13 14:35:37;  author: root;  state: Exp;  lines: +22 -0
call the trim function.
write the defination of the trim function.
----------------------------
revision 1.3
date: 2014/05/11 15:53:59;  author: root;  state: Exp;  lines: +3 -2
include declaration.h
----------------------------
revision 1.2
date: 2014/05/11 15:26:48;  author: root;  state: Exp;  lines: +12 -0
introduce container of  which is used to point out the memory of external device.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: devwrite.c,v
Working file: devwrite.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
write the devwrite function.
map the devwrite function.
----------------------------
revision 1.12
date: 2014/05/18 09:42:30;  author: root;  state: Exp;  lines: +1 -1
return the size-ret to the write system call of the application layer i.e application.c program.
----------------------------
revision 1.11
date: 2014/05/18 09:16:13;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/18 05:28:36;  author: root;  state: Exp;  lines: +7 -7
make the scullqset_creat qset_create and quantum_creat
make the 1 quantum for the world emblogic.
and make the 1 scullqset for the world emblogic
----------------------------
revision 1.9
date: 2014/05/18 04:26:34;  author: root;  state: Exp;  lines: +31 -15
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/15 14:20:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/15 11:56:09;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/15 11:53:16;  author: root;  state: Exp;  lines: +6 -0
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 11:37:23;  author: root;  state: Exp;  lines: +7 -5
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/15 10:21:47;  author: root;  state: Exp;  lines: +28 -20
write the defination for the create_scullqset, create_qset, and create_quantum.
----------------------------
revision 1.3
date: 2014/05/13 17:03:30;  author: root;  state: Exp;  lines: +73 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/13 15:12:20;  author: root;  state: Exp;  lines: +4 -1
give the defination of devwrite()
----------------------------
revision 1.1
date: 2014/05/13 15:07:20;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.31
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 31;	selected revisions: 31
description:
use the module_init(initfn) and define the declaration of initfn
----------------------------
revision 1.31
date: 2014/05/18 04:26:28;  author: root;  state: Exp;  lines: +9 -0
*** empty log message ***
----------------------------
revision 1.30
date: 2014/05/13 13:27:32;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.29
date: 2014/05/08 03:47:42;  author: root;  state: Exp;  lines: +4 -4
*** empty log message ***
----------------------------
revision 1.28
date: 2014/05/08 03:31:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.27
date: 2014/05/08 03:30:27;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.26
date: 2014/05/08 03:28:42;  author: root;  state: Exp;  lines: +4 -2
*** empty log message ***
----------------------------
revision 1.25
date: 2014/05/08 03:20:39;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.24
date: 2014/05/08 03:15:11;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.23
date: 2014/05/08 03:05:46;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.22
date: 2014/05/08 03:00:33;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.21
date: 2014/05/08 02:59:54;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.20
date: 2014/05/08 02:13:15;  author: root;  state: Exp;  lines: +4 -3
replace by [] and -&gt; by .
----------------------------
revision 1.19
date: 2014/05/08 02:06:31;  author: root;  state: Exp;  lines: +11 -7
print the major and minor number for all nodes.
----------------------------
revision 1.18
date: 2014/05/07 03:41:18;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.17
date: 2014/05/07 03:34:19;  author: root;  state: Exp;  lines: +29 -8
call MKDEV
call cdev_add
----------------------------
revision 1.16
date: 2014/05/06 07:34:43;  author: root;  state: Exp;  lines: +2 -1
*** empty log message ***
----------------------------
revision 1.15
date: 2014/05/06 07:32:45;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.14
date: 2014/05/06 07:23:46;  author: root;  state: Exp;  lines: +2 -2
define the module_param above the init_func
----------------------------
revision 1.13
date: 2014/05/06 07:18:42;  author: root;  state: Exp;  lines: +2 -0
define module_param call
----------------------------
revision 1.12
date: 2014/05/06 06:44:23;  author: root;  state: Exp;  lines: +2 -1
initilize the struct ScullDev above the function name
----------------------------
revision 1.11
date: 2014/05/06 06:24:59;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/06 03:34:40;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/06 03:31:46;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 03:26:36;  author: root;  state: Exp;  lines: +9 -0
call kmalloc and allocate the space uptp the structure SkullDev.
SkullDev is used to map the memory of the Device Driver.
defint the *skulldev which is extern and define in the struct SkullDev
----------------------------
revision 1.7
date: 2014/05/06 02:55:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/06 02:31:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/06 02:30:20;  author: root;  state: Exp;  lines: +2 -2
the fuction name we use __
----------------------------
revision 1.4
date: 2014/05/06 02:24:27;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:17:40;  author: root;  state: Exp;  lines: +5 -2
initialize the extern variable to MACRO within the function itself
----------------------------
revision 1.2
date: 2014/05/06 02:05:12;  author: root;  state: Exp;  lines: +21 -1
call alloc chr_dev region to register the DD into kernel and then call MAJOR and MINOR to display ita majorno and mno.
----------------------------
revision 1.1
date: 2014/05/06 00:59:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: prototype.h,v
Working file: prototype.h
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
mention the prototype of devopen and devrelease
----------------------------
revision 1.6
date: 2014/05/15 11:37:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/15 10:20:55;  author: root;  state: Exp;  lines: +3 -5
write the prototype fot the create_scullqset, create_qset, create_quantun.
----------------------------
revision 1.4
date: 2014/05/13 17:03:23;  author: root;  state: Exp;  lines: +4 -0
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/13 15:11:44;  author: root;  state: Exp;  lines: +1 -0
write the prototype of the devwrite()
----------------------------
revision 1.2
date: 2014/05/13 14:34:33;  author: root;  state: Exp;  lines: +1 -0
give the prototype of trim function used in the devopen and this trim function is used to flush the data, when its open in WR mode.
----------------------------
revision 1.1
date: 2014/05/08 04:56:14;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: fileopr.h,v
Working file: fileopr.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
this is the mapping of the open close and write system call from the application layer to the kernel system call...
----------------------------
revision 1.1
date: 2014/05/18 09:50:00;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driverwriting-data-in-the-1-quantum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver.</title>
		<link>https://www.emblogic.com/blog/05/character-driver-32/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-32/#comments</comments>
		<pubDate>Fri, 16 May 2014 04:02:45 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10106</guid>
		<description><![CDATA[#register using the alloc_chrdev_region and unregister using the unregister_chrdev_region and then define the struct Sculldev and allocate the memory for it and then pointing the address of kmalloc with this struct type pointer.. RCS file: cleanup.c,v Working file: cleanup.c head: &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-32/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">#register using the alloc_chrdev_region and unregister using the unregister_chrdev_region and then define the struct Sculldev and allocate the memory for it and then pointing the address of kmalloc with this struct type pointer..
RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
use the module_exit(exitfn) and define the declaration of exitfn
----------------------------
revision 1.6
date: 2014/05/06 03:28:56;  author: root;  state: Exp;  lines: +1 -0
kfree the memory allocated during kmalloc.
----------------------------
revision 1.5
date: 2014/05/06 02:35:09;  author: root;  state: Exp;  lines: +2 -1
include the declaration.h in this.
----------------------------
revision 1.4
date: 2014/05/06 02:32:49;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:30:41;  author: root;  state: Exp;  lines: +1 -1
the function name we use as __
----------------------------
revision 1.2
date: 2014/05/06 02:06:30;  author: root;  state: Exp;  lines: +3 -1
call unregister_chrdev_region for the unregistration.
----------------------------
revision 1.1
date: 2014/05/06 01:00:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;	selected revisions: 3
description:
declare the extern variable as dev, nod, minorno and majorno.
----------------------------
revision 1.3
date: 2014/05/06 06:25:08;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2014/05/06 03:29:21;  author: root;  state: Exp;  lines: +6 -0
declare a structure SkullDev with a structure cdev define in cdev,h
----------------------------
revision 1.1
date: 2014/05/06 02:07:46;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.9
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 9;	selected revisions: 9
description:
including the linux/modules.
includding the linux/init.
define GPL.
----------------------------
revision 1.9
date: 2014/05/06 06:36:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 06:33:38;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/06 06:31:04;  author: root;  state: Exp;  lines: +2 -0
include slab.h for the kmalloc and kdev_t for the Macros MINOR and MAJOR.
----------------------------
revision 1.6
date: 2014/05/06 06:26:43;  author: root;  state: Exp;  lines: +1 -0
include cdev.h header file for struct cdev
----------------------------
revision 1.5
date: 2014/05/06 06:24:27;  author: root;  state: Exp;  lines: +4 -0
declare the struct SkullDev in header instead of in declaration.h.
----------------------------
revision 1.4
date: 2014/05/06 02:12:04;  author: root;  state: Exp;  lines: +4 -4
redfine the macro in header file again.
----------------------------
revision 1.3
date: 2014/05/06 02:03:21;  author: root;  state: Exp;  lines: +17 -0
include the linux/fs.h
difine the macros DEVNAME N
----------------------------
revision 1.2
date: 2014/05/06 01:04:44;  author: root;  state: Exp;  lines: +1 -1
correct the license GPL
----------------------------
revision 1.1
date: 2014/05/06 00:58:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.12
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 12;	selected revisions: 12
description:
use the module_init(initfn) and define the declaration of initfn
----------------------------
revision 1.12
date: 2014/05/06 06:44:23;  author: root;  state: Exp;  lines: +2 -1
initilize the struct ScullDev above the function name
----------------------------
revision 1.11
date: 2014/05/06 06:24:59;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/06 03:34:40;  author: root;  state: Exp;  lines: +5 -5
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/06 03:31:46;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/06 03:26:36;  author: root;  state: Exp;  lines: +9 -0
call kmalloc and allocate the space uptp the structure SkullDev.
SkullDev is used to map the memory of the Device Driver.
defint the *skulldev which is extern and define in the struct SkullDev
----------------------------
revision 1.7
date: 2014/05/06 02:55:59;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/06 02:31:58;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/06 02:30:20;  author: root;  state: Exp;  lines: +2 -2
the fuction name we use __
----------------------------
revision 1.4
date: 2014/05/06 02:24:27;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.3
date: 2014/05/06 02:17:40;  author: root;  state: Exp;  lines: +5 -2
initialize the extern variable to MACRO within the function itself
----------------------------
revision 1.2
date: 2014/05/06 02:05:12;  author: root;  state: Exp;  lines: +21 -1
call alloc chr_dev region to register the DD into kernel and then call MAJOR and MINOR to display ita majorno and mno.
----------------------------
revision 1.1
date: 2014/05/06 00:59:15;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver (Insertion of DD and Registration of DD into the kernel)</title>
		<link>https://www.emblogic.com/blog/05/character-driver-insertion-of-dd-and-registration-of-dd-into-the-kernel/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-insertion-of-dd-and-registration-of-dd-into-the-kernel/#comments</comments>
		<pubDate>Sun, 11 May 2014 11:39:41 +0000</pubDate>
		<dc:creator><![CDATA[Ankit.singhal85@yahoo.com]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9964</guid>
		<description><![CDATA[#insert the device driver and get register in the kernel i.e get the major number with a register_chrdev which is in fs.h and get unregister using the unregister_chrdev.....:) :) RCS file: init.c,v Working file: init.c head: 1.17 branch: locks: strict &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-insertion-of-dd-and-registration-of-dd-into-the-kernel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre>#insert the device driver and get register in the kernel i.e get the major number with a register_chrdev which is in fs.h and get unregister using the unregister_chrdev.....:) :)
RCS file: init.c,v
Working file: init.c
head: 1.17
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 17;	selected revisions: 17
description:
give the defination for the module_init its the entry point to the kernel.
----------------------------
revision 1.17
date: 2014/05/06 05:22:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.16
date: 2014/05/06 05:10:50;  author: root;  state: Exp;  lines: +10 -3
give the DEVNAME macro.
give the DEBUG macro.
----------------------------
revision 1.15
date: 2014/05/06 04:43:29;  author: root;  state: Exp;  lines: +3 -2
assingning MAJORNO= majorno inside the fuction.
----------------------------
revision 1.14
date: 2014/05/06 04:33:31;  author: root;  state: Exp;  lines: +1 -0
include the declaration.h header file in this
----------------------------
revision 1.13
date: 2014/05/06 04:22:00;  author: root;  state: Exp;  lines: +3 -3
assigning the Macro MAJORNO equal to extern majorno.
and dont use macro for process always use extern majono for process.
----------------------------
revision 1.12
date: 2014/05/06 04:11:54;  author: root;  state: Exp;  lines: +5 -3
use the MAJORNO macro and extern majorno
----------------------------
revision 1.11
date: 2014/05/06 00:56:34;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.10
date: 2014/05/05 23:54:45;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.9
date: 2014/05/05 23:15:56;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.8
date: 2014/05/05 23:14:10;  author: root;  state: Exp;  lines: +3 -3
*** empty log message ***
----------------------------
revision 1.7
date: 2014/05/05 23:10:24;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.6
date: 2014/05/05 22:59:35;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
----------------------------
revision 1.5
date: 2014/05/05 22:47:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.4
date: 2014/05/05 22:29:55;  author: root;  state: Exp;  lines: +2 -1
not include the fileopr.h and define the fops of file_operations type in init.c file itself.
----------------------------
revision 1.3
date: 2014/05/05 22:17:16;  author: root;  state: Exp;  lines: +1 -0
include fileopr.h header file in the init.c
----------------------------
revision 1.2
date: 2014/05/05 22:13:57;  author: root;  state: Exp;  lines: +9 -0
this is the registration of the Device Driver into the kernel.
define register_chardev which is available in fs.h at 79%.
----------------------------
revision 1.1
date: 2014/05/04 03:49:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7;	selected revisions: 7
description:
give the defination for the module_exit.
----------------------------
revision 1.7
date: 2014/05/06 05:11:26;  author: root;  state: Exp;  lines: +3 -1
give the DEBUG and DEVNAME macro
----------------------------
revision 1.6
date: 2014/05/06 04:45:28;  author: root;  state: Exp;  lines: +1 -1
introduce ; in the unregister_chrdev
----------------------------
revision 1.5
date: 2014/05/06 04:33:48;  author: root;  state: Exp;  lines: +1 -0
include the declaration.h header file in this.
----------------------------
revision 1.4
date: 2014/05/06 04:12:37;  author: root;  state: Exp;  lines: +1 -0
define the function unregister_chrdev
----------------------------
revision 1.3
date: 2014/05/04 04:17:02;  author: root;  state: Exp;  lines: +1 -1
redeclaration of cleanup function.
----------------------------
revision 1.2
date: 2014/05/04 04:12:01;  author: root;  state: Exp;  lines: +1 -1
this is the cleanup
----------------------------
revision 1.1
date: 2014/05/04 03:49:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
extern the int majorno.
----------------------------
revision 1.1
date: 2014/05/06 04:11:34;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
this is the header file for the device driver.
including the init.h and module.h.
and MODULE_LICENSE for the GPL(gerneal purpose license)
----------------------------
revision 1.4
date: 2014/05/06 05:10:01;  author: root;  state: Exp;  lines: +8 -0
define macro DEBUG for the printk.
difine macro DEVNAME for the device name.
----------------------------
revision 1.3
date: 2014/05/06 04:11:01;  author: root;  state: Exp;  lines: +5 -0
define MAJORNO macro
----------------------------
revision 1.2
date: 2014/05/06 00:56:24;  author: root;  state: Exp;  lines: +1 -0
include the fs.h
----------------------------
revision 1.1
date: 2014/05/04 03:49:15;  author: root;  state: Exp;
Initial revision
=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-insertion-of-dd-and-registration-of-dd-into-the-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
