EmbLogic's Blog

Device driver till device open and close

RCS file: RCS/header.h,v
Working file: header.h
head: 1.8
branch:
locks: strict
root: 1.8
access list:
symbolic names:
keyword substitution: kv
total revisions: 8;    selected revisions: 8
description:
This is main header file
All the required header file are include here
—————————-
revision 1.8    locked by: root;
date: 2014/12/01 14:29:46;  author: root;  state: Exp;  lines: +6 -1
include kernel.h
used ifndef macro
—————————-
revision 1.7
date: 2014/11/29 07:24:42;  author: root;  state: Exp;  lines: +10 -1
define QSET and QUANTAM macro
—————————-
revision 1.6
date: 2014/11/26 16:50:17;  author: root;  state: Exp;  lines: +1 -0
include slab.h
—————————-
revision 1.5
date: 2014/11/26 09:48:43;  author: root;  state: Exp;  lines: +1 -0
include moduleparam.h
—————————-
revision 1.4
date: 2014/11/26 06:18:39;  author: root;  state: Exp;  lines: +1 -0
included the linux/kdev_t to get the defination of MAJOR and MINOR macro
—————————-
revision 1.3
date: 2014/11/25 17:31:08;  author: root;  state: Exp;  lines: +7 -0
define MINOR_NO and NOD macro
—————————-
revision 1.2
date: 2014/11/24 09:56:10;  author: root;  state: Exp;  lines: +1 -0
include linux/fs.h
—————————-
revision 1.1
date: 2014/11/23 10:35:10;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/declaration.h,v
Working file: declaration.h
head: 1.18
branch:
locks: strict
root: 1.18
access list:
symbolic names:
keyword substitution: kv
total revisions: 18;    selected revisions: 18
description:
this is Declaration file where prototype of function will be given
—————————-
revision 1.18    locked by: root;
date: 2014/12/01 16:43:33;  author: root;  state: Exp;  lines: +1 -1
changed argumnets
—————————-
revision 1.17
date: 2014/12/01 16:05:01;  author: root;  state: Exp;  lines: +3 -2
added routine for trim
—————————-
revision 1.16
date: 2014/12/01 14:30:10;  author: root;  state: Exp;  lines: +0 -1
remove the redclaration of fops
declare open and release routines
—————————-
revision 1.15
date: 2014/12/01 13:15:50;  author: root;  state: Exp;  lines: +2 -0
added dev_open call
added dev_release call
—————————-
revision 1.14
date: 2014/11/29 10:42:51;  author: root;  state: Exp;  lines: +1 -1
declare new_dev of type dev_t
—————————-
revision 1.13
date: 2014/11/29 07:25:05;  author: root;  state: Exp;  lines: +6 -1
define quantam and qset of type extern int
—————————-
revision 1.12
date: 2014/11/27 06:33:16;  author: root;  state: Exp;  lines: +1 -1
change the name of dev_new to dev
—————————-
revision 1.11
date: 2014/11/26 16:51:29;  author: root;  state: Exp;  lines: +11 -0
declare structure name struct ScullDev and ScullQset
declare structure variable sculldev of type struct ScullDev
—————————-
revision 1.10
date: 2014/11/26 09:49:15;  author: root;  state: Exp;  lines: +2 -0
declara a int type variable to get the module parameter
—————————-
revision 1.9
date: 2014/11/26 06:19:50;  author: root;  state: Exp;  lines: +3 -3
chnage the name of dev_t type variable from device to dev_new
declare a variable type extern unsigned int to get the major_no from the macro
—————————-
revision 1.8
date: 2014/11/25 17:43:55;  author: root;  state: Exp;  lines: +2 -2
comment the declaration of initialization and cleanup function as no need to declare in this file
—————————-
revision 1.7
date: 2014/11/25 17:32:04;  author: root;  state: Exp;  lines: +4 -4
declare: dev_t device
unsigned int nod
remove the declaration of struct file_operation f_ops
—————————-
revision 1.6
date: 2014/11/25 05:10:49;  author: root;  state: Exp;  lines: +2 -2
omit extern word from the function declaration
—————————-
revision 1.5
date: 2014/11/24 10:20:47;  author: root;  state: Exp;  lines: +2 -2
declare the dev_name and f_ops as const as well
—————————-
revision 1.4
date: 2014/11/24 09:57:00;  author: root;  state: Exp;  lines: +6 -1
#define the MAJOR_NO 0
declare some extern variable like major_no,dev_name,fops
—————————-
revision 1.3
date: 2014/11/24 08:22:02;  author: root;  state: Exp;  lines: +2 -2
make the initialization_func extern
—————————-
revision 1.2
date: 2014/11/24 07:30:42;  author: root;  state: Exp;  lines: +2 -2
omit the word extern from the function declaration
—————————-
revision 1.1
date: 2014/11/23 10:35:57;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/init.c,v
Working file: init.c
head: 1.27
branch:
locks: strict
root: 1.27
access list:
symbolic names:
keyword substitution: kv
total revisions: 27;    selected revisions: 27
description:
this is intialiazation file
module_init is used here
—————————-
revision 1.27    locked by: root;
date: 2014/12/01 14:30:51;  author: root;  state: Exp;  lines: +1 -1
header include file_oper.h
removed fops
—————————-
revision 1.26
date: 2014/11/30 08:57:52;  author: root;  state: Exp;  lines: +3 -3
add ; after nod
—————————-
revision 1.25
date: 2014/11/30 06:47:32;  author: root;  state: Exp;  lines: +1 -1
testing
—————————-
revision 1.24
date: 2014/11/29 10:48:00;  author: root;  state: Exp;  lines: +3 -3
use loop variable to get all minor no
—————————-
revision 1.23
date: 2014/11/29 10:43:37;  author: root;  state: Exp;  lines: +20 -19
add all the devices by cdev_add func using a for loop
—————————-
revision 1.22
date: 2014/11/29 07:26:03;  author: root;  state: Exp;  lines: +18 -6
implement cdev_init,
cdev_add
to add our device discription into device entry table
—————————-
revision 1.21
date: 2014/11/27 06:33:46;  author: root;  state: Exp;  lines: +14 -29
make module parameter = to nod
—————————-
revision 1.20
date: 2014/11/27 06:09:53;  author: root;  state: Exp;  lines: +1 -1
testing
—————————-
revision 1.19
date: 2014/11/26 16:53:18;  author: root;  state: Exp;  lines: +11 -4
implement function kmalloc to provide memory to sculldev
memset the sculldev with one’s
—————————-
revision 1.18
date: 2014/11/26 09:49:57;  author: root;  state: Exp;  lines: +5 -4
define mparam and print it to verify
—————————-
revision 1.17
date: 2014/11/26 08:42:18;  author: root;  state: Exp;  lines: +2 -2
make minor_no=minor_no+1
after the initial device register
—————————-
revision 1.16
date: 2014/11/26 07:35:18;  author: root;  state: Exp;  lines: +5 -0
testing on re-registration of device
—————————-
revision 1.15
date: 2014/11/26 07:20:53;  author: root;  state: Exp;  lines: +1 -0
make nod=nod+1 when re-registration will take place
—————————-
revision 1.14
date: 2014/11/26 07:15:22;  author: root;  state: Exp;  lines: +4 -7
checking for reregistration attemp of driver
implement register_chrdev_region function
In previous version this function was commented
—————————-
revision 1.13
date: 2014/11/26 07:06:18;  author: root;  state: Exp;  lines: +3 -3
testing
—————————-
revision 1.12
date: 2014/11/26 07:02:51;  author: root;  state: Exp;  lines: +3 -3
assigned the value to nod from the NOD macro
—————————-
revision 1.11
date: 2014/11/26 06:44:19;  author: root;  state: Exp;  lines: +22 -10
implement the register_chrdev_region function to register the more no of device on the same major no
—————————-
revision 1.10
date: 2014/11/26 06:22:29;  author: root;  state: Exp;  lines: +17 -7
get the major and minor no by using MAJOR(dev_new) and MINOR(dev_new) macro
print the value of major and minor no
—————————-
revision 1.9
date: 2014/11/25 17:45:02;  author: root;  state: Exp;  lines: +10 -2
check the return value of alloc_chrdev_region function and print message on failure
—————————-
revision 1.8
date: 2014/11/25 17:34:44;  author: root;  state: Exp;  lines: +8 -5
define register_chrdev_region function
sorry,, define alloc_chrdev_region function to register the device
—————————-
revision 1.7
date: 2014/11/24 10:22:01;  author: root;  state: Exp;  lines: +2 -2
add the const keyword with dev_name and struct file_operations f_ops
—————————-
revision 1.6
date: 2014/11/24 09:58:45;  author: root;  state: Exp;  lines: +8 -1
define major_no,dev_name,fops
implement the register_chrdev function to register the device
—————————-
revision 1.5
date: 2014/11/24 08:22:47;  author: root;  state: Exp;  lines: +8 -14
omit exit part
now it contain only initialization_func
—————————-
revision 1.4
date: 2014/11/24 07:48:21;  author: root;  state: Exp;  lines: +8 -3
direct include header.h
not include declaration.h
declare function
problem : the message inside the initialization_func is printed at when rmmod is calling or we can say when cleanup function is calling
—————————-
revision 1.3
date: 2014/11/24 07:31:24;  author: root;  state: Exp;  lines: +2 -2
make initialization and cleanup function static
—————————-
revision 1.2
date: 2014/11/24 07:16:36;  author: root;  state: Exp;  lines: +5 -0
define the exit function in the init file as not getting the desire output
—————————-
revision 1.1
date: 2014/11/23 10:36:49;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/application.c,v
Working file: application.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;    selected revisions: 2
description:
created file_ops
—————————-
revision 1.2    locked by: root;
date: 2014/12/01 12:07:07;  author: root;  state: Exp;  lines: +1 -1
print the fd
—————————-
revision 1.1
date: 2014/12/01 11:48:15;  author: root;  state: Exp;
Initial revision
=============================================================================
rlog: RCS/file_oper.h,v: No such file or directory

