<?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; Om Parkash</title>
	<atom:link href="https://www.emblogic.com/blog/author/om8051/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>Article on Signals:</title>
		<link>https://www.emblogic.com/blog/12/article-on-signals/</link>
		<comments>https://www.emblogic.com/blog/12/article-on-signals/#comments</comments>
		<pubDate>Thu, 05 Dec 2013 12:28:07 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7656</guid>
		<description><![CDATA[SIGNALS: Signals were introduced by the first Unix systems to simplify interprocess communication.The kernel also uses them to notify processes of system events. In contrast to interrupts and exceptions, most signals are visible to User Mode processes. Also signals can &#8230; <a href="https://www.emblogic.com/blog/12/article-on-signals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>SIGNALS:</strong><br />
Signals were introduced by the first Unix systems to simplify interprocess communication.The kernel also uses them to notify processes of system events. In contrast to interrupts and exceptions, most signals are visible to User Mode processes. Also signals can be used as a mean of communication between two processes while interrupts can be used as a mean of communication between hardware and kernel(process). Signals serve two main purposes:</p>
<ol>
<li>To make a process aware that a specific event has occurred.</li>
<li>To force a process to execute a signal handler function included in its code.</li>
</ol>
<p>A number of system calls allow programmers to send signals and determine how their processes exploit the signals they receive.An important characteristic of signals is that they may be sent at any time to processes whose state is usually unpredictable. Signals sent to a non-running process must be saved by the kernel until that process resumes execution. Blocking signals (described later) require signals to be queued, which exacerbates the problem of signals being raised before they can be delivered.Therefore, the kernel distinguishes two different phases related to signal transmission:</p>
<ol>
<li>Signal sending:The kernel updates the descriptor of the destination process to represent that a new signal has been sent.</li>
<li>Signal receiving: The kernel forces the destination process to react to the signal by changing its execution state or by starting the execution of a specified signal handler or both.</li>
</ol>
<p>Each signal sent can be received no more than once. Signals are consumable resources: once they have been received, all process descriptor information that refers to their previous existence is cancelled.Signals that have been sent but not yet received are called pending signals . At any time, only one pending signal of a given type may exist for a process; additional pending signals of the same type to the same process are not queued but simply discarded. In general, a signal may remain pending for an unpredictable amount of time. Some important points about the signals are :</p>
<ul>
<li>When a process executes a signal-handler function, it usually &#8220;masks&#8221; the corresponding signal, that is, it automatically blocks the signal until the handler terminates.</li>
<li>A signal handler therefore cannot be interrupted by another occurrence of the handled signal, and therefore the function doesn&#8217;t need to be re-entrant.</li>
<li>A masked signal is always blocked, but the converse does not hold.</li>
<li>The kernel must remember which signals are blocked by each process. When switching from Kernel Mode to User Mode, check whether a signal for any process has arrived.</li>
</ul>
<p>The SIGKILL and SIGSTOP signals cannot be explicitly ignored or caught, and thus their default actions must always be executed. Therefore, SIGKILL and SIGSTOP allow a user with appropriate privileges to destroy and to stop, respectively, any process regardless of the defences taken by the program it is executing.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/article-on-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E30.01.30 (Character Driver)</title>
		<link>https://www.emblogic.com/blog/08/e30-01-30-character-driver/</link>
		<comments>https://www.emblogic.com/blog/08/e30-01-30-character-driver/#comments</comments>
		<pubDate>Wed, 07 Aug 2013 13:19:20 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Mr.Pravjot Singh]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7042</guid>
		<description><![CDATA[implemented busywait delay and processor yielding delay&#8230; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.17 locked by: emblogic; date: 2013/08/07 13:00:03; author: emblogic; state: Exp; lines: +161 -17 implemented delay using busywait method (using cpu_relax). implemented a delay using processor yielding method(using schedule()). working on &#8230; <a href="https://www.emblogic.com/blog/08/e30-01-30-character-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>implemented busywait delay and processor yielding delay&#8230;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17   locked by: emblogic;<br />
date: 2013/08/07 13:00:03;  author: emblogic;  state: Exp;  lines: +161 -17<br />
implemented delay using busywait method (using cpu_relax).<br />
implemented a delay using processor yielding method(using schedule()).<br />
working on wait_event&#8217;s.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/e30-01-30-character-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C Assignment Status:</title>
		<link>https://www.emblogic.com/blog/08/c-assignment-status-4/</link>
		<comments>https://www.emblogic.com/blog/08/c-assignment-status-4/#comments</comments>
		<pubDate>Wed, 07 Aug 2013 13:07:18 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7040</guid>
		<description><![CDATA[I&#8217;ve completed 8 c assignments.And working on next ones.]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve completed 8 c assignments.And working on next ones.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/08/c-assignment-status-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E 30.01.30 &#8211; Om Parkash</title>
		<link>https://www.emblogic.com/blog/07/e-30-01-30-om-parkash/</link>
		<comments>https://www.emblogic.com/blog/07/e-30-01-30-om-parkash/#comments</comments>
		<pubDate>Sat, 20 Jul 2013 06:36:51 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Mr.Pravjot Singh]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6871</guid>
		<description><![CDATA[ARTICLE: I am working on Character Driver on Linux from last few days.Device Driver is simply a piece of code as a part of kernel,dynamic (temporary) or static (permanent) required to make the hardware accessible to the application. Device Drivers &#8230; <a href="https://www.emblogic.com/blog/07/e-30-01-30-om-parkash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ARTICLE:</p>
<p>	I am working on Character Driver on Linux from last few days.Device Driver is simply a piece of code as a part of kernel,dynamic (temporary) or static (permanent) required to make the hardware accessible to the application. Device Drivers can be classified into three basic types: Character driver, Block driver and Network driver. A character device is one that can be accessed as a stream of bytes i.e. character by character. And code needed make communication possible b/w a character device and application is character driver.<br />
	As there is a very good feature of Linux i.e. the ability to extend the set of features offered by the kernel at runtime. This means that we can add functionality to the kernel (and remove functionality as well) while the system is up and running. Each piece of code that can be added to the kernel at runtime is called a module. Different types (or classes) of modules,that can be inserted to the Linux kernel includes device drivers but not limited to this. Each module is made up of object code that can be dynamically linked to the running kernel by the insmod program and can be unlinked by the rmmod program. Whenever we do insmod, the macro &#8216;module_init&#8217; invokes our initialization routine and module is inserted to the kernel if it is valid. And when rmmod is done our module gets removed from the kernel through the macro &#8216;module_exit&#8217;. Our initialization routine registers the driver for the devices and obtains major no. from the registration call( int register_chrdev_region(dev_t first, unsigned int count, char *name); or int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name);) and sets up some basic parameters we&#8217;ll be using ahead e.g struct ScullDev&#8217;s elements. Also we have to initialize the resources that are going to be used.In module_exit the opposite of initialization procedure is performed in reverse order.All the resources allocated to the driver to be freed and this is done by exit routine.After our module gets inserted successfully to the kernel,it can be seen in &#8216;/proc/modules&#8217; file.And if we are able to register our driver successfully, we can see the driver&#8217;s name in &#8216;/proc/devices&#8217; file.<br />
	To implement our character driver we have used SCULL (Simple Character Utility for Loading Localities). Scull acts on a memory as though it were a device.The advantage of scull is that it isn’t hardware dependent. Scull just acts on some memory, allocated from the kernel. Anyone can compile and run scull.We have mapped the system calls to the routines written in our own driver i.e. we have defined the behaviour of the system calls for a particular device. We have used cdev_init and cdev_add functions to initialize the struct cdev and inform the kernel about the device. In our open routine,we are checking the mode,the device is trying to being opened. And depending on that mode flags we are performing some specific tasks e.g. if device is opened in write only mode then the device memory will get trimmed before going ahead.In trimming routine we just free all the memory allocated to the scull. Also in open routine we are mapping the scull to the device by using the macro &#8216;container_of&#8217;.In brief it simply maps the scull into the device and returns a pointer to the memory of device having scull mapped onto it.And we have stored this pointer into the void pointer &#8216;filep-&gt;private_data&#8217; to preserve the starting address of device memory for further use. In our write routine we are writing the data from application to the device through the scull quantums by using &#8216;copy_from_user&#8217;.Write routine also checks for the offset value i.e. cursor position where application wants to write.In read routine we are copying data from the device through scull quantums using &#8216;copy_to_user&#8217; function.Read routine also checks for the offset value from where application wants to read. We have also implemented lseek routine that sets the offset value as provided by the application in lseek system call.And finally in release routine we have just released the resources used after opening the device.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/e-30-01-30-om-parkash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Om Parkash E.30.01.30 (impemented scull_trim)</title>
		<link>https://www.emblogic.com/blog/07/om-parkash-e-30-01-30-impemented-scull_trim/</link>
		<comments>https://www.emblogic.com/blog/07/om-parkash-e-30-01-30-impemented-scull_trim/#comments</comments>
		<pubDate>Thu, 18 Jul 2013 13:44:16 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Mr.Pravjot Singh]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6841</guid>
		<description><![CDATA[RCS file: chard.c,v Working file: chard.c head: 1.10 branch: locks: strict emblogic: 1.10 access list: symbolic names: keyword substitution: kv total revisions: 10;    selected revisions: 10 description: registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region. implemented scull_setup function. implemented scull_open &#8230; <a href="https://www.emblogic.com/blog/07/om-parkash-e-30-01-30-impemented-scull_trim/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: chard.c,v<br />
Working file: chard.c<br />
head: 1.10<br />
branch:<br />
locks: strict<br />
emblogic: 1.10<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 10;    selected revisions: 10<br />
description:<br />
registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region.<br />
implemented scull_setup function.<br />
implemented scull_open routine.<br />
started scull_trim,scull_release,scull_write and scull_read routines.<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10    locked by: emblogic;<br />
date: 2013/07/18 11:26:50;  author: emblogic;  state: Exp;  lines: +12 -14<br />
implemented scull_trim for O_WRONLY mode.<br />
read,write,lseek and trim are completed.<br />
working well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2013/07/17 13:55:42;  author: emblogic;  state: Exp;  lines: +36 -4<br />
implementing trim.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2013/07/17 08:48:06;  author: emblogic;  state: Exp;  lines: +5 -2<br />
modfied scull_write for count+offset &lt; wcount&#8230;.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2013/07/17 07:05:35;  author: emblogic;  state: Exp;  lines: +15 -12<br />
Implemnted lseek successfully.<br />
all issues resolved.<br />
working well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2013/07/17 06:43:42;  author: emblogic;  state: Exp;  lines: +239 -65<br />
Implemnted lseek ..<br />
written successfully after seeking.<br />
read returning more than expected value.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2013/07/11 08:48:05;  author: emblogic;  state: Exp;  lines: +19 -47<br />
implemented read and write successfully for any no. of bytes.<br />
checked for upto 1000 bytes .successfully written to scull Quantums and read from the quantums as well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2013/07/10 11:43:39;  author: emblogic;  state: Exp;  lines: +89 -8<br />
read successfully .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2013/07/10 06:02:17;  author: emblogic;  state: Exp;  lines: +58 -4<br />
written to scull successfully using write2scull function.<br />
working well.<br />
but printing garbage due to absence of NULL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2013/07/09 12:03:54;  author: emblogic;  state: Exp;  lines: +170 -5<br />
implemented creat_scullqset,creat_qset and creat_quantums&#8230;.aloocated memory to write to scull.<br />
quantums created successfully .<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2013/07/08 11:03:54;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/om-parkash-e-30-01-30-impemented-scull_trim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E30.01.30 Om Parkash</title>
		<link>https://www.emblogic.com/blog/07/e30-01-30-om-parkash/</link>
		<comments>https://www.emblogic.com/blog/07/e30-01-30-om-parkash/#comments</comments>
		<pubDate>Tue, 16 Jul 2013 18:07:29 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Mr.Pravjot Singh]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6814</guid>
		<description><![CDATA[RCS file: chard.c,v Working file: chard.c head: 1.6 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 6;     selected revisions: 6 description: registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region. implemented scull_setup function. implemented scull_open routine. started &#8230; <a href="https://www.emblogic.com/blog/07/e30-01-30-om-parkash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: chard.c,v<br />
Working file: chard.c<br />
head: 1.6<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 6;     selected revisions: 6<br />
description:<br />
registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region.<br />
implemented scull_setup function.<br />
implemented scull_open routine.<br />
started scull_trim,scull_release,scull_write and scull_read routines.<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2013/07/16 17:56:34;  author: emblogic;  state: Exp;  lines: +235 -65<br />
Implemented lseek using scull_lseek.<br />
new quantums get created when needed.<br />
working well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2013/07/11 08:48:05;  author: emblogic;  state: Exp;  lines: +19 -47<br />
implemented read and write successfully for any no. of bytes.<br />
checked for upto 1000 bytes .successfully written to scull Quantums and read from the quantums as well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2013/07/10 11:43:39;  author: emblogic;  state: Exp;  lines: +89 -8<br />
read successfully .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2013/07/10 06:02:17;  author: emblogic;  state: Exp;  lines: +58 -4<br />
written to scull successfully using write2scull function.<br />
working well.<br />
but printing garbage due to absence of NULL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2013/07/09 12:03:54;  author: emblogic;  state: Exp;  lines: +170 -5<br />
implemented creat_scullqset,creat_qset and creat_quantums&#8230;.aloocated memory to write to scull.<br />
quantums created successfully .<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2013/07/08 11:03:54;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
~</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/e30-01-30-om-parkash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implemented lseek in character driver (project 05)</title>
		<link>https://www.emblogic.com/blog/07/implemented-lseek-in-character-driver-project-05/</link>
		<comments>https://www.emblogic.com/blog/07/implemented-lseek-in-character-driver-project-05/#comments</comments>
		<pubDate>Sun, 14 Jul 2013 10:52:04 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Mr.Pravjot Singh]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6775</guid>
		<description><![CDATA[RCS file: chard.c,v Working file: chard.c head: 1.6 branch: locks: strict emblogic: 1.6 access list: symbolic names: keyword substitution: kv total revisions: 6;     selected revisions: 6 description: registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region. implemented scull_setup function. implemented scull_open &#8230; <a href="https://www.emblogic.com/blog/07/implemented-lseek-in-character-driver-project-05/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: chard.c,v<br />
Working file: chard.c<br />
head: 1.6<br />
branch:<br />
locks: strict<br />
emblogic: 1.6<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 6;     selected revisions: 6<br />
description:<br />
registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region.<br />
implemented scull_setup function.<br />
implemented scull_open routine.<br />
started scull_trim,scull_release,scull_write and scull_read routines.<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6    locked by: emblogic;<br />
date: 2013/07/14 10:32:08;  author: emblogic;  state: Exp;  lines: +169 -50<br />
implemented lseek using scull_lseek.<br />
created new quantums when needed.<br />
read and written successfully after seeking.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2013/07/11 08:48:05;  author: emblogic;  state: Exp;  lines: +19 -47<br />
implemented read and write successfully for any no. of bytes.<br />
checked for upto 1000 bytes .successfully written to scull Quantums and read from the quantums as well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2013/07/10 11:43:39;  author: emblogic;  state: Exp;  lines: +89 -8<br />
read successfully .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2013/07/10 06:02:17;  author: emblogic;  state: Exp;  lines: +58 -4<br />
written to scull successfully using write2scull function.<br />
working well.<br />
but printing garbage due to absence of NULL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2013/07/09 12:03:54;  author: emblogic;  state: Exp;  lines: +170 -5<br />
implemented creat_scullqset,creat_qset and creat_quantums&#8230;.aloocated memory to write to scull.<br />
quantums created successfully .<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2013/07/08 11:03:54;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/implemented-lseek-in-character-driver-project-05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Driver</title>
		<link>https://www.emblogic.com/blog/07/character-driver-11/</link>
		<comments>https://www.emblogic.com/blog/07/character-driver-11/#comments</comments>
		<pubDate>Thu, 11 Jul 2013 09:36:57 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[pravjot sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6697</guid>
		<description><![CDATA[RCS file: chard.c,v Working file: chard.c head: 1.5 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 5;     selected revisions: 5 description: registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region. implemented scull_setup function. implemented scull_open routine. started &#8230; <a href="https://www.emblogic.com/blog/07/character-driver-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: chard.c,v<br />
Working file: chard.c<br />
head: 1.5<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 5;     selected revisions: 5<br />
description:<br />
registered and unregistered devices using alloc_chrdev_region and unregis_chrdev_region.<br />
implemented scull_setup function.<br />
implemented scull_open routine.<br />
started scull_trim,scull_release,scull_write and scull_read routines.<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2013/07/11 08:48:05;  author: emblogic;  state: Exp;  lines: +19 -47<br />
implemented read and write successfully for any no. of bytes.<br />
checked for upto 1000 bytes .successfully written to scull Quantums and read from the quantums as well.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2013/07/10 11:43:39;  author: emblogic;  state: Exp;  lines: +89 -8<br />
read successfully .<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2013/07/10 06:02:17;  author: emblogic;  state: Exp;  lines: +58 -4<br />
written to scull successfully using write2scull function.<br />
working well.<br />
but printing garbage due to absence of NULL.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2013/07/09 12:03:54;  author: emblogic;  state: Exp;  lines: +170 -5<br />
implemented creat_scullqset,creat_qset and creat_quantums&#8230;.aloocated memory to write to scull.<br />
quantums created successfully .<br />
working well till now.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2013/07/08 11:03:54;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/07/character-driver-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E30: Om Parkash::project 4(server client project using FIFO&#8217;s &amp; Threads)</title>
		<link>https://www.emblogic.com/blog/06/e30-om-parkashproject-4server-client-project-using-fifos-threads/</link>
		<comments>https://www.emblogic.com/blog/06/e30-om-parkashproject-4server-client-project-using-fifos-threads/#comments</comments>
		<pubDate>Wed, 26 Jun 2013 04:54:40 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=6606</guid>
		<description><![CDATA[RCS file: server.c,v Working file: server.c head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1;    selected revisions: 1 description: srvr working for upto 60 clients using fifo&#8217;s &#38; threads&#8230;. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.1 date: 2013/06/26 &#8230; <a href="https://www.emblogic.com/blog/06/e30-om-parkashproject-4server-client-project-using-fifos-threads/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: server.c,v<br />
Working file: 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 />
srvr working for upto 60 clients using fifo&#8217;s &amp; threads&#8230;.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>revision 1.1</p>
<p>date: 2013/06/26 04:18:21;  author: emblogic;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/e30-om-parkashproject-4server-client-project-using-fifos-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>multiple data compression and encryption.</title>
		<link>https://www.emblogic.com/blog/02/multiple-data-compression-and-encryption/</link>
		<comments>https://www.emblogic.com/blog/02/multiple-data-compression-and-encryption/#comments</comments>
		<pubDate>Tue, 26 Feb 2013 04:41:49 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=6223</guid>
		<description><![CDATA[I&#8217;ve completed &#8216;Multiple Data Compression And Encryption&#8217; project..]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve completed &#8216;Multiple Data Compression And Encryption&#8217; project..</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/multiple-data-compression-and-encryption/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>project 1</title>
		<link>https://www.emblogic.com/blog/01/project-1-9/</link>
		<comments>https://www.emblogic.com/blog/01/project-1-9/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 12:21:38 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=6024</guid>
		<description><![CDATA[Done 8 programs of assignment 4(strings),working on pointers&#8230;]]></description>
				<content:encoded><![CDATA[<p>Done 8 programs of assignment 4(strings),working on pointers&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/project-1-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project 1(status)</title>
		<link>https://www.emblogic.com/blog/01/project-1status/</link>
		<comments>https://www.emblogic.com/blog/01/project-1status/#comments</comments>
		<pubDate>Mon, 21 Jan 2013 06:23:29 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5978</guid>
		<description><![CDATA[Just completed assignment 3,,]]></description>
				<content:encoded><![CDATA[<p>Just completed assignment 3,,</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/project-1status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project 1</title>
		<link>https://www.emblogic.com/blog/01/project-1-7/</link>
		<comments>https://www.emblogic.com/blog/01/project-1-7/#comments</comments>
		<pubDate>Sun, 20 Jan 2013 14:20:55 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5969</guid>
		<description><![CDATA[Done assignment 2,Q:7(checking a number for power of 2) using single expression. done 8 questions from 3rd assignment ,having problem in Q5:showing errors in assignment statements like i++=j++; and in Q8(print cycle of sine and cosine wave),i don&#8217;t understand what &#8230; <a href="https://www.emblogic.com/blog/01/project-1-7/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Done assignment 2,Q:7(checking a number for power of 2) using single expression.</p>
<p>done 8 questions from 3rd assignment ,having problem in Q5:showing errors in assignment statements like</p>
<p>i++=j++;</p>
<p>and in Q8(print cycle of sine and cosine wave),i don&#8217;t understand what to do in program;</p>
<p>overall enjoying C&#8230;..</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/project-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>project 1</title>
		<link>https://www.emblogic.com/blog/01/project-1-4/</link>
		<comments>https://www.emblogic.com/blog/01/project-1-4/#comments</comments>
		<pubDate>Mon, 14 Jan 2013 18:17:00 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5910</guid>
		<description><![CDATA[completed assignment 2 but done Que:7(: to check that a given no. is a power of 2 or not) but not by using single expression.]]></description>
				<content:encoded><![CDATA[<p>completed assignment 2 but done Que:7(: to check that a given no. is a power of 2 or not) but not by using single expression.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/project-1-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>project 01:</title>
		<link>https://www.emblogic.com/blog/01/project-01/</link>
		<comments>https://www.emblogic.com/blog/01/project-01/#comments</comments>
		<pubDate>Sun, 13 Jan 2013 19:36:07 +0000</pubDate>
		<dc:creator><![CDATA[Om Parkash]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://emblogic.org/blog/?p=5879</guid>
		<description><![CDATA[completed assignment 1 (basics in C),and done 7 programs of second assignment(conditionals);having doubts in 1) Q10(assignment 1) integer overflow:why unsigned int always gives the maximum value(4294967295) possible for it on overflow;as char gives 0 on 1 overflow??? 2)what exactly happens &#8230; <a href="https://www.emblogic.com/blog/01/project-01/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>completed assignment 1 (basics in C),and done 7 programs of second assignment(conditionals);having doubts in</p>
<p>1) Q10(assignment 1) integer overflow:why unsigned int always gives the maximum value(4294967295) possible for it on overflow;as char gives 0 on 1 overflow???</p>
<p>2)what exactly happens here::</p>
<p>int p=5;</p>
<p>printf(%d\t%d\t%d\t%d\n,++p,p++,p,++p);</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/project-01/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
