<?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; sanjayece.kumar</title>
	<atom:link href="https://www.emblogic.com/blog/author/sanjayece-kumar/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>enter 5 number find largest and lowest number</title>
		<link>https://www.emblogic.com/blog/08/enter-5-number-find-largest-and-lowest-number/</link>
		<comments>https://www.emblogic.com/blog/08/enter-5-number-find-largest-and-lowest-number/#comments</comments>
		<pubDate>Sun, 24 Aug 2014 06:36:14 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11418</guid>
		<description><![CDATA[RCS file: 4.2.c,v Working file: 4.2.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: enter the 5 number and find largest and smallest number &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/08/24 &#8230; <a href="https://www.emblogic.com/blog/08/enter-5-number-find-largest-and-lowest-number/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: 4.2.c,v<br />
Working file: 4.2.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
enter the 5 number and find largest and smallest number<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/08/24 06:33:38;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/enter-5-number-find-largest-and-lowest-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>https://www.emblogic.com/blog/08/11407/</link>
		<comments>https://www.emblogic.com/blog/08/11407/#comments</comments>
		<pubDate>Sat, 23 Aug 2014 04:40:25 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11407</guid>
		<description><![CDATA[Parallel port modes The IEEE 1284 Standard which has been published in 1994 defines five modes of data transfer for parallel port. They are, 1) Compatibility Mode 2) Nibble Mode 3) Byte Mode 4) EPP 5) ECP Hardware The pin &#8230; <a href="https://www.emblogic.com/blog/08/11407/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Parallel port modes<br />