RCS file: RCS/dev_open.c,v
Working file: dev_open.c
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3;    selected revisions: 3
description:
routines for device open call
—————————-
revision 1.3    locked by: root;
date: 2014/12/01 16:43:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2014/12/01 16:06:00;  author: root;  state: Exp;  lines: +5 -1
*** empty log message ***
—————————-
revision 1.1
date: 2014/12/01 14:31:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/dev_release.c,v
Working file: dev_release.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;    selected revisions: 1
description:
routines for relase a device
—————————-
revision 1.1    locked by: root;
date: 2014/12/01 14:31:33;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/dev_trim.c,v
Working file: dev_trim.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;    selected revisions: 4
description:
called dev_trim routines
—————————-
revision 1.4    locked by: root;
date: 2014/12/01 16:44:49;  author: root;  state: Exp;  lines: +0 -3
*** empty log message ***
—————————-
revision 1.3
date: 2014/12/01 16:43:49;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
—————————-
revision 1.2
date: 2014/12/01 16:08:08;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2014/12/01 16:05:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: RCS/exit.c,v
Working file: exit.c
head: 1.10
branch:
locks: strict
root: 1.10
access list:
symbolic names:
keyword substitution: kv
total revisions: 10;    selected revisions: 10
description:
this is cleanup file
—————————-
revision 1.10    locked by: root;
date: 2014/11/29 10:45:27;  author: root;  state: Exp;  lines: +3 -1
delete all the device using cdev_del
—————————-
revision 1.9
date: 2014/11/29 07:27:39;  author: root;  state: Exp;  lines: +1 -0
implement cdev_del to delete the entry before unregistering
—————————-
revision 1.8
date: 2014/11/27 06:34:15;  author: root;  state: Exp;  lines: +1 -1
change the name of dev_new to dev
—————————-
revision 1.7
date: 2014/11/26 16:55:24;  author: root;  state: Exp;  lines: +1 -0
free the allocated memory to sculldev with kfree function
—————————-
revision 1.6
date: 2014/11/26 06:24:04;  author: root;  state: Exp;  lines: +1 -1
change the name of dev_t type variable from device to dev_new
—————————-
revision 1.5
date: 2014/11/25 17:36:42;  author: root;  state: Exp;  lines: +1 -1
define the unregister_chrdev_region function to unregister the device
—————————-
revision 1.4
date: 2014/11/24 10:22:59;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
—————————-
revision 1.3
date: 2014/11/24 09:59:48;  author: root;  state: Exp;  lines: +1 -0
implement the unregister_chrdev function to unregister the device
—————————-
revision 1.2
date: 2014/11/24 08:24:38;  author: root;  state: Exp;  lines: +1 -1
put \n at the end of printk statement
—————————-
revision 1.1
date: 2014/11/23 10:37:26;  author: root;  state: Exp;
Initial revision
=============================================================================

