<?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; siddharth.rathore</title>
	<atom:link href="https://www.emblogic.com/blog/author/siddharth-rathore/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>Version Control System</title>
		<link>https://www.emblogic.com/blog/03/version-control-system/</link>
		<comments>https://www.emblogic.com/blog/03/version-control-system/#comments</comments>
		<pubDate>Mon, 03 Mar 2014 06:41:01 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8782</guid>
		<description><![CDATA[A version control system allows you to track the history of a collection of files and includes the functionality to revert the collection of files to another version. Each version captures a snapshot of the files at a certain point &#8230; <a href="https://www.emblogic.com/blog/03/version-control-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A version control system allows you to track the history of a collection of files and includes the functionality to revert the collection of files to another version. Each version captures a snapshot of the files at a certain point in time. The collection of files is usually source code for a programming language but a typical version control system can put any type of file under version control.</p>
<p>The collection of files and their complete history are stored in a repository.</p>
<p>The process of creating different versions (snapshots) in the repository is depicted in the following graphic. Please note that this picture fits primarily to Git, other version control systems like CVS don&#8217;t create snapshots but store file deltas. </p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/version-control-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Port Modes</title>
		<link>https://www.emblogic.com/blog/02/parallel-port-modes/</link>
		<comments>https://www.emblogic.com/blog/02/parallel-port-modes/#comments</comments>
		<pubDate>Sat, 22 Feb 2014 11:27:56 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8481</guid>
		<description><![CDATA[1. Compatibility Mode This mode defines the protocol used by most PCs to transfer data to a printer. It is commonly called the &#8220;Centronics&#8221; mode and is the method utilized with the standard parallel port. In this mode, data is &#8230; <a href="https://www.emblogic.com/blog/02/parallel-port-modes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: left"><strong>1. Compatibility Mode</strong><br />
This mode defines the protocol used by most PCs to transfer data to a printer. It is commonly called the &#8220;Centronics&#8221; mode and is the method utilized with the standard parallel port. In this mode, data is placed on the port&#8217;s data lines, the printer status is checked for no errors and that it is not Busy, and then a data Strobe is generated by the software to clock the data to the printer.</p>
<p style="text-align: left">Compatibility Mode phase transitions:<br />
1. Write the data to the data register<br />
2. Program reads the status register to check that the printer is not BUSY<br />
3. If not BUSY, then Write to the Control Register to assert the STROBE line<br />
4. Write to the Control register to de-assert the STROBE line</p>
<p><strong>2. Nibble Mode</strong><br />
The Nibble mode is the most common way to get reverse channel data from a printer or peripheral. This mode is usually combined with the Compatibility mode or a proprietary forward channel mode to create a complete bi-directional channel.<br />
All of the standard parallel ports provide 5 lines from the peripheral to the PC to be used for external status indications. Using these lines, a peripheral can send a byte of data (8-bits) by sending 2 nibbles (4-bits) of information to the PC in two data transfer cycles. Unfortunately, since the nACK line is generally used to provide a peripheral interrupt, the bits used to transfer a nibble are not conveniently packed into the byte defined by the Status register. For this reason, the software must read the status byte and then manipulate the bits in order to get a correct byte.</p>
<p style="text-align: left">Nibble Mode phase transitions:<br />
1. Host signals ability to take data by asserting HostBusy low<br />
2. Peripheral responds by placing first nibble on status lines<br />
3. Peripheral signals valid nibble by asserting PtrClk low<br />
4. Host sets HostBusy high to indicate that it has received the nibble and is not yet ready for another nibble.<br />
5. Peripheral sets PtrClk high to acknowledge host<br />
6. States 1 through 5 repeat for the second nibble</p>
<p><strong>3. Byte Mode</strong><br />
With later implementations of the parallel port interface, some manufacturers, led by IBM on the PS/2 parallel port, added the capability to disable the drivers used for driving the data lines, and allowed the data port to become an input read data port. This enables a peripheral to send an entire byte of data to the PC in one data transfer cycle by using the 8 data lines, rather than the two cycles required using the Nibble mode.<br />
This ability enables a Byte mode for reverse channel data transfer that can be used to provide data rates into the PC approaching that of the Compatibility mode, from the PC. This type of port is sometimes referred to as a &#8220;enhanced bi-directional&#8221; port, and has caused some confusion when mistaken for an Enhanced Parallel Port (EPP).</p>
<p style="text-align: left">Byte Mode signal transitions:<br />
1. Host signals ability to take data by asserting HostBusy low<br />
2. Peripheral responds by placing first byte on data lines<br />
3. Peripheral signals valid byte by asserting PtrClk low<br />
4. Host sets HostBusy high to indicate that it has received the and is not yet ready for another byte<br />
5. Peripheral sets PtrClk high to acknowledge host. Host pulses HostClk as an acknowledgement to the peripheral<br />
6. States 1 through 5 repeat for additional bytes</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/parallel-port-modes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the /proc Filesystem</title>
		<link>https://www.emblogic.com/blog/02/using-the-proc-filesystem/</link>
		<comments>https://www.emblogic.com/blog/02/using-the-proc-filesystem/#comments</comments>
		<pubDate>Tue, 11 Feb 2014 09:28:55 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8280</guid>
		<description><![CDATA[The /proc filesystem is a special, software-created filesystem that is used by the ker- nel to export information to the world. Each file under /proc is tied to a kernel func- tion that generates the file’s “contents” on the fly &#8230; <a href="https://www.emblogic.com/blog/02/using-the-proc-filesystem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The /proc filesystem is a special, software-created filesystem that is used by the ker-<br />
nel to export information to the world. Each file under /proc is tied to a kernel func-<br />
tion that generates the file’s “contents” on the fly when the file is read. We have<br />
already seen some of these files in action; /proc/modules, for example, always returns<br />
a list of the currently loaded modules.<br />
/proc is heavily used in the Linux system. Many utilities on a modern Linux distribu-<br />
tion, such as ps, top, and uptime, get their information from /proc. Some device driv-<br />
ers also export information via /proc, and yours can do so as well. The /proc<br />
filesystem is dynamic, so your module can add or remove entries at any time.<br />
Fully featured /proc entries can be complicated beasts; among other things, they can<br />
be written to as well as read from. Most of the time, however, /proc entries are read-<br />
only files.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/using-the-proc-filesystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Charact. Device Driver- Synchronization Techniques</title>
		<link>https://www.emblogic.com/blog/01/charact-device-driver-synchronization-techniques/</link>
		<comments>https://www.emblogic.com/blog/01/charact-device-driver-synchronization-techniques/#comments</comments>
		<pubDate>Tue, 28 Jan 2014 10:23:46 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[MR.PRAVJOT SINGH JASMINE MAM]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8213</guid>
		<description><![CDATA[Completed Synchronizations Technique: 1. Semaphore 2. Mutex 3. RW_Semaphore 4. Completion 5. Spinlock]]></description>
				<content:encoded><![CDATA[<p>Completed Synchronizations Technique:</p>
<p>1. Semaphore</p>
<p>2. Mutex</p>
<p>3. RW_Semaphore</p>
<p>4. Completion</p>
<p>5. Spinlock</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/charact-device-driver-synchronization-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open and Close File operations</title>
		<link>https://www.emblogic.com/blog/01/open-and-close-file-operations/</link>
		<comments>https://www.emblogic.com/blog/01/open-and-close-file-operations/#comments</comments>
		<pubDate>Fri, 10 Jan 2014 09:43:50 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8092</guid>
		<description><![CDATA[head    1.3; access; symbols; locks; strict; comment    @ * @; 1.3 date    2014.01.10.09.25.47;    author root;    state Exp; branches; next    1.2; 1.2 date    2014.01.09.11.09.19;    author root;    state Exp; branches; next    1.1; 1.1 date    2014.01.06.10.23.58;    author root;    state Exp; branches; next    ; &#8230; <a href="https://www.emblogic.com/blog/01/open-and-close-file-operations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.3;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.3<br />
date    2014.01.10.09.25.47;    author root;    state Exp;<br />
branches;<br />
next    1.2;</p>
<p>1.2<br />
date    2014.01.09.11.09.19;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.23.58;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@Header file for init.c and exit .c<br />
@</p>
<p>1.3<br />
log<br />
@header file now only includes header files and macros.<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.3;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.3<br />
date    2014.01.10.09.26.29;    author root;    state Exp;<br />
branches;<br />
next    1.2;</p>
<p>1.2<br />
date    2014.01.09.11.09.45;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.25.07;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@all the declerations are done in this file for init.c and exit.c<br />
@</p>
<p>1.3<br />
log<br />
@this file now has the extern declerations<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&nbsp;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.10.09.32.30;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@this file has the mapping of the file_operations fops<br />
open and close.<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.3;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.3<br />
date    2014.01.10.09.27.06;    author root;    state Exp;<br />
branches;<br />
next    1.2;</p>
<p>1.2<br />
date    2014.01.09.11.05.33;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.29.02;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code fro initialization function<br />
@</p>
<p>1.3<br />
log<br />
@added the definitions of extern declerations<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2014.01.10.09.27.33;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.29.47;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for clean-up function.<br />
@</p>
<p>1.2<br />
log<br />
@added the definitions of extern declerations<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.10.09.33.32;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@routine for opening the node between kernel and user space<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.10.09.34.09;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@routine for releasing the node between kernel and user space</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.10.09.32.26;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@the application which is calling the driver for file_operations fops.<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @# @;</p>
<p>1.2<br />
date    2014.01.10.09.29.33;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.30.54;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@script file for the code<br />
@</p>
<p>1.2<br />
log<br />
@added the command MKNOD<br />
added the command make app<br />
added the command unlink<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/open-and-close-file-operations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scull For Multiple Devices</title>
		<link>https://www.emblogic.com/blog/01/scull-for-multiple-devices/</link>
		<comments>https://www.emblogic.com/blog/01/scull-for-multiple-devices/#comments</comments>
		<pubDate>Thu, 09 Jan 2014 11:13:47 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8065</guid>
		<description><![CDATA[head    1.2; access; symbols; locks; strict; comment    @ * @; 1.2 date    2014.01.09.11.09.19;    author root;    state Exp; branches; next    1.1; 1.1 date    2014.01.06.10.23.58;    author root;    state Exp; branches; next    ; desc @Header file for init.c and exit .c @ 1.2 &#8230; <a href="https://www.emblogic.com/blog/01/scull-for-multiple-devices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2014.01.09.11.09.19;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.23.58;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@Header file for init.c and exit .c<br />
@</p>
<p>1.2<br />
log<br />
@nothing is changed as per the project<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2014.01.09.11.09.45;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.25.07;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@all the declerations are done in this file for init.c and exit.c<br />
@</p>
<p>1.2<br />
log<br />
@declared the scull function for multiple devices<br />
@</p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.06.10.29.47;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for clean-up function.<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2014.01.09.11.05.33;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2014.01.06.10.29.02;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code fro initialization function<br />
@</p>
<p>1.2<br />
log<br />
@created for multiple devices using for loop and exported the function to Symbol Table<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/scull-for-multiple-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character Device Driver 06/01/2014</title>
		<link>https://www.emblogic.com/blog/01/character-device-driver-06012014/</link>
		<comments>https://www.emblogic.com/blog/01/character-device-driver-06012014/#comments</comments>
		<pubDate>Mon, 06 Jan 2014 10:38:56 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8028</guid>
		<description><![CDATA[log files head    1.1; access; symbols; locks; strict; comment    @ * @; 1.1 date    2014.01.06.10.23.58;    author root;    state Exp; branches; next    ; desc @Header file for init.c and exit .c &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; head    1.1; access; symbols; locks; strict; comment    @ * &#8230; <a href="https://www.emblogic.com/blog/01/character-device-driver-06012014/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>log files</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.06.10.23.58;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@Header file for init.c and exit .c</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.06.10.25.07;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@all the declerations are done in this file for init.c and exit.c</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.06.10.29.02;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for initialization function</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2014.01.06.10.29.47;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for clean-up function.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @# @;</p>
<p>1.1<br />
date    2014.01.06.10.30.54;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@script file for the code</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/01/character-device-driver-06012014/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Socket (AF_INET)</title>
		<link>https://www.emblogic.com/blog/12/socket-af_inet/</link>
		<comments>https://www.emblogic.com/blog/12/socket-af_inet/#comments</comments>
		<pubDate>Mon, 30 Dec 2013 10:54:34 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>
		<category><![CDATA[Harpreet sir]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7961</guid>
		<description><![CDATA[Log file for server head    1.1; access; symbols; locks root:1.1; strict; comment    @ * @; 1.1 date    2013.12.30.10.47.35;    author root;    state Exp; branches; next    ; desc @source file for ftp server &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- log file for client head    1.1; access; symbols; &#8230; <a href="https://www.emblogic.com/blog/12/socket-af_inet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Log file for server</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.30.10.47.35;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source file for ftp server</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>log file for client</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.30.10.52.02;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for client for FTP</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/socket-af_inet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advantage and Drawbacks of Threads</title>
		<link>https://www.emblogic.com/blog/12/advantage-and-drawbacks-of-threads/</link>
		<comments>https://www.emblogic.com/blog/12/advantage-and-drawbacks-of-threads/#comments</comments>
		<pubDate>Mon, 30 Dec 2013 07:45:14 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7910</guid>
		<description><![CDATA[Following are some advantages of using threads: Sometimes it is very useful to make a program appear to do two things at once. The classic example is to perform a real-time word count on a document while still editing the &#8230; <a href="https://www.emblogic.com/blog/12/advantage-and-drawbacks-of-threads/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: left"><strong>Following are some advantages of using threads:</strong></p>
<ol>
<li>Sometimes it is very useful to make a program appear to do two things at once. The classic example is to perform a real-time word count on a document while still editing the text. One thread can manage the user’s input and perform editing. The other, which can see the same document content, can continuously update a word count variable. The first thread (or even a third one) can use this shared variable to keep the user informed. Another example is a multithreaded database server<br />
where an apparent single process serves multiple clients, improving the overall data throughput by servicing some requests while blocking others, waiting for disk activity. For a database server, this apparent multitasking is quite hard to do efficiently in different processes, because the  requirements for locking and data consistency cause the different processes to be very tightly coupled. This can be done much more easily with multiple threads than with multiple processes.</li>
<li>The performance of an application that mixes input, calculation, and output may be improved by running these as three separate threads. While the input or output thread is waiting for a connection, one of the other threads can continue with calculations. A server application pro-cessing multiple network connects may also be a natural fit for a multithreaded program.</li>
<li>Now that multi-cored CPUs are common even in desktop and laptop machines, using multiple threads inside a process can, if the application is suitable, enable a single process to better utilize the hardware resources available.</li>
<li>In general, switching between threads requires the operating system to do much less work than switching between processes. Thus, multiple threads are much less demanding on resources than multiple processes, and it is more practical to run programs that logically require many threads of execution on single-processor systems. That said, the design difficulties of writing a multithreaded program are significant and should not be taken lightly.</li>
</ol>
<p style="text-align: left"><strong>Threads also have drawbacks:</strong></p>
<p style="text-align: left">
<ol>
<li>Writing multithreaded programs requires very careful design. The potential for introducing subtle timing faults, or faults caused by the unintentional sharing of variables in a multithreaded program is considerable. Alan Cox (the well respected Linux guru) has commented that threads are also known as “how to shoot yourself in both feet at once.”</li>
<li>Debugging a multithreaded program is much, much harder than debugging a single-threaded one, because the interactions between the threads are very hard to control.</li>
<li>A program that splits a large calculation into two and runs the two parts as different threads will not necessarily run more quickly on a single processor machine, unless the calculation truly allows multiple parts to be calculated simultaneously and the machine it is executing on has multiple processor cores to support true multiprocessing.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/advantage-and-drawbacks-of-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Socket (AF_UNIX)</title>
		<link>https://www.emblogic.com/blog/12/socket-af_unix/</link>
		<comments>https://www.emblogic.com/blog/12/socket-af_unix/#comments</comments>
		<pubDate>Sun, 29 Dec 2013 09:46:20 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>
		<category><![CDATA[Harpreet sir]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7881</guid>
		<description><![CDATA[log file for server head    1.2; access; symbols; locks; strict; comment    @ * @; 1.2 date    2013.12.29.09.42.09;    author root;    state Exp; branches; next    1.1; 1.1 date    2013.12.29.09.35.38;    author root;    state Exp; branches; next    ; desc @main server file for socket &#8230; <a href="https://www.emblogic.com/blog/12/socket-af_unix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>log file for server</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2013.12.29.09.42.09;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2013.12.29.09.35.38;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@main server file for socket using AF_UNIX<br />
@</p>
<p>1.2<br />
log<br />
@indent correction<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>log file for client</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.29.09.40.02;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@source code for client1 of socket AF_UNIX</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/socket-af_unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server &#8211; Client using Threads</title>
		<link>https://www.emblogic.com/blog/12/server-client-using-threads/</link>
		<comments>https://www.emblogic.com/blog/12/server-client-using-threads/#comments</comments>
		<pubDate>Sat, 28 Dec 2013 09:22:19 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Harpreet sir]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7855</guid>
		<description><![CDATA[Log file for server head    1.1; access; symbols; locks; strict; comment    @ * @; 1.1 date    2013.12.28.07.56.32;    author emblogic;    state Exp; branches; next    ; desc @server with thread is created. data from client to thread . @ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- log file &#8230; <a href="https://www.emblogic.com/blog/12/server-client-using-threads/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Log file for server</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.28.07.56.32;    author emblogic;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@server with thread is created.<br />
data from client to thread .<br />
@</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>log file for request client</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
emblogic:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.28.07.58.32;    author emblogic;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@requesting client using semaphore and shared memory sucssecfully created.<br />
@</p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>log file for processing client</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
emblogic:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.28.07.58.43;    author emblogic;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@processing client using shared memory is created.<br />
@</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/server-client-using-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server-Client Communication using Message Queues Completed</title>
		<link>https://www.emblogic.com/blog/12/server-client-communication-using-message-queues-completed/</link>
		<comments>https://www.emblogic.com/blog/12/server-client-communication-using-message-queues-completed/#comments</comments>
		<pubDate>Tue, 24 Dec 2013 10:31:08 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>
		<category><![CDATA[Harpreet sir]]></category>
		<category><![CDATA[Prabhjot Sir]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7829</guid>
		<description><![CDATA[Log File For Server: head    1.2; access; symbols; locks root:1.2; strict; comment    @ * @; 1.2 date    2013.12.24.10.09.27;    author root;    state Exp; branches; next    1.1; 1.1 date    2013.12.24.09.32.25;    author root;    state Exp; branches; next    ; desc @This is the main &#8230; <a href="https://www.emblogic.com/blog/12/server-client-communication-using-message-queues-completed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Log File For Server:</p>
<p>head    1.2;<br />
access;<br />
symbols;<br />
locks<br />
root:1.2; strict;<br />
comment    @ * @;</p>
<p>1.2<br />
date    2013.12.24.10.09.27;    author root;    state Exp;<br />
branches;<br />
next    1.1;</p>
<p>1.1<br />
date    2013.12.24.09.32.25;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is the main server source file for client server project using message queue.<br />
@</p>
<p>1.2<br />
log<br />
@This is the final source code of server.<br />
change the value of msg_id of msg_st.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Log File For Req_add<br />
head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.09.38.26;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is the request client for addition.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Log file for Req_sub</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.10.06.30;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is the source code of requesting client for substration.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&nbsp;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>log file for Req_Mul</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.10.07.13;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is source code of requesting client for multiplication.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Log file For Proccesing_Add</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.09.54.10;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is the source code of processing client for addition.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Log file For Proccesing_Sub</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.10.08.22;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is source code of processing client for substraction.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Log file For Proccesing_Mul</p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks<br />
root:1.1; strict;<br />
comment    @ * @;</p>
<p>1.1<br />
date    2013.12.24.10.09.14;    author root;    state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is source code of processing client for multiplcation.<br />
@</p>
<p>1.1<br />
log<br />
@Initial revision</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/server-client-communication-using-message-queues-completed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC_PIPE</title>
		<link>https://www.emblogic.com/blog/12/ipc_pipe/</link>
		<comments>https://www.emblogic.com/blog/12/ipc_pipe/#comments</comments>
		<pubDate>Fri, 20 Dec 2013 08:29:33 +0000</pubDate>
		<dc:creator><![CDATA[siddharth.rathore]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Siddharth.Rathore]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7771</guid>
		<description><![CDATA[Introduction The Linux IPC (Inter-process communication) facilities provide a method for multiple processes to communicate with one another. There are several methods of IPC available to Linux C programmers. These facilities, when used effectively, provide a solid framework for client/server &#8230; <a href="https://www.emblogic.com/blog/12/ipc_pipe/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Introduction</p>
<p>The Linux IPC (Inter-process communication) facilities provide a method for multiple processes to communicate with one another. There are several methods of IPC available to Linux C programmers.</p>
<p>These facilities, when used effectively, provide a solid framework for client/server development on any Linux system (including Linux).<br />
Half-duplex Linux pipes<br />
Simply put, a pipe is a method of connecting the standard output of one process to the standard input of another. Pipes are the eldest of the IPC tools, having been around since the earliest incarnations of the Linux operating system. They provide a method of one-way communications (hence the term half-duplex) between processes.</p>
<p>This feature is widely used, even on the Linux command line (in the shell).</p>
<p>        ls | sort | lp</p>
<p>The above sets up a pipeline, taking the output of ls as the input of sort, and the output of sort as the input of lp. The data is running through a half duplex pipe, traveling (visually) left to right through the pipeline.</p>
<p>Although most of us use pipes quite religiously in shell script programming, we often do so without giving a second thought to what transpires at the kernel level.</p>
<p>When a process creates a pipe, the kernel sets up two file descriptors for use by the pipe. One descriptor is used to allow a path of input into the pipe (write), while the other is used to obtain data from the pipe (read). At this point, the pipe is of little practical use, as the creating process can only use the pipe to communicate with itself.<br />
If the process sends data through the pipe (fd0), it has the ability to obtain (read) that information from fd1. However, there is a much larger objective of the simplistic sketch above. While a pipe initially connects a process to itself, data traveling through the pipe moves through the kernel. Under Linux, in particular, pipes are actually represented internally with a valid inode. Of course, this inode resides within the kernel itself, and not within the bounds of any physical file system. This particular point will open up some pretty handy I/O doors for us, as we will see a bit later on.<br />
At this point, the pipe is fairly useless. After all, why go to the trouble of creating a pipe if we are only going to talk to ourself? At this point, the creating process typically forks a child process. Since a child process will inherit any open file descriptors from the parent, we now have the basis for multiprocess communication (between parent and child).<br />
We see that both processes now have access to the file descriptors which constitute the pipeline. It is at this stage, that a critical decision must be made. In which direction do we desire data to travel? Does the child process send information to the parent, or vice-versa? The two processes mutually agree on this issue, and proceed to &#8220;close&#8221; the end of the pipe that they are not concerned with. For discussion purposes, let&#8217;s say the child performs some processing, and sends information back through the pipe to the parent.<br />
Construction of the pipeline is now complete! The only thing left to do is make use of the pipe. To access a pipe directly, the same system calls that are used for low-level file I/O can be used (recall that pipes are actually represented internally as a valid inode).</p>
<p>To send data to the pipe, we use the write() system call, and to retrieve data from the pipe, we use the read() system call. Remember, low-level file I/O system calls work with file descriptors! However, keep in mind that certain system calls, such as lseek(), do not work with descriptors to pipes. </p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/ipc_pipe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