The IEEE 1284 Standard which has been published in 1994 defines five modes of data transfer for parallel port. They are,</p>
<p>1) Compatibility Mode<br />
2) Nibble Mode<br />
3) Byte Mode<br />
4) EPP<br />
5) ECP</p>
<p>Hardware<br />
The pin outs of DB25 connector is shown in the picture below<br />
Parallel Port</p>
<p>The lines in DB25 connector are divided in to three groups, they are</p>
<p>1) Data lines (data bus)<br />
2) Control lines<br />
3) Status lines</p>
<p>As the name refers , data is transferred over data lines , Control lines are used to control the peripheral and of course , the peripheral returns status signals back computer through Status lines. These lines are connected to Data, Control And Status registers internally . The details of parallel port signal lines are given below<br />
Pin No (DB25) 	Signal name 	Direction 	Register &#8211; bit 	Inverted<br />
1 	nStrobe Out 	Control-0 	Yes<br />
2 	Data0 	In/Out 	Data-0 	        No<br />
3 	Data1 	In/Out 	Data-1 	        No<br />
4 	Data2 	In/Out 	Data-2 	        No<br />
5 	Data3 	In/Out 	Data-3 	        No<br />
6 	Data4 	In/Out 	Data-4 	        No<br />
7 	Data5 	In/Out 	Data-5 	        No<br />
8 	Data6 	In/Out 	Data-6 	        No<br />
9 	Data7 	In/Out 	Data-7 	        No<br />
10 	nAck 	In 	Status-6 	No<br />
11 	Busy 	In 	Status-7 	Yes<br />
12 	Paper-Out In 	Status-5 	No<br />
13 	Select 	In 	Status-4 	No<br />
14 	Linefeed Out 	Control-1 	Yes<br />
15 	nError 	In 	Status-3 	No<br />
16 	nInitialize Out Control-2 	No<br />
17    nSelect-Printer OutControl-3 	Yes<br />
18-25 	Ground 	- 	- 	-</p>
<p>Parallel port registers<br />
As you know, the Data, Control and status lines are connected to there corresponding registers inside the computer. So by manipulating these registers in program , one can easily read or write to parallel port with programming languages like &#8216;C&#8217; and BASIC.</p>
<p>The registers found in standard parallel port are ,</p>
<p>1) data register<br />
2) Status register<br />
3) Control register</p>
<p>As there names specifies, Data register is connected to Data lines, Control register is connected to control lines and Status register is connected to Status lines. (Here the word connection does not mean that there is some physical connection between data/control/status lines. The registers are virtually connected to the corresponding lines.). So what ever you write to these registers , will appear in corresponding lines as voltages, Of course, you can measure it with a multimeter. And What ever you give to Parallel port as voltages can be read from these registers(with some restrictions). For example , if we write &#8217;1&#8242; to Data register , the line Data0 will be driven to +5v. Just like this ,we can programmatically turn on and off any of the data lines and Control lines.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/11407/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about proc, proc_create,proc_entry</title>
		<link>https://www.emblogic.com/blog/08/about-proc-proc_createproc_entry/</link>
		<comments>https://www.emblogic.com/blog/08/about-proc-proc_createproc_entry/#comments</comments>
		<pubDate>Fri, 01 Aug 2014 13:19:38 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11339</guid>
		<description><![CDATA[The proc file system is an interface between the kernel and the userspace. Every entry in the proc file system provides some information from the kernel. For eg: The entry &#8220;meminfo&#8221; gives the details of the memory being used in &#8230; <a href="https://www.emblogic.com/blog/08/about-proc-proc_createproc_entry/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The proc file system is an interface between the kernel and the userspace. Every entry in the proc file system provides some information from the kernel.<br />
For eg:<br />
 The entry &#8220;meminfo&#8221;  gives the details of the memory being used in the system.<br />
To read the data in this entry just run<br />
cat /proc/meminfo</p>
<p>Similarly the &#8220;modules&#8221; entry gives details of all the modules that are currently a part of the kernel.<br />
cat /proc/modules</p>
<p>The proc file system is also very useful when we want to debug a kernel module. While debugging we might want to know the values of various variables in the module or may be the data that module is handling. In such situations we can create a proc entry for our selves and dump what ever data we want to look into in the entry.<br />
We will be using the same example character driver that we created in the previous post to create the proc entry.</p>
<p>The proc entry can also be used to pass data to the kernel by writing into the kernel, so there can be two kinds of proc entries<br />
An entry that only reads data from the kernel space<br />
An entry that reads as well as writes data into and from kernel space.</p>
<p>We will start by creating a proc entry for only reading first and then move to a a proc entry for write.<br />
Creating proc entry:</p>
<p>Kernel provides the following functions to create a proc entry</p>
<p>create_proc_read_entry()<br />
create_proc_entry()</p>
<p>Both of these functions are defined in the file linux/proc_fs.h. </p>
<p>The create_proc_entry is a generic function that allows to create both read as well as write entries.<br />
create_proc_read_entry is a function specific to create only read entries.</p>
<p>Its possible that most of the proc entries are created to read data from the kernel space that is why the kernel developers have provided a direct function to create a read proc entry.</p>
<p>We will first use the create_proc_read_entry to create our entry and then look into create_proc_entry. </p>
<p>The proc entries are basically based on the structure &#8220;proc_dir_entry&#8221;. Meaning every proc entry that gets created is represented by a structure of the kind<br />
&#8220;proc_dir_entry&#8221;  by the kernel.<br />
The structure &#8220;proc_dir_entry&#8221;   looks as follows in 2.6.33-21</p>
<p>The prototype of the function create_proc_read_entry is</p>
<p>struct proc_dir_entry *create_proc_read_entry(const char *name,<br />
mode_t mode, struct proc_dir_entry *base,<br />
read_proc_t *read_proc, void * data)</p>
<p>name :  This the name by which entry will be created under the proc file system.<br />
            for eg: if we pass &#8220;first_proc_entry&#8221;  , then it will create a file by the name<br />
            first_proc_entry  under the /proc directory.<br />
mode  :  mode sets the permissions for the entry created, if 0 is passed it takes<br />
                system default settings<br />
base : Base is the base directory in which the entry should be created, this is<br />
          useful when you want to create a proc entry under a sub folder in /proc. If<br />
          you pass NULL it will create it under /proc by default<br />
read_proc:  read_proc is a pointer to the function that should be called every time<br />
                the proc entry is read. The function should be implemented in the<br />
                driver. It is this functions which we will use to display what ever data<br />
                we  want to display to the user.<br />
data :  This is not used by the kernel, but is passed as it is to the read_proc<br />
            function. The data is used by the driver writer to pass any private data<br />
            that has to be passed to the read_proc function.  It can be passed as NULL<br />
             if no data has to be passed.</p>
<p>Once a module gets registered with the kernel, the corresponding proc entry should also be created. So the call to the function create_read_proc_entry is included in the &#8220;init&#8221; function of the driver.</p>
<p>Removing a proc entry: </p>
<p>When a module is removed from the kernel, it should also remove any proc entries it created. The function that enables the removal of proc entry is &#8220;remove_proc_entry&#8221; which has the following prototype<br />
void remove_proc_entry(const char *name, struct proc_dir_entry *parent);</p>
<p>name: Name of the proc entry that has to be removed.<br />
parent: In case the proc entry lies in a subdirectory under the proc filesystem, we<br />
              can pass the subdirectories here.</p>
<p>With this introduction to proc filesystem and the corresponding function calls that will allow us to create the entries we can start writing the code to create our first proc entry.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/about-proc-proc_createproc_entry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>char driver ( read multiple qset n multiple quantum )</title>
		<link>https://www.emblogic.com/blog/07/char-driver-read-multiple-qset-n-multiple-quantum/</link>
		<comments>https://www.emblogic.com/blog/07/char-driver-read-multiple-qset-n-multiple-quantum/#comments</comments>
		<pubDate>Thu, 17 Jul 2014 05:22:40 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11059</guid>
		<description><![CDATA[RCS file: reader.c,v Working file: reader.c head: 1.74 branch: locks: strict root: 1.74 access list: symbolic names: keyword substitution: kv total revisions: 74; selected revisions: 74 description: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.74 locked by: root; date: 2014/07/17 02:24:05; author: root; state: Exp; &#8230; <a href="https://www.emblogic.com/blog/07/char-driver-read-multiple-qset-n-multiple-quantum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: reader.c,v<br />
Working file: reader.c<br />
head: 1.74<br />
branch:<br />
locks: strict<br />
	root: 1.74<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 74;	selected revisions: 74<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.74	locked by: root;<br />
date: 2014/07/17 02:24:05;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.73<br />
date: 2014/07/15 11:42:11;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.72<br />
date: 2014/07/15 10:47:49;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.71<br />
date: 2014/07/15 09:20:26;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.70<br />
date: 2014/07/15 09:19:05;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.69<br />
date: 2014/07/15 09:07:36;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.68<br />
date: 2014/07/15 09:05:26;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.67<br />
date: 2014/07/15 09:04:15;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.66<br />
date: 2014/07/15 09:02:57;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.65<br />
date: 2014/07/15 08:42:07;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.64<br />
date: 2014/07/15 08:37:10;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.63<br />
date: 2014/07/15 08:30:58;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.62<br />
date: 2014/07/15 07:57:58;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.61<br />
date: 2014/07/15 07:48:05;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.60<br />
date: 2014/07/15 07:16:07;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.59<br />
date: 2014/07/15 07:14:06;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.58<br />
date: 2014/07/15 07:13:29;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.57<br />
date: 2014/07/15 07:12:35;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.56<br />
date: 2014/07/15 07:11:48;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.55<br />
date: 2014/07/15 07:03:23;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.54<br />
date: 2014/07/15 07:01:31;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.53<br />
date: 2014/07/15 06:02:06;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.52<br />
date: 2014/07/15 06:01:21;  author: root;  state: Exp;  lines: +6 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.51<br />
date: 2014/07/15 05:17:37;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.50<br />
date: 2014/07/15 05:14:06;  author: root;  state: Exp;  lines: +56 -28<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.49<br />
date: 2014/07/15 02:49:51;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.48<br />
date: 2014/07/15 02:48:17;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.47<br />
date: 2014/07/14 11:04:51;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.46<br />
date: 2014/07/14 09:25:12;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.45<br />
date: 2014/07/14 09:22:56;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.44<br />
date: 2014/07/14 09:22:16;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.43<br />
date: 2014/07/14 09:21:20;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.42<br />
date: 2014/07/14 09:20:08;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.41<br />
date: 2014/07/14 09:16:54;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.40<br />
date: 2014/07/14 09:16:18;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.39<br />
date: 2014/07/14 09:14:55;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.38<br />
date: 2014/07/14 07:59:55;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.37<br />
date: 2014/07/14 07:57:00;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.36<br />
date: 2014/07/14 07:49:40;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35<br />
date: 2014/07/14 07:48:59;  author: root;  state: Exp;  lines: +3 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2014/07/14 07:39:50;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2014/07/14 07:38:35;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.32<br />
date: 2014/07/14 07:37:44;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.31<br />
date: 2014/07/14 07:36:51;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.30<br />
date: 2014/07/14 07:15:05;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/07/14 07:10:49;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/07/14 06:58:32;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/07/14 06:06:18;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/07/14 06:03:06;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/07/14 05:58:28;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/07/14 05:42:21;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2014/07/14 05:40:53;  author: root;  state: Exp;  lines: +1 -1<br />
./<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2014/07/14 03:43:06;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/07/12 11:30:33;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/07/12 11:19:22;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2014/07/12 09:15:09;  author: root;  state: Exp;  lines: +4 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/07/12 07:59:02;  author: root;  state: Exp;  lines: +3 -9<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/07/12 07:35:08;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/07/12 07:27:18;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/07/12 07:21:35;  author: root;  state: Exp;  lines: +2 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/07/12 06:51:09;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/07/12 06:04:51;  author: root;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/07/12 06:03:56;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/07/12 06:02:30;  author: root;  state: Exp;  lines: +4 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/07/12 05:50:12;  author: root;  state: Exp;  lines: +5 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/07/12 04:19:07;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/07/12 04:18:09;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/07/12 03:57:44;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/07/12 03:56:02;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/07/12 03:49:53;  author: root;  state: Exp;  lines: +5 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/07/12 03:47:27;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/07/12 03:43:16;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/07/12 03:41:43;  author: root;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/07/12 03:32:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/char-driver-read-multiple-qset-n-multiple-quantum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>char driver(write multiple qset n multiple quantum)</title>
		<link>https://www.emblogic.com/blog/07/char-driverwrite-multiple-qset-n-multiple-quantum/</link>
		<comments>https://www.emblogic.com/blog/07/char-driverwrite-multiple-qset-n-multiple-quantum/#comments</comments>
		<pubDate>Thu, 17 Jul 2014 05:19:51 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=11057</guid>
		<description><![CDATA[RCS file: write.c,v Working file: write.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/07/12 02:59:42; author: root; state: Exp; Initial revision =============================================================================]]></description>
				<content:encoded><![CDATA[<p>RCS file: write.c,v<br />
Working file: write.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/07/12 02:59:42;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/char-driverwrite-multiple-qset-n-multiple-quantum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>memory mapping and intilize to kernel</title>
		<link>https://www.emblogic.com/blog/06/memory-mapping-and-intilize-to-kernel/</link>
		<comments>https://www.emblogic.com/blog/06/memory-mapping-and-intilize-to-kernel/#comments</comments>
		<pubDate>Sat, 28 Jun 2014 12:34:14 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10702</guid>
		<description><![CDATA[RCS file: cleanup.c,v Working file: cleanup.c head: 1.3 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 3; selected revisions: 3 description: &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.3 date: 2014/06/28 09:11:41; author: root; state: Exp; lines: +2 -2 exit function &#8230; <a href="https://www.emblogic.com/blog/06/memory-mapping-and-intilize-to-kernel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: cleanup.c,v<br />
Working file: cleanup.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;	selected revisions: 3<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/06/28 09:11:41;  author: root;  state: Exp;  lines: +2 -2<br />
exit function for unregister<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/27 10:22:45;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: default.h,v<br />
Working file: default.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;	selected revisions: 2<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/28 09:12:31;  author: root;  state: Exp;  lines: +10 -5<br />
used majoe and minor no.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:18;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: declartion.h,v<br />
Working file: declartion.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;	selected revisions: 2<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/28 09:13:01;  author: root;  state: Exp;  lines: +20 -0<br />
used sculldev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:19;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/memory-mapping-and-intilize-to-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>memory mapping  and intillize</title>
		<link>https://www.emblogic.com/blog/06/memory-mapping-and-intillize/</link>
		<comments>https://www.emblogic.com/blog/06/memory-mapping-and-intillize/#comments</comments>
		<pubDate>Sat, 28 Jun 2014 11:49:47 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10697</guid>
		<description><![CDATA[RCS file: init1.c,v enter description, terminated with single &#8216;.&#8217; or end of file: NOTE: This is NOT the log message! &#62;&#62; mapping of kernel &#62;&#62; . done [root@emblogic memory]# ci init1.c init1.c,v init1.c revision 1.1 done [root@emblogic memory]# rlog init.c &#8230; <a href="https://www.emblogic.com/blog/06/memory-mapping-and-intillize/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: init1.c,v<br />
enter description, terminated with single &#8216;.&#8217; or end of file:<br />
NOTE: This is NOT the log message!<br />
&gt;&gt; mapping of kernel<br />
&gt;&gt; .<br />
done<br />
[root@emblogic memory]# ci  init1.c<br />
init1.c,v    init1.c<br />
revision 1.1<br />
done<br />
[root@emblogic memory]# rlog init.c cleanup.c default.h declartion.h</p>
<p>RCS file: init.c,v<br />
Working file: init.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
	root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;	selected revisions: 2<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2	locked by: root;<br />
date: 2014/06/27 10:28:50;  author: root;  state: Exp;  lines: +10 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:07;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: cleanup.c,v<br />
Working file: cleanup.c<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;	selected revisions: 3<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/06/28 09:11:41;  author: root;  state: Exp;  lines: +2 -2<br />
exit function for unregister<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/27 10:22:45;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:14;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: default.h,v<br />
Working file: default.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;	selected revisions: 2<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/28 09:12:31;  author: root;  state: Exp;  lines: +10 -5<br />
used majoe and minor no.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:18;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: declartion.h,v<br />
Working file: declartion.h<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;	selected revisions: 2<br />
description:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/28 09:13:01;  author: root;  state: Exp;  lines: +20 -0<br />
used sculldev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/27 07:06:19;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/memory-mapping-and-intillize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>kernel register</title>
		<link>https://www.emblogic.com/blog/06/kernel-register/</link>
		<comments>https://www.emblogic.com/blog/06/kernel-register/#comments</comments>
		<pubDate>Thu, 26 Jun 2014 08:17:12 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10655</guid>
		<description><![CDATA[RCS file: init.c,v Working file: init.c head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: print the hello kernel used the register \. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 locked by: &#8230; <a href="https://www.emblogic.com/blog/06/kernel-register/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: init.c,v<br />
Working file: init.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
	root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
print the hello kernel<br />
used the register<br />
\.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1	locked by: root;<br />
date: 2014/06/26 05:29:50;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: cleanup.c,v<br />
Working file: cleanup.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
	root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
used the unregister function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1	locked by: root;<br />
date: 2014/06/26 05:29:50;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: header.h,v<br />
Working file: header.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
	root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
used the headerfile init.h<br />
used the headerfile module.h<br />
also used the headerfile fs.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1	locked by: root;<br />
date: 2014/06/26 05:29:50;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: default.h,v<br />
Working file: default.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
	root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
in this difine the majorno<br />
also define the device name<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1	locked by: root;<br />
date: 2014/06/26 05:29:50;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
<p>RCS file: declartion.h,v<br />
Working file: declartion.h<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
	root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
used the extern<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1	locked by: root;<br />
date: 2014/06/26 05:29:50;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/kernel-register/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>https://www.emblogic.com/blog/06/10595/</link>
		<comments>https://www.emblogic.com/blog/06/10595/#comments</comments>
		<pubDate>Sat, 21 Jun 2014 11:12:45 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10595</guid>
		<description><![CDATA[Device Drivers If you choose to write a device driver, you must take everything written here as a guide, and no more. I cannot guarantee that this chapter will be free of errors, and I cannot guarantee that you will &#8230; <a href="https://www.emblogic.com/blog/06/10595/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Device Drivers</p>
<p>If you choose to write a device driver, you must take everything written here as a guide, and no more. I cannot guarantee that this chapter will be free of errors, and I cannot guarantee that you will not damage your computer, even if you follow these instructions exactly. It is highly unlikely that you will damage it, but I cannot guarantee against it. There is only one &#8220;infallible&#8221; direction I can give you: Back up! Back up before you test your new device driver, or you may regret it later.</p>
<p>What is a Device Driver?<br />
    What is this &#8220;device driver&#8221; stuff anyway? Here&#8217;s a very short introduction to the concept.<br />
User-space device drivers<br />
    It&#8217;s not always necessary to write a &#8220;real&#8221; device driver. Sometimes you just need to know how to write code that runs as a normal user process and still accesses hardware.<br />
Device Driver Basics<br />
    Assuming that you need to write a &#8220;real&#8221; device driver, there are some things that you need to know regardless of what type of driver you are writing. In fact, you may need to learn what type of driver you ought to write&#8230;<br />
Character Device Drivers<br />
    This section includes details specific to character device drivers, and assumes that you know everything in the previous section.<br />
TTY drivers<br />
    This section hasn&#8217;t been written yet. TTY drivers are character devices that interface with the kernel&#8217;s generic TTY support, and they require more than just a standard character device interface. I&#8217;d appreciate it if someone would write up how to attach a character device driver to the generic TTY layer and submit it to me for inclusion in this guide.<br />
Block Device Drivers<br />
    This section includes details specific to block device drivers (suprise!)<br />
Writing a SCSI Device Driver<br />
    This is a technical paper written by Rik Faith at the University of North Carolina.<br />
Network Device Drivers<br />
    Alan Cox gives an introduction to the network layer, including device drivers.<br />
Supporting Functions<br />
    Many functions are useful to all sorts of drivers. Here is a summary of quite a few of them.<br />
Translating Addresses in Kernel Space<br />
    An edited version of a post of Linus Torvalds to the linux-kernel mailing list about how to correctly deal with translating memory references when writing kernel source code such as device drivers.<br />
Kernel-Level Exception Handling<br />
    An edited version of a post of Joerg Pommnitz to the linux-kernel mailing list about how the new  exception mechanism works. </p>
<p>intoduction of divice driver:-</p>
<p>One of the many advantages of free operating systems, as typified by Linux, is that their internals are open for all to view. The operating system, once a dark and mysterious area whose code was restricted to a small number of programmers, can now be readily examined, understood, and modified by anybody with the requisite skills. Linux has helped to democratize operating systems. The Linux kernel remains a large and complex body of code, however, and would-be kernel hackers need an entry point where they can approach the code without being overwhelmed by complexity. Often, device drivers provide that gateway.</p>
<p>Device drivers take on a special role in the Linux kernel. They are distinct &#8220;black boxes&#8221; that make a particular piece of hardware respond to a well-defined internal programming interface; they hide completely the details of how the device works. User activities are performed by means of a set of standardized calls that are independent of the specific driver; mapping those calls to device-specific operations that act on real hardware is then the role of the device driver. This programming interface is such that drivers can be built separately from the rest of the kernel and &#8220;plugged in&#8221; at runtime when needed. This modularity makes Linux drivers easy to write, to the point that there are now hundreds of them available.</p>
<p>There are a number of reasons to be interested in the writing of Linux device drivers. The rate at which new hardware becomes available (and obsolete!) alone guarantees that driver writers will be busy for the foreseeable future. Individuals may need to know about drivers in order to gain access to a particular device that is of interest to them. Hardware vendors, by making a Linux driver available for their products, can add the large and growing Linux user base to their potential markets. And the open source nature of the Linux system means that if the driver writer wishes, the source to a driver can be quickly disseminated to millions of users.</p>
<p>This book teaches you how to write your own drivers and how to hack around in related parts of the kernel. We have taken a device-independent approach; the programming techniques and interfaces are presented, whenever possible, without being tied to any specific device. Each driver is different; as a driver writer, you need to understand your specific device well. But most of the principles and basic techniques are the same for all drivers. This book cannot teach you about your device, but it gives you a handle on the background you need to make your device work.</p>
<p>As you learn to write drivers, you find out a lot about the Linux kernel in general; this may help you understand how your machine works and why things aren&#8217;t always as fast as you expect or don&#8217;t do quite what you want. We introduce new ideas gradually, starting off with very simple drivers and building on them; every new concept is accompanied by sample code that doesn&#8217;t need special hardware to be tested.</p>
<p>This chapter doesn&#8217;t actually get into writing code. However, we introduce some background concepts about the Linux kernel that you&#8217;ll be glad you know later, when we do launch into programming.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/10595/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>implement at kernel to hello program</title>
		<link>https://www.emblogic.com/blog/06/implement-at-kernel-to-hello-program/</link>
		<comments>https://www.emblogic.com/blog/06/implement-at-kernel-to-hello-program/#comments</comments>
		<pubDate>Sat, 21 Jun 2014 11:03:36 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10592</guid>
		<description><![CDATA[RCS file: cd_basic1.c,v Working file: cd_basic1.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: a program of character driver to say kernel to hello &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/06/21 &#8230; <a href="https://www.emblogic.com/blog/06/implement-at-kernel-to-hello-program/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: cd_basic1.c,v<br />
Working file: cd_basic1.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
a program of character driver to say kernel to hello<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/21 10:53:33;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/implement-at-kernel-to-hello-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>socket using thread</title>
		<link>https://www.emblogic.com/blog/06/socket-using-thread/</link>
		<comments>https://www.emblogic.com/blog/06/socket-using-thread/#comments</comments>
		<pubDate>Sat, 21 Jun 2014 10:53:41 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10590</guid>
		<description><![CDATA[RCS file: ./soc_th_server.c,v Working file: ./soc_th_server.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: cleint program using socket with thread server program using socket with thread socket program using &#8230; <a href="https://www.emblogic.com/blog/06/socket-using-thread/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./soc_th_server.c,v<br />
Working file: ./soc_th_server.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
cleint program using socket with thread<br />
server program using socket with thread<br />
socket program using socket with thread<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/21 06:32:26;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/socket-using-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>multiple threads</title>
		<link>https://www.emblogic.com/blog/06/multiple-threads/</link>
		<comments>https://www.emblogic.com/blog/06/multiple-threads/#comments</comments>
		<pubDate>Mon, 09 Jun 2014 10:01:44 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10424</guid>
		<description><![CDATA[RCS file: multiple_thread.c,v Working file: multiple_thread.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: multiple thread &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/06/09 09:07:02; author: root; state: Exp; Initial revision =============================================================================]]></description>
				<content:encoded><![CDATA[<p>RCS file: multiple_thread.c,v<br />
Working file: multiple_thread.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
multiple thread<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/09 09:07:02;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/multiple-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>created a thread</title>
		<link>https://www.emblogic.com/blog/06/created-a-thread/</link>
		<comments>https://www.emblogic.com/blog/06/created-a-thread/#comments</comments>
		<pubDate>Sun, 08 Jun 2014 08:20:01 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10406</guid>
		<description><![CDATA[RCS file: thread2.c,v Working file: thread2.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: create a thread &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/06/08 08:18:53; author: root; state: Exp; Initial revision &#8230; <a href="https://www.emblogic.com/blog/06/created-a-thread/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: thread2.c,v<br />
Working file: thread2.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
create a thread<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/08 08:18:53;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/created-a-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a program of function with argument passinng using shell script</title>
		<link>https://www.emblogic.com/blog/06/a-program-of-function-with-argument-passinng-using-shell-script/</link>
		<comments>https://www.emblogic.com/blog/06/a-program-of-function-with-argument-passinng-using-shell-script/#comments</comments>
		<pubDate>Sat, 07 Jun 2014 10:39:14 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10398</guid>
		<description><![CDATA[RCS file: fun1,v Working file: fun1 head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: a program of function with argument passing using shell script &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/06/07 &#8230; <a href="https://www.emblogic.com/blog/06/a-program-of-function-with-argument-passinng-using-shell-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: fun1,v<br />
Working file: fun1<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
a program of function with argument passing using shell script<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/07 10:38:19;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/a-program-of-function-with-argument-passinng-using-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a program of function using shell scripting</title>
		<link>https://www.emblogic.com/blog/06/a-program-of-function-using-shell-scripting/</link>
		<comments>https://www.emblogic.com/blog/06/a-program-of-function-using-shell-scripting/#comments</comments>
		<pubDate>Sat, 07 Jun 2014 10:07:35 +0000</pubDate>
		<dc:creator><![CDATA[sanjayece.kumar]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10382</guid>
		<description><![CDATA[RCS file: fun,v Working file: fun head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: a program of function using shell scripting &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2014/06/07 10:05:25; author: root; &#8230; <a href="https://www.emblogic.com/blog/06/a-program-of-function-using-shell-scripting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: fun,v<br />
Working file: fun<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;	selected revisions: 1<br />
description:<br />
a program of function using shell scripting<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/07 10:05:25;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/a-program-of-function-using-shell-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