Posted in Character Driver | Leave a comment

Registering and unregistering the character driver into and from the kernel.

RCS file: ./header.h,v
Working file: ./header.h
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
this is the header file for character driver
in this file i include kernel header files
included linux/kernel.h
included linux/init.h
included linux/fs.h
—————————-
revision 1.2 locked by: root;
date: 2014/11/25 17:33:53; author: root; state: Exp; lines: +2 -0
include file linux/kdev_t.h
—————————-
revision 1.1
date: 2014/11/25 06:17:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: ./declaration.h,v
Working file: ./declaration.h
head: 1.3
branch:
locks: strict
root: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is the file in which all the declaration for kernel module is made
included file linux/module.h
declare license name
declare author namee
give description for the module
—————————-
revision 1.3 locked by: root;
date: 2014/11/25 17:33:53; author: root; state: Exp; lines: +1 -4
declared variable minor_no of type int
—————————-
revision 1.2
date: 2014/11/25 17:20:57; author: root; state: Exp; lines: +1 -0
declared extern variable dev of type dev_t
—————————-
revision 1.1
date: 2014/11/25 06:17:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: ./init.c,v
Working file: ./init.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
this is the file which exicuted after inserting module to the kernel
resistering the module using register_chrdev()
get the major number for module
—————————-
revision 1.4 locked by: root;
date: 2014/11/25 17:33:53; author: root; state: Exp; lines: +4 -3
get major and minor number from the var dev of type dev_t using macros MAJOR() and MINOR()
—————————-
revision 1.3
date: 2014/11/25 17:20:57; author: root; state: Exp; lines: +7 -5
remove the use of register_chrdev function for registering device into the kernel
register driver into the kerrnel using alloc_chrdev_region()
declared variable dev of type dev_t
—————————-
revision 1.2
date: 2014/11/25 06:24:41; author: root; state: Exp; lines: +2 -2
change priority for printing messages in ring buffer for kernel
—————————-
revision 1.1
date: 2014/11/25 06:17:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: ./exit_fun.c,v
Working file: ./exit_fun.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 file executes after rmmod
unregister module using unregister_chrdev
define cleanup function
—————————-
revision 1.6 locked by: root;
date: 2014/11/25 17:33:53; author: root; state: Exp; lines: +1 -1
print major and minor number into the kernel buffer
—————————-
revision 1.5
date: 2014/11/25 17:27:25; author: root; state: Exp; lines: +1 -1
remove error
—————————-
revision 1.4
date: 2014/11/25 17:20:57; author: root; state: Exp; lines: +2 -2
remove the use of unregister_chrdev() for unregisterning driver from the kernel
unregister driver from the kernel using unregister_chrdev_region()
—————————-
revision 1.3
date: 2014/11/25 06:24:41; author: root; state: Exp; lines: +1 -1
change priority for printing messages in ring buffer for kernel
—————————-
revision 1.2
date: 2014/11/25 06:23:16; author: root; state: Exp; lines: +1 -0
give message to the kernel for unregistering the module
—————————-
revision 1.1
date: 2014/11/25 06:17:14; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Character Driver | Leave a comment

Sending data using Circular buffer through IEEE EIA/TIA – 232E specification and associated serial port device driver(Implementing RS 232 Protocol)

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implementing
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:17:53; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:18:56; author: root; state: Exp;
Initial revision
============================================================================
RCS file: dev_open.c,v
Working file: dev_open.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
open the device
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:20:22; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_release.c,v
Working file: dev_release.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Release the device.
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:22:30; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: initilization.c,v
Working file: initilization.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implemented check_region(), release_region() and request_region().
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:28:58; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implemented release_region().
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:30:56; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_write.c,v
Working file: dev_write.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Written 100k byte data serially implementing RS 232 protocol.
Data written through circular Buffer. Data Transfered by following proper handshaking Mechanism by Using LSR, and MCR and MSR registers.

It took 1.53 min to read the data
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:27:06; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_read.c,v
Working file: dev_read.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Read 100k byte data serially.

Data Recieved by following proper handshaking Mechanism by Using LSR, and MCR and MSR registers.

—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:33:55; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: file_op.h,v
Working file: file_op.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:35:37; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Device Drivers, Serial Port Driver | Leave a comment

Sending 100k data using Circular buffer through IEEE EIA/TIA – 232E specification and associated serial port device driver(Implementing RS 232 Protocol)

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implementing
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:17:53; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: declaration.h,v
Working file: declaration.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:18:56; author: root; state: Exp;
Initial revision
============================================================================
RCS file: dev_open.c,v
Working file: dev_open.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
open the device
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:20:22; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_release.c,v
Working file: dev_release.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Release the device.
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:22:30; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: initilization.c,v
Working file: initilization.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implemented check_region(), release_region() and request_region().
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:28:58; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: cleanup.c,v
Working file: cleanup.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Implemented release_region().
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:30:56; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_write.c,v
Working file: dev_write.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Written 100k byte data serially implementing RS 232 protocol.
Data written through circular buffer. Implementing handshaking using CTS and RTS pins connected of serial port. Set the MCR bit-1 on writer side and also check the MSR bit-4 is set or not.
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:27:06; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: dev_read.c,v
Working file: dev_read.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Read 100k byte data serially.Implementing handshaking using CTS and RTS pins connected of serial port. Set the MCR bit-1 on writer side and also check the MSR bit-4 is set or not.
It took 1.53 min to read the data.
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:33:55; author: root; state: Exp;
Initial revision
=============================================================================
RCS file: file_op.h,v
Working file: file_op.h
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
—————————-
revision 1.1 locked by: root;
date: 2014/11/25 06:35:37; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Device Drivers, Serial Port Driver | Leave a comment

