<?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; Rahul Sharma</title>
	<atom:link href="https://www.emblogic.com/blog/author/rahul-sharma/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>PARALLEL PORT -8 led array</title>
		<link>https://www.emblogic.com/blog/06/parallel-port-8-led-array/</link>
		<comments>https://www.emblogic.com/blog/06/parallel-port-8-led-array/#comments</comments>
		<pubDate>Mon, 23 Jun 2014 14:43:58 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Parallel Port Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10602</guid>
		<description><![CDATA[Succesfully implemented the parallel port outb operations using 8-led array!!! I had firstly make a sculldev allocate memory to it so that i can map the file_operations through the cdev_init and cdev_add operations and then map the parallel port address &#8230; <a href="https://www.emblogic.com/blog/06/parallel-port-8-led-array/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Succesfully implemented the parallel port outb operations using 8-led array!!!</p>
<p>I had firstly make a sculldev allocate memory to it so that i can map the file_operations through the<br />
cdev_init and cdev_add operations and then map the parallel port address to the user address,then map the write operation to the driver and i had made a application for sending the data byte from the application through the node to the driver and received by the scull_write function in the map space then get the data from the application to the __user *buffer and then copy_from_user to get the data from application and then save it in the unsigned char buffer and then outb the data to the parallel port and continuously sending the data from the application and sending the data continuously to the port and the binary representation of the characters are shown on the led&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/parallel-port-8-led-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>implemented ioctl :change quantum and qset using operation</title>
		<link>https://www.emblogic.com/blog/06/implemented-ioctl-change-quantum-and-qset-using-operation/</link>
		<comments>https://www.emblogic.com/blog/06/implemented-ioctl-change-quantum-and-qset-using-operation/#comments</comments>
		<pubDate>Fri, 13 Jun 2014 11:00:13 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10468</guid>
		<description><![CDATA[RCS file: ./ioctl.c,v Working file: ./ioctl.c head: 1.23 branch: locks: strict root: 1.23 access list: symbolic names: keyword substitution: kv total revisions: 23; selected revisions: 23 description: this is our ioctl.c file for driver operations &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.23 locked by: &#8230; <a href="https://www.emblogic.com/blog/06/implemented-ioctl-change-quantum-and-qset-using-operation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./ioctl.c,v<br />
Working file: ./ioctl.c<br />
head: 1.23<br />
branch:<br />
locks: strict<br />
	root: 1.23<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 23;	selected revisions: 23<br />
description:<br />
this is our ioctl.c file for driver operations<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23	locked by: root;<br />
date: 2014/06/11 03:22:58;  author: root;  state: Exp;  lines: +6 -1<br />
IOCSQSET applied in case<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2014/06/08 20:06:07;  author: root;  state: Exp;  lines: +1 -1<br />
working fine for scull_IOCSQUANTUM<br />
able to set the quantum value to 16 or 32 and then write changes in skull and then read the skull properly<br />
working fine till now<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21<br />
date: 2014/06/08 05:31:57;  author: root;  state: Exp;  lines: +3 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.20<br />
date: 2014/06/07 22:09:52;  author: root;  state: Exp;  lines: +3 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2014/06/07 19:36:41;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/06/07 19:20:32;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/06/07 19:19:11;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/06/07 19:16:56;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/06/07 19:16:35;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/06/07 19:10:41;  author: root;  state: Exp;  lines: +1 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/06/07 19:08:04;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/06/07 19:07:40;  author: root;  state: Exp;  lines: +5 -5<br />
testing!!!!!!!!!!!!!!!!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/06/07 19:00:39;  author: root;  state: Exp;  lines: +6 -5<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/06/07 18:32:34;  author: root;  state: Exp;  lines: +4 -4<br />
working fine for IOCGQUANTUM&#8230;&#8230;.!!!!!!!!!!!!!!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/06/07 18:04:09;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/06/07 17:51:09;  author: root;  state: Exp;  lines: +3 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/06/07 17:48:12;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/06/07 17:44:38;  author: root;  state: Exp;  lines: +3 -1<br />
testing!!!!!!!!!!!!!!!!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/06/07 17:37:27;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/06/07 17:34:13;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/06/07 17:30:50;  author: root;  state: Exp;  lines: +1 -1<br />
updated ret for case IOCSQUANTUM<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/06/07 17:22:00;  author: root;  state: Exp;  lines: +1 -1<br />
include commands like SCULL_IOCSQUANTUM<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/06/07 17:11:17;  author: root;  state: Exp;<br />
Initial revision<br />
============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/implemented-ioctl-change-quantum-and-qset-using-operation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>server-client using threads in server(using aprox all IPC techniques</title>
		<link>https://www.emblogic.com/blog/06/server-client-using-threads-in-serverusing-aprox-all-ipc-techniques/</link>
		<comments>https://www.emblogic.com/blog/06/server-client-using-threads-in-serverusing-aprox-all-ipc-techniques/#comments</comments>
		<pubDate>Tue, 10 Jun 2014 09:52:36 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10440</guid>
		<description><![CDATA[RCS file: ./server.c,v Working file: ./server.c head: 1.5 branch: locks: strict root: 1.5 access list: symbolic names: keyword substitution: kv total revisions: 5; selected revisions: 5 description: this is the server accepting data &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.5 locked by: root; date: &#8230; <a href="https://www.emblogic.com/blog/06/server-client-using-threads-in-serverusing-aprox-all-ipc-techniques/">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.5<br />
branch:<br />
locks: strict<br />
    root: 1.5<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 5;    selected revisions: 5<br />
description:<br />
this is the server accepting data<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5    locked by: root;<br />
date: 2014/06/09 21:07:39;  author: root;  state: Exp;  lines: +192 -95<br />
in this code i am getting the data from the requesting client through the fifo then<br />
giving switch call for the type of operator eg + and then in the case + ,i am calling thread in which i had<br />
use fork and execl to dulplicate the processadd file to calculate the result of the operation and the data is shared to the processadd function to the server via a shared memory<br />
after the data is processed the result is captured by the thread calling processadd and then sending to the respective r_clients through the message queue that are common to all the requesting clients<br />
i had implemented the process level semaphore ,so that only 1 process should aquire the server at one time<br />
the write of the requesting client is in the critical area of the semaphore and the messagequeue is present outside the critical region of the requesting client<br />
WORKING FINE!!!!!!!!!!!!!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/05/30 16:28:40;  author: root;  state: Exp;  lines: +128 -3<br />
working succesfully with all the 4 cases if the r_clients enncounterred one by one<br />
if encounterred grouply then error<br />
sollution is attached a while loop in the switch but i am geeting error of segment default<br />
to continued<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/05/30 05:10:01;  author: root;  state: Exp;  lines: +57 -19<br />
As we send th data from the server to processadd we are receiving the data variable res and tag through the<br />
processadd to server via a message queues&#8230;.<br />
i got a problem here as i mentioned msgget and shmid together i am getting the problem in getting the<br />
value of msg_id and shm_id and it it resolved as i put the msgget just after the shmctl remove the shared memory<br />
WORKING SUCESSFULLY&#8230;&#8230;the data result of add is received to the server<br />
i am sending 10 and 20 from the request1 to server which on behaf of the case &#8216;+&#8217; send dulplicate the proceess add and send the data through shared memory and the server receive the result through message queues.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/05/28 15:21:46;  author: root;  state: Exp;  lines: +35 -1<br />
In this server ,we have requesting client 1 ,who sends the data in the form of packet structure<br />
and fifo is connected to it with the server<br />
we send the block of data to the server<br />
block of data contain a,b,tag and oper<br />
oper is checked by the server in the case statement and the data is stored in the structure contain a array of integer<br />
and the we have to send it to the processing client ,processing client have nothing to done with oper<br />
that is send by the requesting client<br />
it it checked within the server<br />
continueeeeee&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/05/28 15:05:07;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================<br />
*****************************************************************************************************************************************<br />
RCS file: ./r_client1.c,v<br />
Working file: ./r_client1.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
    root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
this is the file where i am sending th data through the fifo to the server and receiving the data<br />
through message queues and then printing the result<br />
eg this client send 23+ through the fifo to the server<br />
and geeting result 5<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: root;<br />
date: 2014/06/09 21:06:51;  author: root;  state: Exp;<br />
Initial revision<br />
*************************************************************************************************************************************</p>
<p>RCS file: ./processadd.c,v<br />
Working file: ./processadd.c<br />
head: 1.4<br />
branch:<br />
locks: strict<br />
    root: 1.4<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 4;    selected revisions: 4<br />
description:<br />
this is processadd file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4    locked by: root;<br />
date: 2014/06/09 21:15:02;  author: root;  state: Exp;  lines: +1 -0<br />
IN this file I am getting the data through the shared memory from the server and all the addition calculation<br />
are done in this file<br />
after the thread do fork and execl to the this file it will put the result in the message queue<br />
which is acquired by their respective requesting clients .<br />
WORKING FINE!!!!!!! for 4 req clients<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/05/30 16:30:22;  author: root;  state: Exp;  lines: +2 -9<br />
made all the 4 processing clients and are working properly<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/05/30 05:14:31;  author: root;  state: Exp;  lines: +52 -0<br />
In this the data variable a,b and tag is recive by the processadd via shared memory and after calculating the<br />
add result it will put the resultin res and tag and then send the data back to the server via message queues.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/05/28 15:07:04;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/server-client-using-threads-in-serverusing-aprox-all-ipc-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>implemented :completion synchronization technique</title>
		<link>https://www.emblogic.com/blog/06/implemented-completion-synchronization-technique/</link>
		<comments>https://www.emblogic.com/blog/06/implemented-completion-synchronization-technique/#comments</comments>
		<pubDate>Wed, 04 Jun 2014 08:26:44 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10306</guid>
		<description><![CDATA[RCS file: ./write.c,v 3 Working file: ./write.c 4 head: 1.163 5 branch: 6 locks: strict 7 root: 1.163 8 access list: 9 symbolic names: 10 keyword substitution: kv 11 total revisions: 163; selected revisions: 163 12 description: 13 this is &#8230; <a href="https://www.emblogic.com/blog/06/implemented-completion-synchronization-technique/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./write.c,v<br />
  3 Working file: ./write.c<br />
  4 head: 1.163<br />
  5 branch:<br />
  6 locks: strict<br />
  7         root: 1.163<br />
  8 access list:<br />
  9 symbolic names:<br />
 10 keyword substitution: kv<br />
 11 total revisions: 163;   selected revisions: 163<br />
 12 description:<br />
 13 this is the file for user write like operation<br />
 14 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
 15 revision 1.163  locked by: root;<br />
 16 date: 2014/06/03 19:31:57;  author: root;  state: Exp;  lines: +1 -1<br />
 17 comment on complete as have to wok on spinlocks now<br />
 18 in write operation we have to use only complete to pass the driver to the read opeartion<br />
 19 first we ahve to run the read application located in folder:completion then the application will wait for the<br />
 20 writer to write and in testing i have used 3 reader appplication<br />
 21 which will wait for the data tto input from the node then once we run the writer and the first read will read the data<br />
 22 when we run the writer again the second writer will get the data and similarly for 3rd<br />
 23 so tthis type of synchnonising technique is used for the reader writer function for some specific use<br />
 24 continuing with &#8220;&#8221;&#8221;&#8221;&#8221;spinlock&#8221;&#8221;&#8221;&#8221;&#8221;<br />
 25 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
 26 revision 1.162<br />
 27 date: 2014/06/03 18:24:34;  author: root;  state: Exp;  lines: +1 -2<br />
 28 complete fn synchronization tech</p>
<p>revision 1.42<br />
 28 date: 2014/06/03 18:28:52;  author: root;  state: Exp;  lines: +1 -1<br />
 29 include declaration.h<br />
 30 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
 31 revision 1.41<br />
 32 date: 2014/06/03 18:24:57;  author: root;  state: Exp;  lines: +2 -0<br />
 33 wait_for_complete and complete &#8230;..synchronism technique<br />
 34 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
 35 revision 1.40<br />
 36 date: 2014/05/27 17:52:40;  author: root;  state: Exp;  lines: +3 -3<br />
 37 *** empty log message ***<br />
 38 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
 39 revision 1.39<br />
 40 date: 2014/05/27 17:27:03;  author: root;  state: Exp;  lines: +1 -1<br />
 41 successfully working for seek_set,seek_cur,seek_end<br />
 42 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/06/implemented-completion-synchronization-technique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>character driver-seek_SET,SEEK_CUR and SEEK_END working fine for reading</title>
		<link>https://www.emblogic.com/blog/05/character-driver-seek_setseek_cur-and-seek_end-working-fine-for-reading/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-seek_setseek_cur-and-seek_end-working-fine-for-reading/#comments</comments>
		<pubDate>Wed, 28 May 2014 06:23:27 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10222</guid>
		<description><![CDATA[RCS file: ./read2.c,v Working file: ./read2.c head: 1.40 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 40; selected revisions: 40 description: this is working fine with lseek &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.40 date: 2014/05/27 17:52:40; author: root; state: &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-seek_setseek_cur-and-seek_end-working-fine-for-reading/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./read2.c,v<br />
Working file: ./read2.c<br />
head: 1.40<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 40;	selected revisions: 40<br />
description:<br />
this is working fine with lseek<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.40<br />
date: 2014/05/27 17:52:40;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.39<br />
date: 2014/05/27 17:27:03;  author: root;  state: Exp;  lines: +1 -1<br />
successfully working for seek_set,seek_cur,seek_end<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.38<br />
date: 2014/05/27 17:23:05;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.37<br />
date: 2014/05/27 17:21:07;  author: root;  state: Exp;  lines: +1 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.36<br />
date: 2014/05/27 17:07:02;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.35<br />
date: 2014/05/27 17:05:21;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.34<br />
date: 2014/05/27 17:02:47;  author: root;  state: Exp;  lines: +1 -0<br />
if(qpos) then lnoq=lnoq+qpos<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.33<br />
date: 2014/05/27 16:56:01;  author: root;  state: Exp;  lines: +4 -2<br />
applied condition for the quantum=3 for(lv=qpos;lvf_pos<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/05/26 05:52:28;  author: root;  state: Exp;  lines: +2 -2<br />
changing the condition in for loop<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/05/26 05:27:55;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-seek_setseek_cur-and-seek_end-working-fine-for-reading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character driver -lseek operation</title>
		<link>https://www.emblogic.com/blog/05/character-driver-lseek-operation/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-lseek-operation/#comments</comments>
		<pubDate>Tue, 27 May 2014 07:01:17 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10219</guid>
		<description><![CDATA[ranch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 19; selected revisions: 19 description: this is working fine with lseek &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.19 date: 2014/05/26 18:30:46; author: root; state: Exp; lines: +1 -0 working successfully for read &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-lseek-operation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ranch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 19;	selected revisions: 19<br />
description:<br />
this is working fine with lseek<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.19<br />
date: 2014/05/26 18:30:46;  author: root;  state: Exp;  lines: +1 -0<br />
working successfully for read operation using lseek<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.18<br />
date: 2014/05/26 17:57:00;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/05/26 17:53:58;  author: root;  state: Exp;  lines: +3 -3<br />
*off+=nocsr;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/05/26 17:48:06;  author: root;  state: Exp;  lines: +4 -4<br />
changing position of the logic earlier<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/05/26 17:44:53;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/05/26 17:43:03;  author: root;  state: Exp;  lines: +2 -2<br />
rearranging the previous condition<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/05/26 17:40:15;  author: root;  state: Exp;  lines: +8 -2<br />
condition if offset is greater than the data_size<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-lseek-operation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Character driver-sucessfully working for min 32 distinct user</title>
		<link>https://www.emblogic.com/blog/05/character-driver-sucessfully-working-for-min-32-distinct-user/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-sucessfully-working-for-min-32-distinct-user/#comments</comments>
		<pubDate>Tue, 20 May 2014 11:48:28 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10159</guid>
		<description><![CDATA[The code is working fine for 32 distinct user acessing 2 nodes node0 and node1 ie, 32 user can acess this driver at a time without reporting a bug. there are 2 operation that i perform for each application 1.write &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-sucessfully-working-for-min-32-distinct-user/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The code is working fine for 32 distinct user acessing 2 nodes node0 and node1<br />
ie, 32 user can acess this driver at a time without reporting a bug.<br />
there are 2 operation that i perform for each application<br />
1.write to scull<br />
2.read from scull without closing fd in the same application</p>
<p>As the same application is acessing the driver by different user using node0 and node1<br />
so in write operation the same memory segment is owerwrite by the different user and read viceversa<br />
the starting address of the device is fixed<br />
if we close the fd after write operation then again open the skull in RDONLY mode the old fd was lost and stream got closed and while reading it will read the last written text in the quantum of the skull.</p>
<p>rlog: RCS/write,v: No such file or directory<br />
[root@rahul basic]# rlog ./write.c </p>
<p>RCS file: ./write.c,v<br />
Working file: ./write.c<br />
head: 1.105<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 105;	selected revisions: 105<br />
description:<br />
this is the file for user write like operation<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.105<br />
date: 2014/05/19 20:18:45;  author: root;  state: Exp;  lines: +7 -0<br />
printing llseek pointer value and update at th end<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.104<br />
date: 2014/05/19 19:29:42;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.103<br />
date: 2014/05/19 19:26:32;  author: root;  state: Exp;  lines: +7 -7<br />
quantum and qset different way of accessing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.102<br />
date: 2014/05/19 19:06:19;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.101<br />
date: 2014/05/19 19:05:23;  author: root;  state: Exp;  lines: +2 -5<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.100<br />
date: 2014/05/19 19:04:27;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.99<br />
date: 2014/05/19 19:03:29;  author: root;  state: Exp;  lines: +7 -0<br />
printing quantum_size and qset_size<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.98<br />
date: 2014/05/19 18:56:11;  author: root;  state: Exp;  lines: +3 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.97<br />
date: 2014/05/19 18:51:13;  author: root;  state: Exp;  lines: +7 -11<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.96<br />
date: 2014/05/19 18:41:22;  author: root;  state: Exp;  lines: +1 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.95<br />
date: 2014/05/19 18:37:49;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.94<br />
date: 2014/05/19 18:36:58;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.93<br />
date: 2014/05/19 18:35:12;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.92<br />
date: 2014/05/19 18:34:24;  author: root;  state: Exp;  lines: +8 -6<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.91<br />
date: 2014/05/19 18:26:53;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.90<br />
date: 2014/05/19 18:24:01;  author: root;  state: Exp;  lines: +0 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.89<br />
date: 2014/05/19 18:04:33;  author: root;  state: Exp;  lines: +4 -3<br />
reallocation qset_size to qset and quantum_size to quantum<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.88<br />
date: 2014/05/19 05:45:58;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.87<br />
date: 2014/05/19 05:36:01;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.86<br />
date: 2014/05/19 05:33:44;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.85<br />
date: 2014/05/19 05:31:13;  author: root;  state: Exp;  lines: +1 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.84<br />
date: 2014/05/19 05:30:02;  author: root;  state: Exp;  lines: +0 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.83<br />
date: 2014/05/19 04:19:02;  author: root;  state: Exp;  lines: +1 -1<br />
set location of label loop<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.82<br />
date: 2014/05/18 19:57:16;  author: root;  state: Exp;  lines: +1 -1<br />
location of label loop changed<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.81<br />
date: 2014/05/16 12:53:09;  author: root;  state: Exp;  lines: +1 -1<br />
successful working for multiple quantum,multiple QSETS and scullqsets<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.80<br />
date: 2014/05/16 08:37:31;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.79<br />
date: 2014/05/16 08:35:54;  author: root;  state: Exp;  lines: +2 -2<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.78<br />
date: 2014/05/16 08:34:38;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.77<br />
date: 2014/05/16 08:29:37;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
////////////////////////////////////////////////////////////////////////////////////////////////</p>
<p>RCS file: ./header.h,v<br />
Working file: ./header.h<br />
head: 1.65<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 65;	selected revisions: 65<br />
description:<br />
this is the initial header file<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.65<br />
date: 2014/05/19 20:18:21;  author: root;  state: Exp;  lines: +1 -0<br />
give prototype of llseek mapped to scullseek<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.64<br />
date: 2014/05/19 19:27:36;  author: root;  state: Exp;  lines: +2 -2<br />
changing prototypes of allocate_quantum and allocate_qset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.63<br />
date: 2014/05/19 19:03:22;  author: root;  state: Exp;  lines: +0 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.62<br />
date: 2014/05/19 18:59:34;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.61<br />
date: 2014/05/19 18:58:52;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.60<br />
date: 2014/05/19 18:58:20;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.59<br />
date: 2014/05/19 18:56:10;  author: root;  state: Exp;  lines: +3 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.58<br />
date: 2014/05/19 18:51:12;  author: root;  state: Exp;  lines: +6 -0<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.57<br />
date: 2014/05/19 18:29:05;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.56<br />
date: 2014/05/19 18:04:01;  author: root;  state: Exp;  lines: +0 -15<br />
delete macros QUANTUM_SIZE,QSET_SIZE,DEVICE_SIZE<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.55<br />
date: 2014/05/13 09:04:02;  author: root;  state: Exp;  lines: +1 -0<br />
included header file for copy_from_user asm-generic/uaccess.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.54<br />
date: 2014/05/12 10:34:53;  author: root;  state: Exp;  lines: +1 -1<br />
allocate_quantum(void)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.53<br />
date: 2014/05/12 10:25:01;  author: root;  state: Exp;  lines: +1 -0<br />
included allocate_quantum()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.52<br />
date: 2014/05/12 09:56:40;  author: root;  state: Exp;  lines: +1 -0<br />
included allocate skullqset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.51<br />
/////////////////////////////////////////////////////////////////////////////////////////////////////////RCS file: ./scullseek.c,v<br />
Working file: ./scullseek.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 />
this is the initial file for llseek system call<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/05/19 20:22:58;  author: root;  state: Exp;<br />
Initial revision<br />
////////////////////////////////////////////////////////////////////////////////////////////////////<br />
RCS file: ./init.c,v<br />
Working file: ./init.c<br />
head: 1.68<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 68;	selected revisions: 68<br />
description:<br />
this is the initial file contain initialize function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.68<br />
date: 2014/05/19 20:18:14;  author: root;  state: Exp;  lines: +2 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.67<br />
date: 2014/05/19 18:03:18;  author: root;  state: Exp;  lines: +7 -5<br />
module_param qset_size,quantum_size,device_size all set in the sculldev structure.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.66<br />
date: 2014/05/19 17:44:58;  author: root;  state: Exp;  lines: +2 -1<br />
using param for n variable<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.65<br />
date: 2014/05/19 17:35:37;  author: root;  state: Exp;  lines: +2 -2<br />
module_param n<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.64<br />
date: 2014/05/10 07:09:08;  author: root;  state: Exp;  lines: +4 -4<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.63<br />
date: 2014/05/10 06:52:55;  author: root;  state: Exp;  lines: +10 -0<br />
allocate parameters of skulldev and assign values to them<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.62<br />
date: 2014/05/09 09:31:15;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.61<br />
date: 2014/05/09 09:28:39;  author: root;  state: Exp;  lines: +2 -1<br />
included read<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.60<br />
date: 2014/05/08 07:36:24;  author: root;  state: Exp;  lines: +1 -1<br />
struct Sculldev *sculldev to struct ScullDev *sculldev<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.59<br />
/////////////////////////////////////////////////////////////////////////////////////</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-sucessfully-working-for-min-32-distinct-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FORK() call&#8211;kernal point of view</title>
		<link>https://www.emblogic.com/blog/05/fork-call-kernal-point-of-view/</link>
		<comments>https://www.emblogic.com/blog/05/fork-call-kernal-point-of-view/#comments</comments>
		<pubDate>Fri, 16 May 2014 14:35:23 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10110</guid>
		<description><![CDATA[when the fork system call is invoked the fork is mappped with the clone system call . the kernel stores the list of processes in circular doubly link list called task list each element in the task_list is a process &#8230; <a href="https://www.emblogic.com/blog/05/fork-call-kernal-point-of-view/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>when the fork system call is invoked the fork is mappped with the clone system call .<br />
the kernel stores the list of processes in circular doubly link list called task list<br />
each element in the task_list is a process descriptor of type struct task_struct which is defined in<br />
-&gt;task_struct contain all the information related to the process</p>
<p>-&gt;the process descriptor contain the data that described the execution program-openfile,the process address space ,pending signals ,p<br />
-&gt;the task_struct contain the parent pid task_struct.</p>
<p>struct task_struct<br />
{<br />
process descriptor<br />
unsigned long state;<br />
int prio;<br />
unsigned long policy;<br />
     struct task_struct *parent;  //struct task_struct of the parent<br />
struct list_head tasks;<br />
pid_t pid;<br />
}  process_descriptor;<br />
the linklist produced by this task_struct consicute the Kernel process table whos first process after booting process is the init pro<br />
kthreadadd function to make more system related processes needed for the operation of the system OS.</p>
<p>   struct task_struct was  stored at the end of the kernel stack of each process </p>
<p>Linux implements fork() via the clone() system call.This call takes a series of flags that<br />
specify which resources, if any, the parent and child process should share.The<br />
fork(), vfork(), and __clone() library calls all invoke the clone() system call with the<br />
requisite flags.The clone() system call, in turn, calls do_fork().</p>
<p>The bulk of the work in forking is handled by do_fork(), which is defined in<br />
kernel/fork.c.This function calls copy_process() and then starts the process running.<br />
The interesting work is done by copy_process():</p>
<p>1. It calls dup_task_struct(), which creates a new kernel stack, thread_info struc-<br />
ture, and task_struct for the new process.The new values are identical to those of<br />
the current task.At this point, the child and parent process descriptors are identical.</p>
<p>2. It then checks that the new child will not exceed the resource limits on the num-<br />
ber of processes for the current user.</p>
<p>3. The child needs to differentiate itself from its parent.Various members of the<br />
process descriptor are cleared or set to initial values. Members of the process<br />
descriptor not inherited are primarily statistically information.The bulk of the val-<br />
ues in task_struct remain unchanged.</p>
<p>4. The child’s state is set to TASK_UNINTERRUPTIBLE to ensure that it does not yet run.</p>
<p>5.copy_process() calls copy_flags() to update the flags member of the<br />
task_struct.</p>
<p>6. It calls alloc_pid() to assign an available PID to the new task.</p>
<p>7. Depending on the flags passed to clone(), copy_process() either duplicates or<br />
shares open files, filesystem information, signal handlers, process address space, and<br />
namespace.These resources are typically shared between threads in a given process;<br />
otherwise they are unique and thus copied here.</p>
<p>8. Finally, copy_process() cleans up and returns to the caller a pointer to the new<br />
child.<br />
Back in do_fork(), if copy_process() returns successfully, the new child is woken up<br />
and run. Deliberately, the kernel runs the child process first. In the common case of the<br />
child simply calling exec() immediately, this eliminates any copy-on-write overhead that<br />
would occur if the parent ran first and began writing to the address space.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/fork-call-kernal-point-of-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CHARACTER Driver :entered data in multiple scullqsets ,qsets and quantums</title>
		<link>https://www.emblogic.com/blog/05/character-driver-entered-data-in-multiple-scullqsets-qsets-and-quantums/</link>
		<comments>https://www.emblogic.com/blog/05/character-driver-entered-data-in-multiple-scullqsets-qsets-and-quantums/#comments</comments>
		<pubDate>Fri, 16 May 2014 13:00:04 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=10108</guid>
		<description><![CDATA[RCS file: write.c,v Working file: write.c head: 1.81 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 81; selected revisions: 81 description: this is the file for user write like operation &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.81 date: 2014/05/16 12:53:09; &#8230; <a href="https://www.emblogic.com/blog/05/character-driver-entered-data-in-multiple-scullqsets-qsets-and-quantums/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: write.c,v<br />
Working file: write.c<br />
head: 1.81<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 81;	selected revisions: 81<br />
description:<br />
this is the file for user write like operation<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.81<br />
date: 2014/05/16 12:53:09;  author: root;  state: Exp;  lines: +1 -1<br />
successful working for multiple quantum,multiple QSETS and scullqsets<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.80<br />
date: 2014/05/16 08:37:31;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.79<br />
date: 2014/05/16 08:35:54;  author: root;  state: Exp;  lines: +2 -2<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>revision 1.74<br />
date: 2014/05/16 08:19:49;  author: root;  state: Exp;  lines: +2 -2<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.73<br />
date: 2014/05/16 08:11:42;  author: root;  state: Exp;  lines: +4 -0<br />
error resolved as no. of quantum are multiple of 8 so it will not come out of the loop<br />
untill 8 quantum complete evn if the noctw next<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>revision 1.60<br />
date: 2014/05/16 05:45:12;  author: root;  state: Exp;  lines: +14 -15<br />
2 scullqset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.59<br />
date: 2014/05/15 18:17:54;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.58<br />
date: 2014/05/15 18:16:35;  author: root;  state: Exp;  lines: +13 -8<br />
multiple scullqset and 2 scullqset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.57<br />
date: 2014/05/15 17:43:02;  author: root;  state: Exp;  lines: +1 -1<br />
print ret value<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.56<br />
date: 2014/05/15 10:33:38;  author: root;  state: Exp;  lines: +1 -1<br />
return nocsw from the write function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.55<br />
date: 2014/05/15 10:30:42;  author: root;  state: Exp;  lines: +3 -0<br />
printk the nocsw and noctw<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>revision 1.48<br />
date: 2014/05/15 09:35:00;  author: root;  state: Exp;  lines: +29 -20<br />
enterring no. of quantum in respective qsets<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.47<br />
date: 2014/05/13 18:08:24;  author: root;  state: Exp;  lines: +8 -8<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.46<br />
date: 2014/05/13 17:33:27;  author: root;  state: Exp;  lines: +1 -1<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.45<br />
date: 2014/05/13 17:31:42;  author: root;  state: Exp;  lines: +6 -4<br />
calculation on copy on user<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.44<br />
date: 2014/05/13 16:54:48;  author: root;  state: Exp;  lines: +13 -13<br />
corrected copyfromuser<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.43<br />
date: 2014/05/13 15:38:39;  author: root;  state: Exp;  lines: +4 -3<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.42<br />
date: 2014/05/13 14:43:34;  author: root;  state: Exp;  lines: +2 -2<br />
testing<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.41<br />
date: 2014/05/13 14:38:24;  author: root;  state: Exp;  lines: +3 -1<br />
included memset in both the kmalloc used in function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.29<br />
date: 2014/05/13 09:06:22;  author: root;  state: Exp;  lines: +3 -3<br />
lsize typecast to size<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.28<br />
date: 2014/05/13 09:04:28;  author: root;  state: Exp;  lines: +2 -2<br />
type cast the size from the write function<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.27<br />
date: 2014/05/13 08:46:18;  author: root;  state: Exp;  lines: +5 -1<br />
use of copy_from</p>
<p>user&#8230;.copy_from_user(to,from,sizeofbuffer) :<br />
to=lsculldev-&gt;data<br />
from =buffer<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.26<br />
date: 2014/05/12 10:34:04;  author: root;  state: Exp;  lines: +1 -1<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.25<br />
date: 2014/05/12 10:33:06;  author: root;  state: Exp;  lines: +3 -2<br />
included void *p<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.24<br />
date: 2014/05/12 10:25:26;  author: root;  state: Exp;  lines: +4 -4<br />
added allocate_quantum<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.23<br />
date: 2014/05/12 10:04:53;  author: root;  state: Exp;  lines: +2 -2<br />
*** empty log message ***<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.22<br />
date: 2014/05/12 09:56:55;  author: root;  state: Exp;  lines: +7 -7<br />
write allocate_scullqset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.21</p>
<p>revision 1.18<br />
date: 2014/05/12 08:48:04;  author: root;  state: Exp;  lines: +2 -2<br />
remove OUT :<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17<br />
date: 2014/05/12 08:46:33;  author: root;  state: Exp;  lines: +6 -6<br />
chages in create_skull change lsculldev to lscullqset<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/05/12 08:41:50;  author: root;  state: Exp;  lines: +1 -0<br />
prototype of crete_skull not there<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/05/12 08:36:44;  author: root;  state: Exp;  lines: +160 -1<br />
in this file i have wrote the scull<br />
first calculate noqset and makwe the required no. of qset and then the quantum in those queset<br />
use 30 bytes of data as a reference to send it to the DD<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/05/character-driver-entered-data-in-multiple-scullqsets-qsets-and-quantums/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walkie-talkie chatting operation using message queue in two different process</title>
		<link>https://www.emblogic.com/blog/03/walkie-talkie-chatting-operation-using-message-queue-in-two-different-process/</link>
		<comments>https://www.emblogic.com/blog/03/walkie-talkie-chatting-operation-using-message-queue-in-two-different-process/#comments</comments>
		<pubDate>Fri, 28 Mar 2014 03:50:20 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9582</guid>
		<description><![CDATA[RCS file: mesg1.c,v Working file: mesg1.c head: 1.1 branch: locks: strict root: 1.1 access list: symbolic names: keyword substitution: kv total revisions: 1;    selected revisions: 1 description: IN this program work as the walkie talkie half duplex mode&#8230;. There are &#8230; <a href="https://www.emblogic.com/blog/03/walkie-talkie-chatting-operation-using-message-queue-in-two-different-process/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: mesg1.c,v<br />
Working file: mesg1.c<br />
head: 1.1<br />
branch:<br />
locks: strict<br />
root: 1.1<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 1;    selected revisions: 1<br />
description:<br />
IN this program work as the walkie talkie half duplex mode&#8230;.<br />
There are two processes that are communicating through each other through messagequeue<br />
IN walkie talkie there is a HOLD key here there is a (key-swap) ,if we write swap then the processes are swapped<br />
and now the 2nd process becomes the transmitter process and the first process becomes the receiver process<br />
and viceversa you can do it by sending the word(swap) to other process.</p>
<p>SUCCESSFULLY EXECUTED!!!!!!!!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1    locked by: root;<br />
date: 2014/03/27 17:57:18;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/walkie-talkie-chatting-operation-using-message-queue-in-two-different-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implemented message queue for 1 child-parent process</title>
		<link>https://www.emblogic.com/blog/03/implemented-message-queue-for-1-child-parent-process/</link>
		<comments>https://www.emblogic.com/blog/03/implemented-message-queue-for-1-child-parent-process/#comments</comments>
		<pubDate>Wed, 26 Mar 2014 08:19:53 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9498</guid>
		<description><![CDATA[RCS file: ./practice.c,v Working file: ./practice.c head: 1.2 branch: locks: strict root: 1.2 access list: symbolic names: keyword substitution: kv total revisions: 2;    selected revisions: 2 description: initial version of file in this we have used fork child send 2 &#8230; <a href="https://www.emblogic.com/blog/03/implemented-message-queue-for-1-child-parent-process/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./practice.c,v<br />
Working file: ./practice.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
root: 1.2<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;    selected revisions: 2<br />
description:<br />
initial version of file<br />
in this we have used fork child send 2 message and then receive the data at the parent side<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2    locked by: root;<br />
date: 2014/03/26 08:12:54;  author: root;  state: Exp;  lines: +14 -3<br />
successfully running<br />
send 2 messages to the message queues from the child process and receive the same from the parent process and<br />
display the result of the message ,<br />
i have created 2 instance of the message structure and send hello and world through these instances<br />
and then receive the block of the data from the parent process and display the message and then remove the queue<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/03/26 07:42:52;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/implemented-message-queue-for-1-child-parent-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implemented semaphore for 3 clients and sending result to respective client from server</title>
		<link>https://www.emblogic.com/blog/03/implemented-semaphore-for-3-clients-and-sending-result-to-respective-client-from-server/</link>
		<comments>https://www.emblogic.com/blog/03/implemented-semaphore-for-3-clients-and-sending-result-to-respective-client-from-server/#comments</comments>
		<pubDate>Wed, 26 Mar 2014 07:25:14 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9493</guid>
		<description><![CDATA[RCS file: ./semaphore.c,v Working file: ./semaphore.c head: 1.6 branch: locks: strict root: 1.6 access list: symbolic names: keyword substitution: kv total revisions: 6;    selected revisions: 6 description: this is the intial file going to start the SEMAPHORE &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision 1.6    &#8230; <a href="https://www.emblogic.com/blog/03/implemented-semaphore-for-3-clients-and-sending-result-to-respective-client-from-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./semaphore.c,v<br />
Working file: ./semaphore.c<br />
head: 1.6<br />
branch:<br />
locks: strict<br />
root: 1.6<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 6;    selected revisions: 6<br />
description:<br />
this is the intial file going to start the SEMAPHORE<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6    locked by: root;<br />
date: 2014/03/25 07:26:08;  author: root;  state: Exp;  lines: +66 -16<br />
successfully implemented 3 clients :1st client gives 23+ as input to server and after processing from the server<br />
server will send the result to the same ist client through result fifo and value is reflected in the client1<br />
after the critical area of client1<br />
viceversa we got the result in 3 different clients<br />
problem is that the irregular output various time as we run the same code<br />
sometime it will take client1 2 times for the addition operation and then the subtract and willnt display for multiple<br />
sometime unpredictable result we get<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/03/24 10:40:23;  author: root;  state: Exp;  lines: +2 -2<br />
successfully implemented for 3 different clients we have 3 clients client1(rahul),client2(hello),client3(GGOOD)<br />
first of all activate server semaphore.c<br />
tehn run the script containing ./client1,./client2,./client3<br />
for every client server will send the string rebount to noticify that the processing is done<br />
first the client1 send the string and server send back rebound for all the clients but the client get into block on read<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/03/24 10:11:26;  author: root;  state: Exp;  lines: +5 -5<br />
sending the result ie rebound to client1 and client 1 is reciving the rebound and rebound to client2<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/03/24 09:13:31;  author: root;  state: Exp;  lines: +28 -13<br />
in this file we have send 2 different values from the 2 different clients to the server and the client that is invoked in the critical region server got the value and display<br />
the server is kept in the while loop to continuous accept the clients value<br />
heading towards the program in while result of the client computing is send back to the same client<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/03/24 06:24:19;  author: root;  state: Exp;  lines: +37 -10<br />
successfully executed for 1 client file name client2<br />
in this we are writting hello from the server and getting hello from the server through the fifo<br />
heading towards the second client ie client1.c<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/03/20 10:09:35;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/implemented-semaphore-for-3-clients-and-sending-result-to-respective-client-from-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MULTIPLE DATA COMPRESSION 3-bit (2 key encryption)</title>
		<link>https://www.emblogic.com/blog/03/multiple-data-compression-3-bit-2-key-encryption/</link>
		<comments>https://www.emblogic.com/blog/03/multiple-data-compression-3-bit-2-key-encryption/#comments</comments>
		<pubDate>Wed, 19 Mar 2014 19:02:27 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9162</guid>
		<description><![CDATA[Working file: ./header.h head: 1.3 branch: locks: strict root: 1.3 access list: symbolic names: keyword substitution: kv total revisions: 3;     selected revisions: 3 description: in this file i had compressed the data of 3 bit codelength ie max 8 distinct &#8230; <a href="https://www.emblogic.com/blog/03/multiple-data-compression-3-bit-2-key-encryption/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Working file: ./header.h<br />
head: 1.3<br />
branch:<br />
locks: strict<br />
root: 1.3<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 3;     selected revisions: 3<br />
description:<br />
in this file i had compressed the data of 3 bit codelength ie max 8 distinct character using approch<br />
in this i had compressed the data in the chunks of 3 bit in a character ,in 1 character i had placed<br />
3 bits of ist character,3 bits of 2nd character and 2 bits of the 3 chacter and the last bit of the<br />
3rd character is stored in a charcter variable key,so the last bit of every 3rd variable is stored in the this vary char cter variable key<br />
the encryption had become strong as have used masterarray,ndc and this key to decompressed the compressed variable<br />
this concept is due the problem as under<br />
As i have 8 distinct characters so i have to work on every 3bits of each index ,so that the code length increases<br />
but here the code remain simple<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3    locked by: root;<br />
date: 2014/03/19 18:55:27;  author: root;  state: Exp;  lines: +7 -5<br />
problem solved &#8230;code working perfectly for 3 bit<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/03/19 18:36:25;  author: root;  state: Exp;  lines: +9 -3<br />
uncompressed string is hello howarh and the string decompressed is hellowho arh<br />
removing errors</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/multiple-data-compression-3-bit-2-key-encryption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implemented Queues-push,pop,display,delete</title>
		<link>https://www.emblogic.com/blog/03/implemented-queues-pushpopdisplaydelete/</link>
		<comments>https://www.emblogic.com/blog/03/implemented-queues-pushpopdisplaydelete/#comments</comments>
		<pubDate>Mon, 10 Mar 2014 18:57:09 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Data Structures with C]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8976</guid>
		<description><![CDATA[RCS file: queues.c,v Working file: queues.c head: 1.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 2;     selected revisions: 2 description: this is the initial version ,here i have completed the push function operation by passing &#8230; <a href="https://www.emblogic.com/blog/03/implemented-queues-pushpopdisplaydelete/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: queues.c,v<br />
Working file: queues.c<br />
head: 1.2<br />
branch:<br />
locks: strict<br />
access list:<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 2;     selected revisions: 2<br />
description:<br />
this is the initial version ,here i have completed the push function operation by passing the</p>
<p>double void**queues from the main<br />
rear value is incremented and the frount value stays at -1 location<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 2.2<br />
date: 2014/03/10 18:50:40;  author: root;  state: Exp;  lines: +34 -13<br />
enterred display function,pop function and then displaying the result as a output<br />
working fine!!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/03/10 09:52:57;  author: root;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/implemented-queues-pushpopdisplaydelete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>multiple data compression-decompression 4-bit</title>
		<link>https://www.emblogic.com/blog/02/multiple-data-compression-decompression-4-bit/</link>
		<comments>https://www.emblogic.com/blog/02/multiple-data-compression-decompression-4-bit/#comments</comments>
		<pubDate>Wed, 26 Feb 2014 18:02:45 +0000</pubDate>
		<dc:creator><![CDATA[Rahul Sharma]]></dc:creator>
				<category><![CDATA[Project 2: Multiple Data Compression and Encryption]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8641</guid>
		<description><![CDATA[RCS file: ./mdcaeuit.c,v Working file: ./mdcaeuit.c head: 1.17 branch: locks: strict root: 1.17 access list: logins symbolic names: keyword substitution: kv total revisions: 17;    selected revisions: 17 description: this is the initiated source file have to make ammendment &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- revision &#8230; <a href="https://www.emblogic.com/blog/02/multiple-data-compression-decompression-4-bit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>RCS file: ./mdcaeuit.c,v<br />
Working file: ./mdcaeuit.c<br />
head: 1.17<br />
branch:<br />
locks: strict<br />
root: 1.17<br />
access list:<br />
logins<br />
symbolic names:<br />
keyword substitution: kv<br />
total revisions: 17;    selected revisions: 17<br />
description:<br />
this is the initiated source file have to make ammendment<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.17    locked by: root;<br />
date: 2014/02/26 17:58:27;  author: root;  state: Exp;  lines: +12 -12<br />
code working fine with codelength of 4-bit<br />
completed 4-bit compression and decompression<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.16<br />
date: 2014/02/22 18:36:03;  author: root;  state: Exp;  lines: +33 -13<br />
logic correction<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.15<br />
date: 2014/02/13 07:33:42;  author: root;  state: Exp;  lines: +2 -3<br />
decompression started<br />
decompression function introduced in the program<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.14<br />
date: 2014/02/11 18:31:52;  author: root;  state: Exp;  lines: +2 -3<br />
compress_data function made<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.13<br />
date: 2014/02/11 14:29:21;  author: root;  state: Exp;  lines: +4 -2<br />
trobleshooting missed my file ie funct.h<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.12<br />
date: 2014/02/11 14:05:49;  author: root;  state: Exp;  lines: +2 -2<br />
trobleshooting<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.11<br />
date: 2014/02/11 10:02:19;  author: root;  state: Exp;  lines: +11 -6<br />
insert compress_4bit function to compress the dat<br />
we need fd,codel and ndc for this fuction at the time of calling in the main function<br />
to make this function to implement we need to find the index first<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.10<br />
date: 2014/02/11 09:04:48;  author: root;  state: Exp;  lines: +4 -3<br />
implement code_length function in function.h and implement the same in main<br />
variable is codel<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.9<br />
date: 2014/02/10 20:27:37;  author: root;  state: Exp;  lines: +5 -4<br />
insert the distinct character string using functions<br />
functions :distinct_characters(int,int),marray_create(int)<br />
display() and opening(char*,int)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.8<br />
date: 2014/02/07 17:47:19;  author: root;  state: Exp;  lines: +7 -75<br />
coming to enclose data in function<br />
make marray_create(),opening() and display()<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.7<br />
date: 2014/02/07 06:49:21;  author: root;  state: Exp;  lines: +11 -14<br />
logical correction<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.6<br />
date: 2014/02/05 16:32:43;  author: root;  state: Exp;  lines: +15 -3<br />
add index and character array to get the array back<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.5<br />
date: 2014/02/05 11:00:03;  author: root;  state: Exp;  lines: +2 -2<br />
extra spaces in masterarray removed..<br />
error:remove count and insert i<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.4<br />
date: 2014/02/05 10:46:30;  author: root;  state: Exp;  lines: +15 -9<br />
compress data in test.file<br />
adding for loop,for checking whether the string contain repeated characters<br />
display compress string in array.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.3<br />
date: 2014/02/05 09:38:02;  author: root;  state: Exp;  lines: +6 -5<br />
use dynamic memmory allotation of masterarray<br />
getting fine result<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.2<br />
date: 2014/02/05 08:35:29;  author: root;  state: Exp;  lines: +26 -10<br />
enterred commandline arguments<br />
remove space at the end of the string<br />
using if else in do while loop<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
revision 1.1<br />
date: 2014/01/20 08:02:46;  author: rahul;  state: Exp;<br />
Initial revision<br />
=============================================================================</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/multiple-data-compression-decompression-4-bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
