<?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; Ritu Bagla</title>
	<atom:link href="https://www.emblogic.com/blog/author/ritubagla/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>toolchain and usb status</title>
		<link>https://www.emblogic.com/blog/09/toolchain-and-usb-status/</link>
		<comments>https://www.emblogic.com/blog/09/toolchain-and-usb-status/#comments</comments>
		<pubDate>Sun, 02 Sep 2012 09:20:22 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5132</guid>
		<description><![CDATA[in toolchain : done binutils,kernel,gcc&#8230; now doing glibc&#8230;.. in usb driver : done notifier and usb generic&#8230;.. now doing probe function&#8230;]]></description>
				<content:encoded><![CDATA[<p>in toolchain : done binutils,kernel,gcc&#8230; now doing glibc&#8230;..<br />
in usb driver : done notifier and usb generic&#8230;.. now doing probe function&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/09/toolchain-and-usb-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>facing problem in allocating memory for new quantum after lseek</title>
		<link>https://www.emblogic.com/blog/04/facing-problem-in-allocating-memory-for-new-quantum-after-lseek/</link>
		<comments>https://www.emblogic.com/blog/04/facing-problem-in-allocating-memory-for-new-quantum-after-lseek/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 13:10:05 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=2449</guid>
		<description><![CDATA[ssize_t scull_write ( struct file *filp, const char __user *buffer, size_t count , loff_t *offset) { struct ScullDev *lsculldev; struct ScullQset *lscullqset; int noq, nobsw,start_q,lcount,lv,ret; int nobtw,noq_f,index,new_pos; nobtw = count; index = noq_f = 0; lcount = noq = nobsw &#8230; <a href="https://www.emblogic.com/blog/04/facing-problem-in-allocating-memory-for-new-quantum-after-lseek/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ssize_t scull_write ( struct file *filp, const char __user *buffer, size_t count , loff_t *offset)<br />
{<br />
        struct ScullDev *lsculldev;<br />
        struct ScullQset *lscullqset;<br />
        int noq, nobsw,start_q,lcount,lv,ret;<br />
        int nobtw,noq_f,index,new_pos;<br />
        nobtw = count;<br />
        index = noq_f = 0;<br />
        lcount = noq = nobsw = start_q = lv = ret = 0;</p>
<p>        #ifdef DEBUG<br />
        printk(KERN_INFO &#8220;Begin :%s\n&#8221;,__func__);<br />
        #endif<br />
        lsculldev = filp-&gt;private_data;<br />
        new_pos = filp-&gt;f_pos;<br />
        printk(KERN_INFO&#8221;value of filep=%d\n&#8221;,new_pos);<br />
        if(!lsculldev)<br />
        {<br />
                #ifdef DEBUG<br />
                printk(KERN_INFO &#8220;No Sculldev\n&#8221;);<br />
                #endif<br />
                goto OUT;<br />
        }<br />
        if(count  size_of_device)<br />
        {<br />
                #ifdef DEBUG<br />
                printk(KERN_INFO &#8220;Not Enough Memory\n&#8221;);<br />
                #endif<br />
                goto OUT;<br />
        }</p>
<p>        lscullqset = scull_follow(lsculldev);<br />
        if(!lscullqset)<br />
        {<br />
                lscullqset =(struct ScullQset *) kmalloc(sizeof(struct ScullQset),GFP_KERNEL);<br />
                if(!lscullqset)<br />
                {</p>
<p>                        #ifdef DEBUG<br />
                        printk(KERN_INFO &#8220;Memory Allocation Failed\n&#8221;);<br />
                        #endif<br />
                        goto OUT;<br />
                }</p>
<p>                lscullqset-&gt;data = kmalloc(sizeof(char*)*qset_size,GFP_KERNEL);</p>
<p>                if(!lscullqset-&gt;data)<br />
                {</p>
<p>                        #ifdef DEBUG<br />
                        printk(KERN_INFO &#8220;Memory Allocation Failed for qset array\n&#8221;);<br />
                        #endif<br />
                        goto OUT;<br />
                }<br />
                                    }<br />
                lsculldev-&gt;scullqset = lscullqset;<br />
                noq=count / quantum_size;<br />
                if(count %  quantum_size)<br />
                {<br />
                        noq++;<br />
                }<br />
                lsculldev-&gt;qset = noq;<br />
                printk(&#8220;noq = %d\n&#8221;,noq);<br />
                start_q = new_pos / quantum_size;<br />
                lv = start_q;<br />
        if(w_flag)<br />
        {<br />
                while(nobsw data[lv])<br />
                        {<br />
                                if(lv == start_q)<br />
                                {<br />
                                        index = new_pos % quantum_size;<br />
                                        lcount = quantum_size &#8211; index;<br />
                                        ret = copy_from_user(lscullqset-&gt;data[lv]+index,buffer+nobsw,lcount);<br />
                                        #ifdef DEBUG<br />
                                        printk(KERN_INFO &#8220;data :%s\n&#8221;,(char*)lscullqset-&gt;data[lv]);<br />
                                        #endif<br />
                                        nobsw = nobsw + (lcount &#8211; ret);<br />
                                        lv++;<br />
                                }<br />
                                else<br />
                                {<br />
                                   {<br />
                                        if(quantum_size  count &#8211; nobsw)<br />
                                                lcount = count &#8211; nobsw;<br />
                                        printk(&#8220;ccc\n&#8221;);<br />
                                        ret = copy_from_user(lscullqset-&gt;data[lv],buffer+nobsw,lcount);<br />
                                        #ifdef DEBUG<br />
                                        printk(KERN_INFO &#8220;data :%s\n&#8221;,(char*)lscullqset-&gt;data[lv]);<br />
                                        #endif<br />
                                        nobsw = nobsw + (lcount &#8211; ret);<br />
                                        lv++;<br />
                                }<br />
                                printk(&#8220;~~~~\n\n&#8221;);<br />
                        }<br />
                        else<br />
                        {<br />
                        printk(&#8220;allocating memory for new quantum\n&#8221;);<br />
                        noq_f++;</p>
<p>                                lscullqset-&gt;data[lv] = kmalloc(sizeof(char)*quantum_size,GFP_KERNEL);<br />
                                if(!lscullqset-&gt;data[lv])<br />
                                {<br />
                                        #ifdef DEBUG<br />
                                        printk(KERN_INFO &#8220;Memory Allocation Failed for new quantum\n&#8221;);<br />
                                        #endif<br />
                                        return -1;<br />
                                                                           }<br />
                                        #ifdef DEBUG<br />
                                        printk(KERN_INFO &#8220;Memory Allocated for new quantum\n&#8221;);<br />
                                        #endif</p>
<p>                        }</p>
<p>                }<br />
        }<br />
        else<br />
        {<br />
                for(lv =0; lv data[lv] = kmalloc(sizeof(char)*quantum_size,GFP_KERNEL);<br />
                        if(!lscullqset-&gt;data[lv])<br />
                        {<br />
                                #ifdef DEBUG<br />
                                printk(KERN_INFO &#8220;Memory Allocation Failed for qset array\n&#8221;);<br />
                                #endif<br />
                                goto OUT;<br />
                        }<br />
                }<br />
                for(lv=0; lv &lt; noq; lv++)<br />
                {<br />
                                        if(quantum_size  count &#8211; nobsw)<br />
                                                lcount = count &#8211; nobsw;<br />
                                        ret = copy_from_user(lscullqset-&gt;data[lv],buffer+nobsw,lcount);<br />
                                        #ifdef DEBUG<br />
      printk(KERN_INFO &#8220;data :%s\n&#8221;,(char*)lscullqset-&gt;data[lv]);<br />
                                        #endif<br />
                                        nobsw = nobsw + (lcount &#8211; ret);<br />
                                        w_flag = 1;<br />
                }<br />
        }<br />
        #ifdef DEBUG<br />
        printk(KERN_INFO &#8220;End :%s\n&#8221;,__func__);<br />
        #endif<br />
        return nobsw;<br />
OUT:<br />
        #ifdef DEBUG<br />
        printk(KERN_INFO &#8220;End :%s\n&#8221;,__func__);<br />
        #endif</p>
<p>        return -1;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/facing-problem-in-allocating-memory-for-new-quantum-after-lseek/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>character drivers</title>
		<link>https://www.emblogic.com/blog/04/character-drivers/</link>
		<comments>https://www.emblogic.com/blog/04/character-drivers/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 18:10:36 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=2447</guid>
		<description><![CDATA[reading/writing for mutiple quantum , reading/writing for different application , trimming , mutiple threaded application without using semaphore, lssek for linear quantum had done]]></description>
				<content:encoded><![CDATA[<p>reading/writing for mutiple quantum , reading/writing for different application , trimming , mutiple threaded application without using semaphore, lssek for linear quantum had done</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/character-drivers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LKM</title>
		<link>https://www.emblogic.com/blog/04/lkm-3/</link>
		<comments>https://www.emblogic.com/blog/04/lkm-3/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 06:31:03 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=2357</guid>
		<description><![CDATA[done four steps of initialization function&#8230;&#8230;&#8230;]]></description>
				<content:encoded><![CDATA[<p>done four steps of initialization function&#8230;&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/04/lkm-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>drivers</title>
		<link>https://www.emblogic.com/blog/03/drivers-3/</link>
		<comments>https://www.emblogic.com/blog/03/drivers-3/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 13:47:55 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=2292</guid>
		<description><![CDATA[implemented 1st lkm&#8230;. and chatting on 2 pc using inet&#8230;.multiple client server using UNIX &#8230;.. and threads&#8230;.]]></description>
				<content:encoded><![CDATA[<p>implemented  1st lkm&#8230;.<br />
and chatting on 2 pc using inet&#8230;.multiple client server using UNIX &#8230;.. and threads&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/drivers-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing ipcs</title>
		<link>https://www.emblogic.com/blog/03/implementing-ipcs/</link>
		<comments>https://www.emblogic.com/blog/03/implementing-ipcs/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 13:57:44 +0000</pubDate>
		<dc:creator><![CDATA[Ritu Bagla]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=2274</guid>
		<description><![CDATA[done single client server for socket (inet and unix)&#8230;&#8230;..facing problem in multiple clients&#8230;. done 2way chatting using socket and msg queue&#8230;&#8230;now implementing threads&#8230;&#8230;.]]></description>
				<content:encoded><![CDATA[<p>done single client server for socket (inet and unix)&#8230;&#8230;..facing problem in multiple clients&#8230;. done 2way  chatting using socket and msg queue&#8230;&#8230;now implementing threads&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/implementing-ipcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