client-server project using multi-threads

RCS file: ./server.c,v
Working file: ./server.c
head: 1.9
branch:
locks: strict
root: 1.9
access list:
symbolic names:
keyword substitution: kv
total revisions: 9; selected revisions: 9
description:
included all the header files that will be used in the code
—————————-
revision 1.9 locked by: root;
date: 2014/11/23 17:59:58; author: root; state: Exp; lines: +1 -1
created two more requesting clients
doing the same as above for the other two clients
—————————-
revision 1.8
date: 2014/11/23 17:59:00; author: root; state: Exp; lines: +1 -1
gave pthread exit in the thread
—————————-
revision 1.7
date: 2014/11/23 17:57:57; author: root; state: Exp; lines: +1 -1
processed the data
wrote back to the requesting client using fifo after creating it
—————————-
revision 1.6
date: 2014/11/23 17:56:12; author: root; state: Exp; lines: +1 -1
created a thread for processing the data
—————————-
revision 1.5
date: 2014/11/23 17:55:23; author: root; state: Exp; lines: +1 -1
successfully receieved the data in the server
—————————-
revision 1.4
date: 2014/11/23 17:53:20; author: root; state: Exp; lines: +1 -1
gave the command and address of buffer using msgctl()
sent data to server using msgsnd()
—————————-
revision 1.3
date: 2014/11/23 17:50:17; author: root; state: Exp; lines: +1 -1
defined the message type
printed the kernel key in requesting client
—————————-
revision 1.2
date: 2014/11/23 17:48:55; author: root; state: Exp; lines: +1 -1
created a msgbuf structure
got the kernel key using msgget()
—————————-
revision 1.1
date: 2014/11/23 17:47:22; author: root; state: Exp;
Initial revision

Posted in Uncategorized | Leave a comment

basic implementation of thread

RCS file: ./threads.c,v
Working file: ./threads.c
head: 1.7
branch:
locks: strict
root: 1.7
access list:
symbolic names:
keyword substitution: kv
total revisions: 7; selected revisions: 7
description:
included all the header files that will be used in the code
—————————-
revision 1.7 locked by: root;
date: 2014/11/23 17:42:53; author: root; state: Exp; lines: +1 -1
joined the thread in the main function
destroyed the semaphore
printed exit success
—————————-
revision 1.6
date: 2014/11/23 17:42:12; author: root; state: Exp; lines: +1 -1
called the pthread_exit function the the thread
—————————-
revision 1.5
date: 2014/11/23 17:40:57; author: root; state: Exp; lines: +1 -1
opened a text file in write only mode
wrote the input in the text file that was given as an input from tne user
—————————-
revision 1.4
date: 2014/11/23 17:39:25; author: root; state: Exp; lines: +1 -1
created a thread function after defining it
putting the semaphore in wait condition
—————————-
revision 1.3
date: 2014/11/23 17:37:37; author: root; state: Exp; lines: +1 -1
putting semaphore in wait condition
taking a string input from user(if “end”,then terminate)
increased the semaphore
—————————-
revision 1.2
date: 2014/11/23 17:35:59; author: root; state: Exp; lines: +1 -1
initialised the semaphore
created a thread
—————————-
revision 1.1
date: 2014/11/23 17:35:33; author: root; state: Exp;
Initial revision

Posted in Uncategorized | Leave a comment

IPC based server-client project using a multithreaded server(test with more than 140000 requests at a time)

