<?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; insert device driver</title>
	<atom:link href="https://www.emblogic.com/blog/tag/insert-device-driver/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>Initialization, registeration of device driver by using cdev_add() and remove the connection successfully</title>
		<link>https://www.emblogic.com/blog/04/initialization-registeration-of-device-driver-by-using-cdev_add-and-remove-the-connection-successfully/</link>
		<comments>https://www.emblogic.com/blog/04/initialization-registeration-of-device-driver-by-using-cdev_add-and-remove-the-connection-successfully/#comments</comments>
		<pubDate>Sat, 25 Apr 2015 12:40:47 +0000</pubDate>
		<dc:creator><![CDATA[Shashank Arora]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Character Device Driver]]></category>
		<category><![CDATA[device driver]]></category>
		<category><![CDATA[insert device driver]]></category>
		<category><![CDATA[remove device driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=12632</guid>
		<description><![CDATA[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: ---------------------------- revision 1.5 date: 2015/04/26 15:51:54; author: root; state: Exp; lines: +1 -0 removed the &#8230; <a href="https://www.emblogic.com/blog/04/initialization-registeration-of-device-driver-by-using-cdev_add-and-remove-the-connection-successfully/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<pre class="western">RCS file: header.h,v</pre>
<pre class="western">Working file: header.h</pre>
<pre class="western">head: 1.5</pre>
<pre class="western">branch:</pre>
<pre class="western">locks: strict</pre>
<pre class="western">access list:</pre>
<pre class="western">symbolic names:</pre>
<pre class="western">keyword substitution: kv</pre>
<pre class="western">total revisions: 5;	selected revisions: 5</pre>
<pre class="western">description:</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.5</pre>
<pre class="western">date: 2015/04/26 15:51:54;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">removed the struct of cdev.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.4</pre>
<pre class="western">date: 2015/04/26 14:41:40;  author: root; 
state: Exp;  lines: +1 -1</pre>
<pre class="western">introduced the stucture for mapping</pre>
<pre class="western">stuct Qset, struct dev where our devices node
information is stored.</pre>
<pre class="western">in struct dev struct cdev is declared
internally.</pre>
<pre class="western">also declared the extern struct dev *sdev
pointer for mapping</pre>
<pre class="western">,</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.3</pre>
<pre class="western">date: 2015/04/26 13:28:55;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.2</pre>
<pre class="western">date: 2015/04/26 13:18:47;  author: root; 
state: Exp;  lines: +3 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.1</pre>
<pre class="western">date: 2015/04/26 13:12:11;  author: root; 
state: Exp;</pre>
<pre class="western">Initial revision</pre>
<pre class="western">=============================================================================</pre>
<pre class="western">
</pre>
<pre class="western">RCS file: declaration.h,v</pre>
<pre class="western">Working file: declaration.h</pre>
<pre class="western">head: 1.5</pre>
<pre class="western">branch:</pre>
<pre class="western">locks: strict</pre>
<pre class="western">access list:</pre>
<pre class="western">symbolic names:</pre>
<pre class="western">keyword substitution: kv</pre>
<pre class="western">total revisions: 5;	selected revisions: 5</pre>
<pre class="western">description:</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.5</pre>
<pre class="western">date: 2015/04/26 17:35:00;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">introduced extern file operations variable.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.4</pre>
<pre class="western">date: 2015/04/26 15:52:20;  author: root; 
state: Exp;  lines: +2 -2</pre>
<pre class="western">include the linux/cdev.h in header.h</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.3</pre>
<pre class="western">date: 2015/04/26 14:45:32;  author: root; 
state: Exp;  lines: +19 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.2</pre>
<pre class="western">date: 2015/04/26 13:18:47;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.1</pre>
<pre class="western">date: 2015/04/26 13:12:11;  author: root; 
state: Exp;</pre>
<pre class="western">Initial revision</pre>
<pre class="western">=============================================================================</pre>
<pre class="western">
</pre>
<pre class="western">RCS file: new_initialization.c,v</pre>
<pre class="western">Working file: new_initialization.c</pre>
<pre class="western">head: 1.8</pre>
<pre class="western">branch:</pre>
<pre class="western">locks: strict</pre>
<pre class="western">access list:</pre>
<pre class="western">symbolic names:</pre>
<pre class="western">keyword substitution: kv</pre>
<pre class="western">total revisions: 8;	selected revisions: 8</pre>
<pre class="western">description:</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.8</pre>
<pre class="western">date: 2015/04/26 17:23:35;  author: root; 
state: Exp;  lines: +16 -2</pre>
<pre class="western">initialize cdev_init and pass the 1st arguement
which is address of cdev which is pointed by object of struct dev.</pre>
<pre class="western">2nd arguement is address of file_operations.</pre>
<pre class="western">after cdev_init also initialized owner field and
file_operations *ops field which is actually defined in cdev.h.</pre>
<pre class="western">after initialization of cdev_init, we need to
make the connection by using cdev_add().</pre>
<pre class="western">In cdev_add(),mentioned the address pointed by
dev to cdev, 2nd arguement is dev and 3rd one is no. of devices we
added which is nod.</pre>
<pre class="western">successfully cdev_add() is done, the driver
initilization is complete.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.7</pre>
<pre class="western">date: 2015/04/26 16:11:06;  author: root; 
state: Exp;  lines: +4 -3</pre>
<pre class="western">add the if statement in kmalloc error checking.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.6</pre>
<pre class="western">date: 2015/04/26 15:51:07;  author: root; 
state: Exp;  lines: +2 -1</pre>
<pre class="western">correct the mistake done is kmalloc of FLAG.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.5</pre>
<pre class="western">date: 2015/04/26 14:40:00;  author: root; 
state: Exp;  lines: +8 -0</pre>
<pre class="western">declared kmalloc and provide space into the
kernel.</pre>
<pre class="western">after that memset flushed the memory.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.4</pre>
<pre class="western">date: 2015/04/26 13:30:58;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.3</pre>
<pre class="western">date: 2015/04/26 13:28:53;  author: root; 
state: Exp;  lines: +3 -1</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.2</pre>
<pre class="western">date: 2015/04/26 13:18:42;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.1</pre>
<pre class="western">date: 2015/04/26 13:12:11;  author: root; 
state: Exp;</pre>
<pre class="western">Initial revision</pre>
<pre class="western">=============================================================================</pre>
<pre class="western">
</pre>
<pre class="western">RCS file: new_clean.c,v</pre>
<pre class="western">Working file: new_clean.c</pre>
<pre class="western">head: 1.6</pre>
<pre class="western">branch:</pre>
<pre class="western">locks: strict</pre>
<pre class="western">access list:</pre>
<pre class="western">symbolic names:</pre>
<pre class="western">keyword substitution: kv</pre>
<pre class="western">total revisions: 6;	selected revisions: 6</pre>
<pre class="western">description:</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.6</pre>
<pre class="western">date: 2015/04/26 17:33:01;  author: root; 
state: Exp;  lines: +1 -1</pre>
<pre class="western">The device represented stucture cdev must be
removed from the device table by using cdev_del by giving the
arguement which is address pointed dev to cdev.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.5</pre>
<pre class="western">date: 2015/04/26 15:37:52;  author: root; 
state: Exp;  lines: +1 -1</pre>
<pre class="western">change the kfree arguement i.e address of struct
dev.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.4</pre>
<pre class="western">date: 2015/04/26 14:41:00;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">kfree() is used before unregistered the driver.</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.3</pre>
<pre class="western">date: 2015/04/26 13:28:55;  author: root; 
state: Exp;  lines: +1 -1</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.2</pre>
<pre class="western">date: 2015/04/26 13:18:44;  author: root; 
state: Exp;  lines: +1 -0</pre>
<pre class="western">*** empty log message ***</pre>
<pre class="western">----------------------------</pre>
<pre class="western">revision 1.1</pre>
<pre class="western">date: 2015/04/26 13:12:11;  author: root; 
state: Exp;</pre>
<pre class="western">Initial revision</pre>
<pre class="western">=============================================================================</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/initialization-registeration-of-device-driver-by-using-cdev_add-and-remove-the-connection-successfully/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