RCS file: server.c,v
Working file: server.c
head: 1.48
branch:
locks: strict
root: 1.48
access list:
symbolic names:
keyword substitution: kv
total revisions: 48; selected revisions: 48
description:
server code scp project
—————————-
revision 1.48 locked by: root;
date: 2014/11/21 06:10:31; author: root; state: Exp; lines: +7 -7
implement multithread server for any number of request successfuly and test with 140000 requests..
—————————-
revision 1.47
date: 2014/11/21 06:04:31; author: root; state: Exp; lines: +7 -7
*** empty log message ***
—————————-
revision 1.46
date: 2014/11/21 05:34:31; author: root; state: Exp; lines: +7 -7
*** empty log message ***
—————————-
revision 1.45
date: 2014/11/21 04:45:07; author: root; state: Exp; lines: +7 -7
*** empty log message ***
—————————-
revision 1.44
date: 2014/11/21 04:32:55; author: root; state: Exp; lines: +7 -7
*** empty log message ***
—————————-
revision 1.43
date: 2014/11/21 04:12:48; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.42
date: 2014/11/21 04:10:04; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.41
date: 2014/11/21 04:04:15; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.40
date: 2014/11/21 03:55:52; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.39
date: 2014/11/21 03:53:17; author: root; state: Exp; lines: +5 -2
*** empty log message ***
—————————-
revision 1.38
date: 2014/11/21 03:48:59; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.37
date: 2014/11/21 03:48:13; author: root; state: Exp; lines: +0 -2
*** empty log message ***
—————————-
revision 1.36
date: 2014/11/21 03:46:47; author: root; state: Exp; lines: +15 -0
*** empty log message ***
—————————-
revision 1.35
date: 2014/11/21 03:39:26; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.34
date: 2014/11/21 03:35:44; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.33
date: 2014/11/21 03:31:06; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.32
date: 2014/11/21 03:30:20; author: root; state: Exp; lines: +4 -2
*** empty log message ***
—————————-
revision 1.31
date: 2014/11/21 00:57:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.30
date: 2014/11/21 00:56:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.29
date: 2014/11/21 00:56:13; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.28
date: 2014/11/21 00:51:53; author: root; state: Exp; lines: +4 -1
implement a logic that allow a perticular thread reusable if it is terminated.
—————————-
revision 1.27
date: 2014/11/21 00:28:31; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.26
date: 2014/11/20 20:56:50; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.25
date: 2014/11/20 20:42:26; author: root; state: Exp; lines: +4 -4
rearrange server for 500 request
—————————-
revision 1.24
date: 2014/11/20 19:29:51; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.23
date: 2014/11/20 17:05:27; author: root; state: Exp; lines: +5 -1
*** empty log message ***
—————————-
revision 1.22
date: 2014/11/20 16:55:02; author: root; state: Exp; lines: +8 -8
*** empty log message ***
—————————-
revision 1.21
date: 2014/11/20 16:52:29; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.20
date: 2014/11/20 16:52:05; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.19
date: 2014/11/20 16:47:18; author: root; state: Exp; lines: +10 -5
*** empty log message ***
—————————-
revision 1.18
date: 2014/11/20 15:17:24; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.17
date: 2014/11/20 15:15:07; author: root; state: Exp; lines: +5 -5
implement a logic to get the accurate result at corresponding req. client
/
—————————-
revision 1.16
date: 2014/11/20 06:35:32; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.15
date: 2014/11/20 06:23:51; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2014/11/20 06:22:08; author: root; state: Exp; lines: +0 -1
*** empty log message ***
—————————-
revision 1.13
date: 2014/11/20 06:21:34; author: root; state: Exp; lines: +9 -3
*** empty log message ***
—————————-
revision 1.12
date: 2014/11/20 03:50:38; author: root; state: Exp; lines: +14 -10
imlement the semaphore in requesting client to send data in message queue one by one
—————————-
revision 1.11
date: 2014/11/20 02:23:30; author: root; state: Exp; lines: +5 -0
*** empty log message ***
—————————-
revision 1.10
date: 2014/11/20 02:15:11; author: root; state: Exp; lines: +5 -5
implemented server for multirequest successfully and get the right results
now i m going to check the need of request synchronization.
—————————-
revision 1.9
date: 2014/11/20 01:31:11; author: root; state: Exp; lines: +7 -7
implement logic to receive data structure in the treads
—————————-
revision 1.8
date: 2014/11/20 01:13:05; author: root; state: Exp; lines: +48 -4
implement operand filter using switch and case statements
send the result in message queue with a appropriate key
—————————-
revision 1.7
date: 2014/11/20 00:18:43; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/20 00:05:48; author: root; state: Exp; lines: +8 -7
implement the logic to get multi request and process them simultaneously by using multi thread
—————————-
revision 1.5
date: 2014/11/18 22:57:40; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/18 22:55:43; author: root; state: Exp; lines: +2 -1
call msgget and msgctl function
—————————-
revision 1.3
date: 2014/11/18 22:54:24; author: root; state: Exp; lines: +1 -1
add header file in server for threads
—————————-
revision 1.2
date: 2014/11/18 22:52:36; author: root; state: Exp; lines: +15 -71
design server using threads
—————————-
revision 1.1
date: 2014/11/18 20:12:55; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN scp_using_threads3]#

Posted in Project 04: FTP based Client Server using Threads and Sockets | Leave a comment

Basic implementation of Treads

RCS file: ./1_basicimpof_creat_join_exit.c,v
Working file: ./1_basicimpof_creat_join_exit.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
Basic implementation of threads
—————————-
revision 1.2 locked by: root;
date: 2014/11/22 04:45:10; author: root; state: Exp; lines: +3 -3
implement the pthread_create,pthread_join and pthread _exit call
—————————-
revision 1.1
date: 2014/11/22 04:43:51; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN basic_imp]#

Posted in Project 04: FTP based Client Server using Threads and Sockets | Leave a comment

Chat box implementation by socket(loop back)

RCS file: ./ser_socket.c,v
Working file: ./ser_socket.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Chat box implementation by socket using loopback
implement socket,listen,accept system call to get connection
—————————-
revision 1.1 locked by: root;
date: 2014/11/22 06:00:14; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: ./sock_client.c,v
Working file: ./sock_client.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
implement socket and connect call to establised connection
implement message read and write operation in infinite loop
—————————-
revision 1.1 locked by: root;
date: 2014/11/22 06:00:14; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN socket_loopback]#

Posted in Project 04: FTP based Client Server using Threads and Sockets | Leave a comment

linked list- create node,Insert node(begining,end,nth position,key value),Traverse ,Delete(at begining,end,nth postion, key value))

RCS file: lgen.c,v
Working file: lgen.c
head: 1.27
branch:
locks: strict
root: 1.27
access list:
symbolic names:
keyword substitution: kv
total revisions: 27; selected revisions: 27
description:
A generalised program of linked list
—————————-
revision 1.27 locked by: root;
date: 2014/11/22 02:58:19; author: root; state: Exp; lines: +3 -1
*** empty log message ***
—————————-
revision 1.26
date: 2014/11/22 02:54:39; author: root; state: Exp; lines: +1 -2
*** empty log message ***
—————————-
revision 1.25
date: 2014/11/22 02:51:41; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.24
date: 2014/11/22 01:46:41; author: root; state: Exp; lines: +2 -3
*** empty log message ***
—————————-
revision 1.23
date: 2014/11/22 01:41:52; author: root; state: Exp; lines: +6 -0
*** empty log message ***
—————————-
revision 1.22
date: 2014/11/22 01:38:27; author: root; state: Exp; lines: +17 -9
implement all four types of delete node functions
—————————-
revision 1.21
date: 2014/11/22 01:28:57; author: root; state: Exp; lines: +11 -2
*** empty log message ***
—————————-
revision 1.20
date: 2014/11/22 01:11:55; author: root; state: Exp; lines: +11 -1
*** empty log message ***
—————————-
revision 1.19
date: 2014/11/22 01:01:39; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.18
date: 2014/11/22 01:00:49; author: root; state: Exp; lines: +5 -1
*** empty log message ***
—————————-
revision 1.17
date: 2014/11/22 00:51:36; author: root; state: Exp; lines: +45 -2
implement delete related functions
—————————-
revision 1.16
date: 2014/11/22 00:24:51; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.15
date: 2014/11/22 00:15:58; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.14
date: 2014/11/22 00:08:44; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.13
date: 2014/11/22 00:01:40; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2014/11/22 00:00:15; author: root; state: Exp; lines: +2 -5
*** empty log message ***
—————————-
revision 1.11
date: 2014/11/21 23:50:17; author: root; state: Exp; lines: +25 -16
*** empty log message ***
—————————-
revision 1.10
date: 2014/11/21 18:01:12; author: root; state: Exp; lines: +2 -4
*** empty log message ***
—————————-
revision 1.9
date: 2014/11/21 17:05:02; author: root; state: Exp; lines: +8 -2
*** empty log message ***
—————————-
revision 1.8
date: 2014/11/09 21:13:55; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2014/11/09 21:09:38; author: root; state: Exp; lines: +3 -3
modified operation call
—————————-
revision 1.6
date: 2014/11/08 21:11:25; author: root; state: Exp; lines: +14 -13
implement the insert choice() and insert node function()
—————————-
revision 1.5
date: 2014/11/08 20:20:23; author: root; state: Exp; lines: +6 -6
modified the operation function and tranverse function
—————————-
revision 1.4
date: 2014/11/08 19:37:11; author: root; state: Exp; lines: +4 -4
implement the traverse nodes function to display the key values
—————————-
revision 1.3
date: 2014/11/08 19:32:40; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.2
date: 2014/11/08 19:29:53; author: root; state: Exp; lines: +3 -0
modified the operation function to stop execution of create_node function if already created
—————————-
revision 1.1
date: 2014/11/08 19:25:56; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.6
branch:
locks: strict
root: 1.6
access list:
symbolic names:
keyword substitution: kv
total revisions: 6; selected revisions: 6
description:
include corresponding header file
declare structure node
gave the prototype for
choice()
creat_node()
—————————-
revision 1.6 locked by: root;
date: 2014/11/22 00:53:45; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/22 00:51:12; author: root; state: Exp; lines: +6 -0
declare prototypes for delete related functions
—————————-
revision 1.4
date: 2014/11/21 23:49:44; author: root; state: Exp; lines: +3 -3
change the prototype of insert node and insert_beg function
—————————-
revision 1.3
date: 2014/11/08 21:10:49; author: root; state: Exp; lines: +2 -2
modified the prototype for insert choice() and insert node() function
—————————-
revision 1.2
date: 2014/11/08 20:19:47; author: root; state: Exp; lines: +1 -1
modified the prototype of opeation()
—————————-
revision 1.1
date: 2014/11/08 19:23:29; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN linked_list]#

Posted in Data Structures with C | Leave a comment

IPC based server-client based project using shared memory with semaphore and signal(SIGUSR1)

OUTPUT AT SERVER TERMINAL
[root@VIPIN scp_shm_usingsemp]# ./server
semget: Success
process 8390 create the semaphore
semctl: Success
process 8390 control the semaphore
address of val in server0x804914c
shmget: Success
process 8390 create the shared mem
process 8390 control the shared mem
shmctl: Success
process 8390 attach the shared mem
shmat: Success
signal is recieved by 8390
16
5
*
shmget: Success
process 8420 create the shared mem
process 8420 control the shared mem
shmctl: Success
process 8420 attach the shared mem
shmat: Success
signal is recieved by 8390
4
1
+
shmget: Success
process 8421 create the shared mem
process 8421 control the shared mem
shmctl: Success
process 8421 attach the shared mem
shmat: Success
signal is recieved by 8390
42
32
-
shmget: Success
process 8422 create the shared mem
process 8422 control the shared mem
shmctl: Success
process 8422 attach the shared mem
shmat: Success

OUTPUT AT REQUESTING CLIENT TERMINAL
[root@VIPIN scp_shm_usingsemp]# ./runclient
address of val in rc10x8049ff8
shmget: Success
process 8525 create the shared mem
process 8525 control the shared mem
shmctl: Success
semget: Success
process 8525 create the semaphore
address of val in rc20x8049ff8
process 8525 get the semaphore
semop value at waiting:-1
process 8525 attach the shared mem
shmat: Success
shmget: Success
process 8526 create the shared mem
process 8526 control the shared mem
shmctl: Success
semget: Success
process 8526 create the semaphore
process 8526 get the semaphore
semop value at waiting:-1
shmget: Success
process 8527 create the shared mem
process 8527 control the shared mem
shmctl: Success
semget: Success
process 8527 create the semaphore
process 8527 get the semaphore
semop value at waiting:-1
signal is recieved by 8525
result read by rc1: 4 + 1 = 5
process 8525 release the semaphore
semop value at releasing:1
process 8526 attach the shared mem
shmat: Success
signal is recieved by 8526
result read by rc2: 42 – 32 = 10
process 8526 release the semaphore
semop value at releasing:1
process 8527 attach the shared mem
shmat: Success
signal is recieved by 8527
result read by rc1: 16 * 5 = 80
process 8527 release the semaphore
semop value at releasing:1
[root@VIPIN scp_shm_usingsemp]#

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment

IPC based server-client project using message queue with semaphore

OUTPUT AT SERVER TERMINAL
[root@VIPIN scp_mq_using_semp]# ./server
semget:: Success
msgget:: Success
msgctl:: Success
msgrcv at server: Success
1
2
+
data send to pc1 from server: Success
msgget:: Success
data recieved from server at pc1: Success
result send to server from pc1: Success
msgrcv at server: Success
5
1
-
msgget:: Success
data recieved from server at pc2: Success
result send to server from pc2: Success
msgrcv at server: Success
5
9
*
msgget:: Success
data recieved from server at pc3: Success
result send to server from pc3: Success
msgrcv at server: Success
1
2
+
data send to pc1 from server: Success
msgget:: Success
data recieved from server at pc1: Success
result send to server from pc1: Success
msgrcv at server: Success
5
9
*
msgget:: Success
data recieved from server at pc3: Success
result send to server from pc3: Success
msgrcv at server: Success
5
1
-
msgget:: Success
data recieved from server at pc2: Success
result send to server from pc2: Success

OUTPUT AT REQUESTING CLIENT TERMINAL
[root@VIPIN scp_mq_using_semp]# ./t
msgget:: Success
msgctl:: Success
semget:: Success
msgsnd to server from rc1: Success
msgget:: Success
msgctl:: Success
semget:: Success
msgget:: Success
msgctl:: Success
semget:: Success
result recieved by rc1: Success
result at rc1 1 + 2=3
msgsnd to server from rc2: Success
result recieved by rc2: Success
result at rc2 5 – 1=4
msgsnd to server from rc3: Success
result recieved by rc3: Success
result at rc3 5 * 9=45
[root@VIPIN scp_mq_using_semp]#

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment

Basic implementation of Semaphore

RCS file: ./1sem.c,v
Working file: ./1sem.c
head: 1.7
branch:
locks: strict
root: 1.7
access list:
symbolic names:
keyword substitution: kv
total revisions: 7; selected revisions: 7
description:
implementation of basic semaphore
—————————-
revision 1.7 locked by: root;
date: 2014/11/22 04:22:47; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/10 19:40:41; author: root; state: Exp; lines: +6 -1
understand the logic of semaphore by executing same process in background.
—————————-
revision 1.5
date: 2014/11/10 19:31:14; author: root; state: Exp; lines: +10 -7
semaphore realease successfull by incrementing
—————————-
revision 1.4
date: 2014/11/10 19:24:10; author: root; state: Exp; lines: +7 -6
semop implemented successfuly
—————————-
revision 1.3
date: 2014/11/10 19:15:10; author: root; state: Exp; lines: +9 -2
semctl executed successfuly
—————————-
revision 1.2
date: 2014/11/10 19:09:53; author: root; state: Exp; lines: +1 -1
get semaphore id
—————————-
revision 1.1
date: 2014/11/10 19:08:49; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN basic_semp_imp]#

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment

Basic implementation of signal in IPC

RCS file: ./1sig.c,v
Working file: ./1sig.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
basic implementation of signals
—————————-
revision 1.2 locked by: root;
date: 2014/11/22 04:18:02; author: root; state: Exp; lines: +1 -1
implement the signal handler concept
use SIGQUIT signal
—————————-
revision 1.1
date: 2014/11/22 04:16:43; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN signals]#

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment

IPC based server-client project using fifo

RCS file: server.c,v
Working file: server.c
head: 1.47
branch:
locks: strict
root: 1.47
access list:
symbolic names:
keyword substitution: kv
total revisions: 47; selected revisions: 47
description:
SERVER
—————————-
revision 1.47 locked by: root;
date: 2014/11/11 03:55:47; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.46
date: 2014/11/11 03:52:29; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.45
date: 2014/11/11 03:35:34; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.44
date: 2014/11/10 21:24:04; author: root; state: Exp; lines: +7 -5
*** empty log message ***
—————————-
revision 1.43
date: 2014/11/10 15:06:42; author: root; state: Exp; lines: +22 -8
*** empty log message ***
—————————-
revision 1.42
date: 2014/11/10 14:23:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.41
date: 2014/11/10 07:29:39; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.40
date: 2014/11/10 07:18:59; author: root; state: Exp; lines: +12 -7
*** empty log message ***
—————————-
revision 1.39
date: 2014/11/10 06:52:11; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.38
date: 2014/11/10 06:50:05; author: root; state: Exp; lines: +0 -41
*** empty log message ***
—————————-
revision 1.37
date: 2014/11/10 05:09:25; author: root; state: Exp; lines: +43 -3
*** empty log message ***
—————————-
revision 1.36
date: 2014/11/10 04:52:33; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.35
date: 2014/11/10 04:51:01; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.34
date: 2014/11/10 04:49:36; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.33
date: 2014/11/10 04:45:27; author: root; state: Exp; lines: +3 -4
*** empty log message ***
—————————-
revision 1.32
date: 2014/11/10 04:39:54; author: root; state: Exp; lines: +2 -1
*** empty log message ***
—————————-
revision 1.31
date: 2014/11/10 04:34:19; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.30
date: 2014/11/10 04:30:29; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.29
date: 2014/11/10 04:27:38; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.28
date: 2014/11/10 04:20:17; author: root; state: Exp; lines: +10 -11
*** empty log message ***
—————————-
revision 1.27
date: 2014/11/10 04:04:41; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.26
date: 2014/11/10 04:02:14; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.25
date: 2014/11/10 04:01:25; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.24
date: 2014/11/10 03:52:50; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.23
date: 2014/11/10 03:50:14; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.22
date: 2014/11/10 03:48:46; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.21
date: 2014/11/10 03:45:38; author: root; state: Exp; lines: +2 -3
use second fifo to write result to the requesting client
—————————-
revision 1.20
date: 2014/11/10 03:44:35; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.19
date: 2014/11/10 03:40:33; author: root; state: Exp; lines: +1 -0
implement the code to write result to corresponding requesting client
—————————-
revision 1.18
date: 2014/11/10 03:36:06; author: root; state: Exp; lines: +2 -0
close fd and reopen fd to read result
—————————-
revision 1.17
date: 2014/11/10 03:33:28; author: root; state: Exp; lines: +4 -1
implemnet code to read from the adder adder client using same the same fifo
—————————-
revision 1.16
date: 2014/11/10 00:10:05; author: root; state: Exp; lines: +7 -6
*** empty log message ***
—————————-
revision 1.15
date: 2014/11/10 00:05:53; author: root; state: Exp; lines: +7 -7
RDWR testing to use only one fifo to read from rclient and write to rclient
—————————-
revision 1.14
date: 2014/11/10 00:00:28; author: root; state: Exp; lines: +10 -1
implement write operation to adder client
—————————-
revision 1.13
date: 2014/11/09 23:50:00; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.12
date: 2014/11/09 23:47:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2014/11/09 23:45:02; author: root; state: Exp; lines: +1 -1
implement server for 3 client
—————————-
revision 1.10
date: 2014/11/09 23:37:30; author: root; state: Exp; lines: +1 -1
read simultaneouly successful
test to get 3 request simul.
—————————-
revision 1.9
date: 2014/11/09 23:32:17; author: root; state: Exp; lines: +3 -0
read from client1 sucessfully
testing to get request from two client simultaneously
—————————-
revision 1.8
date: 2014/11/09 23:26:01; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2014/11/09 23:24:49; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/09 23:22:58; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/09 23:22:42; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/09 23:22:11; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2014/11/09 23:20:29; author: root; state: Exp; lines: +13 -1
implement open and read call
—————————-
revision 1.2
date: 2014/11/09 23:10:27; author: root; state: Exp; lines: +1 -1
implement fifos using mkfifo and access
—————————-
revision 1.1
date: 2014/11/09 23:09:43; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: rclient1.c,v
Working file: rclient1.c
head: 1.18
branch:
locks: strict
root: 1.18
access list:
symbolic names:
keyword substitution: kv
total revisions: 18; selected revisions: 18
description:
Requesting client1
—————————-
revision 1.18 locked by: root;
date: 2014/11/10 07:19:00; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.17
date: 2014/11/10 06:52:12; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.16
date: 2014/11/10 04:53:39; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.15
date: 2014/11/10 04:52:34; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.14
date: 2014/11/10 04:49:38; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.13
date: 2014/11/10 04:45:28; author: root; state: Exp; lines: +5 -6
*** empty log message ***
—————————-
revision 1.12
date: 2014/11/10 04:02:15; author: root; state: Exp; lines: +5 -5
*** empty log message ***
—————————-
revision 1.11
date: 2014/11/10 04:01:27; author: root; state: Exp; lines: +2 -0
*** empty log message ***
—————————-
revision 1.10
date: 2014/11/10 03:59:43; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2014/11/10 03:58:48; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2014/11/10 03:57:30; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.7
date: 2014/11/10 03:52:51; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/10 03:48:47; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/10 03:47:29; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/10 03:46:08; author: root; state: Exp; lines: +1 -1
use second fifo to get the result from the server side
—————————-
revision 1.3
date: 2014/11/10 03:41:15; author: root; state: Exp; lines: +4 -2
implement the code to recieve result from the server
—————————-
revision 1.2
date: 2014/11/09 23:33:26; author: root; state: Exp; lines: +3 -3
disable read from server
—————————-
revision 1.1
date: 2014/11/09 23:09:43; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: rclient2.c,v
Working file: rclient2.c
head: 1.6
branch:
locks: strict
root: 1.6
access list:
symbolic names:
keyword substitution: kv
total revisions: 6; selected revisions: 6
description:
Recleint client2
—————————-
revision 1.6 locked by: root;
date: 2014/11/10 15:06:43; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/10 14:31:08; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/10 06:50:07; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2014/11/10 05:09:26; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.2
date: 2014/11/09 23:33:45; author: root; state: Exp; lines: +6 -6
disable read from server
—————————-
revision 1.1
date: 2014/11/09 23:09:43; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: rclient3.c,v
Working file: rclient3.c
head: 1.10
branch:
locks: strict
root: 1.10
access list:
symbolic names:
keyword substitution: kv
total revisions: 10; selected revisions: 10
description:
requesting client3
—————————-
revision 1.10 locked by: root;
date: 2014/11/11 03:55:48; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.9
date: 2014/11/11 03:52:31; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.8
date: 2014/11/11 03:45:24; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2014/11/11 03:35:48; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/10 21:30:54; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/10 15:06:45; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/10 07:27:53; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.3
date: 2014/11/10 07:25:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2014/11/10 07:19:01; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.1
date: 2014/11/09 23:45:26; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: pclient1.c,v
Working file: pclient1.c
head: 1.12
branch:
locks: strict
root: 1.12
access list:
symbolic names:
keyword substitution: kv
total revisions: 12; selected revisions: 12
description:
Processing client1
—————————-
revision 1.12 locked by: root;
date: 2014/11/11 03:52:32; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.11
date: 2014/11/11 03:48:41; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.10
date: 2014/11/11 03:35:49; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.9
date: 2014/11/10 07:19:02; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.8
date: 2014/11/10 06:52:13; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.7
date: 2014/11/10 04:51:03; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.6
date: 2014/11/10 04:49:39; author: root; state: Exp; lines: +2 -2
*** empty log message ***
—————————-
revision 1.5
date: 2014/11/10 04:45:29; author: root; state: Exp; lines: +3 -2
*** empty log message ***
—————————-
revision 1.4
date: 2014/11/10 03:34:16; author: root; state: Exp; lines: +2 -3
implement code to write result to the server
—————————-
revision 1.3
date: 2014/11/10 00:06:54; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.2
date: 2014/11/10 00:01:05; author: root; state: Exp; lines: +4 -4
implement read code to read from server
—————————-
revision 1.1
date: 2014/11/09 23:09:43; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: pclient2.c,v
Working file: pclient2.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Processing client2
/
—————————-
revision 1.4 locked by: root;
date: 2014/11/11 03:35:50; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.3
date: 2014/11/10 07:19:02; author: root; state: Exp; lines: +3 -3
*** empty log message ***
—————————-
revision 1.2
date: 2014/11/10 05:09:28; author: root; state: Exp; lines: +4 -4
*** empty log message ***
—————————-
revision 1.1
date: 2014/11/09 23:09:43; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: pclient3.c,v
Working file: pclient3.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
—————————-
revision 1.1 locked by: root;
date: 2014/11/11 03:55:49; author: root; state: Exp;
Initial revision
=============================================================================
[root@VIPIN scp_using_fifo]#

Posted in Project 03: Client Server Communication using Linux and IPC | Leave a comment