EmbLogic's Blog

Successfully registerd the device,allocated memory and added the driver in the kernel space..

RCS file: header.h,v
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:
This include header files
Included init.h,module.h,fs.h
Gave MODULE_DESCRIPTION
—————————-
revision 1.3    locked by: root;
date: 2015/04/25 04:53:48;  author: root;  state: Exp;  lines: +1 -0
Included cdev.h
—————————-
revision 1.2
date: 2015/04/25 04:34:10;  author: root;  state: Exp;  lines: +1 -0
included slab.h
—————————-
revision 1.1
date: 2015/04/24 10:55:58;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: declaration.h,v
Working file: declaration.h
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 declaration file.
—————————-
revision 1.4    locked by: root;
date: 2015/04/25 05:16:10;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
—————————-
revision 1.3
date: 2015/04/25 04:54:01;  author: root;  state: Exp;  lines: +3 -1
Declared the device representation structure inside struct Dev
—————————-
revision 1.2
date: 2015/04/25 04:34:29;  author: root;  state: Exp;  lines: +11 -0
included the structure for allocating memory for device.
—————————-
revision 1.1
date: 2015/04/24 11:38:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.9
branch:
locks: strict
root: 1.9
access list:
symbolic names:
keyword substitution: kv
total revisions: 9;    selected revisions: 9
description:
This is the initialisation file.
registered the device through alloc_chrdev_region()
Printing the major and minor no. through printk.
—————————-
revision 1.9    locked by: root;
date: 2015/04/25 05:16:13;  author: root;  state: Exp;  lines: +2 -0
*** empty log message ***
—————————-
revision 1.8
date: 2015/04/25 05:13:50;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2015/04/25 05:13:03;  author: root;  state: Exp;  lines: +2 -2
*** empty log message ***
—————————-
revision 1.6
date: 2015/04/25 04:57:05;  author: root;  state: Exp;  lines: +11 -1
Initialised the device representation structure using cdev_init().
Added the device to device table using cdev_add()
—————————-
revision 1.5
date: 2015/04/25 04:37:52;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2015/04/25 04:35:51;  author: root;  state: Exp;  lines: +8 -0
Allocated the memory to device using kmalloc()
Flusing the garbage using memset()
—————————-
revision 1.3
date: 2015/04/24 11:40:39;  author: root;  state: Exp;  lines: +1 -0
printing the value of nod
—————————-
revision 1.2
date: 2015/04/24 11:19:56;  author: root;  state: Exp;  lines: +2 -1
included module parameter module_param().
—————————-
revision 1.1
date: 2015/04/24 11:01:51;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.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 cleanup file .
Unregistering the device through unregister_chrdev_region().
—————————-
revision 1.4    locked by: root;
date: 2015/04/25 04:56:14;  author: root;  state: Exp;  lines: +1 -0
Removing the device representation structure using cdev_del().
—————————-
revision 1.3
date: 2015/04/25 04:35:00;  author: root;  state: Exp;  lines: +1 -0
Deallocated the memory for device using kfree().
—————————-
revision 1.2
date: 2015/04/24 11:44:57;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
—————————-
revision 1.1
date: 2015/04/24 11:03:39;  author: root;  state: Exp;
Initial revision
=============================================================================

Posted in Device Drivers | Leave a comment

Successfully Register the device, Allocated the memory and added the driver in the kernel space

RCS file: header.h,v
Working file: header.h
head: 1.4
branch:
locks: strict
	root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
Decleared the header files that are linux/init.h , linux/modules.h ,linux/fs.h
also define MAJORNO, MINORNO and NOD
Gave the MODULE_LICENSE(),MODULE_AUTHOR,MODULE_DESCRIPTION()
Also define the device name
----------------------------
revision 1.4	locked by: root;
date: 2015/04/25 04:53:36;  author: root;  state: Exp;  lines: +1 -0
included cdev.h header file.
----------------------------
revision 1.3
date: 2015/04/25 04:16:22;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.2
date: 2015/04/24 11:19:28;  author: root;  state: Exp;  lines: +1 -0
Included the header file i.e linux/moduleparam.h
----------------------------
revision 1.1
date: 2015/04/24 10:56:53;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: Declearation.h,v
Working file: Declearation.h
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 Declearation function.
----------------------------
revision 1.6	locked by: root;
date: 2015/04/25 05:16:18;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.5
date: 2015/04/25 04:54:02;  author: root;  state: Exp;  lines: +2 -1
Decleare the device representation structure inside struct dev.
----------------------------
revision 1.4
date: 2015/04/25 04:33:47;  author: root;  state: Exp;  lines: +11 -1
Included the structure for allocating memory to the device.
----------------------------
revision 1.3
date: 2015/04/25 04:20:48;  author: root;  state: Exp;  lines: +1 -2
*** empty log message ***
----------------------------
revision 1.2
date: 2015/04/25 04:16:24;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.1
date: 2015/04/24 10:59:36;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.9
branch:
locks: strict
	root: 1.9
access list:
symbolic names:
keyword substitution: kv
total revisions: 9;	selected revisions: 9
description:
This is initialization function . 
Initialization is done by using MACRO module_init().
Register the device through alloc_chrdev_region().
printed the major and minor no
----------------------------
revision 1.9	locked by: root;
date: 2015/04/25 05:16:20;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.8
date: 2015/04/25 04:56:08;  author: root;  state: Exp;  lines: +12 -3
The device representation structure is initialized .
structure is initialied using cdev_init()
And also added to the device entry in the device table by using cdev_add()
----------------------------
revision 1.7
date: 2015/04/25 04:36:55;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.6
date: 2015/04/25 04:34:54;  author: root;  state: Exp;  lines: +9 -2
Allocated memory for device by using kmalloc().
nd also use memset() to flush out the garbage.
----------------------------
revision 1.5
date: 2015/04/25 04:20:50;  author: root;  state: Exp;  lines: +1 -0
*** empty log message ***
----------------------------
revision 1.4
date: 2015/04/24 11:41:17;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.3
date: 2015/04/24 11:38:37;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2015/04/24 11:20:38;  author: root;  state: Exp;  lines: +2 -2
Gave the module parameter through module_param().
----------------------------
revision 1.1
date: 2015/04/24 11:01:53;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
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 cleanup function or we can say that its a exit function.
this is done by using MACRO module_exit()..
Unregister the device through unregister_chrdev_region().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/25 05:16:21;  author: root;  state: Exp;  lines: +1 -1
*** empty log message ***
----------------------------
revision 1.2
date: 2015/04/25 05:04:47;  author: root;  state: Exp;  lines: +2 -0
Deallocting the memory by using kfree()
Removed the device representing structure cdev by using cdev_del().
----------------------------
revision 1.1
date: 2015/04/24 11:04:05;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Character Driver, Device Drivers | Leave a comment

Successfully Created kernel module and registered the device..

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:
This includes the header file.
Included init.h,modules.h,fs.h.
defined a extern variable major.
gave a macro DEVICE_NAME.
—————————-
revision 1.1    locked by: root;
date: 2015/04/24 05:56:00;  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:
This is the declaration file
Gave structure variable for struct file_operations.
—————————-
revision 1.1    locked by: root;
date: 2015/04/24 05:58:06;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;    selected revisions: 1
description:
This is the initialisation program to initialise the device.
Calling initialisation function through macro module_init().
Registered the device through register_chrdev()
—————————-
revision 1.1    locked by: root;
date: 2015/04/24 06:04:28;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;    selected revisions: 1
description:
This is the cleanup program.
Calling clean function through module_exit().
unregistered the device through unregister_chrdev()
—————————-
revision 1.1    locked by: root;
date: 2015/04/24 06:09:40;  author: root;  state: Exp;
Initial revision
=============================================================================

Posted in Device Drivers | Leave a comment

Successfully Created Kernel Module and register the device.

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:
Included the header files like linux/init.h and linux/module.h.
Gave the MODULE_LICENSE , MODULE_AUTHOR, MODULE_DESCRIPTION.
Decleared the device name.
also decleared the major no.
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 05:55:37;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: Declearation.h,v
Working file: Declearation.h
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
This is declearation file .
decleared the structure variable for the struct file_operations.
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 05:57:55;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.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 we have call the initialization function by using the macro module_init().
Register the device through register_chrdev().
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 06:07:42;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.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 we have call the cleanup function or we can say that exit_function by using the macro module_exit().
Unregister the device through unregister_chrdev().
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 06:11:04;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

Successfully done driver for alloc, kmalloc, device Initialization

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
this is basic header file
—————————-
revision 1.1
date: 2015/04/24 05:20:37; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is driver intialisation file
—————————-
revision 1.3
date: 2015/04/24 05:32:26; author: root; state: Exp; lines: +3 -3
register the driver
—————————-
revision 1.2
date: 2015/04/24 05:24:42; author: root; state: Exp; lines: +3 -3
intialize driver using __init func
—————————-
revision 1.1
date: 2015/04/24 05:20:49; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is driver cleanup file
—————————-
revision 1.3
date: 2015/04/24 05:33:04; author: root; state: Exp; lines: +1 -1
unregister the driver
—————————-
revision 1.2
date: 2015/04/24 05:25:51; author: root; state: Exp; lines: +1 -1
cleanup the driver using __exit func
—————————-
revision 1.1
date: 2015/04/24 05:21:08; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: header.h,v
Working file: header.h
head: 1.7
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 7; selected revisions: 7
description:
this is basic header file
—————————-
revision 1.7
date: 2015/04/24 13:43:07; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.6
date: 2015/04/24 13:38:51; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.5
date: 2015/04/24 13:32:14; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.4
date: 2015/04/24 12:55:42; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.3
date: 2015/04/24 12:52:22; author: root; state: Exp; lines: +14 -0
declare struct Qset, struct Dev
—————————-
revision 1.2
date: 2015/04/24 11:42:31; author: root; state: Exp; lines: +20 -1
included moduleparan.h & slab.h
—————————-
revision 1.1
date: 2015/04/24 05:20:37; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.8
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 8; selected revisions: 8
description:
this is driver intialisation file
—————————-
revision 1.8
date: 2015/04/24 13:40:59; author: root; state: Exp; lines: +1 -1
*** empty log message ***
—————————-
revision 1.7
date: 2015/04/24 13:32:16; author: root; state: Exp; lines: +6 -1
*** empty log message ***
—————————-
revision 1.6
date: 2015/04/24 12:52:59; author: root; state: Exp; lines: +11 -0
allocating memory using kmalloc()
—————————-
revision 1.5
date: 2015/04/24 11:58:00; author: root; state: Exp; lines: +1 -1
use module parameter using module_param()
—————————-
revision 1.4
date: 2015/04/24 11:43:06; author: root; state: Exp; lines: +14 -2
intialise driver using alloc_chrdev_region()
—————————-
revision 1.3
date: 2015/04/24 05:32:26; author: root; state: Exp; lines: +3 -3
register the driver
—————————-
revision 1.2
date: 2015/04/24 05:24:42; author: root; state: Exp; lines: +3 -3
intialize driver using __init func
—————————-
revision 1.1
date: 2015/04/24 05:20:49; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.6
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 6; selected revisions: 6
description:
this is driver cleanup file
—————————-
revision 1.6
date: 2015/04/24 13:32:17; author: root; state: Exp; lines: +1 -0
*** empty log message ***
—————————-
revision 1.5
date: 2015/04/24 12:53:37; author: root; state: Exp; lines: +1 -0
free memory using kfree()
—————————-
revision 1.4
date: 2015/04/24 11:44:00; author: root; state: Exp; lines: +1 -1
unregister the driver using unregister_chrdev_region()
—————————-
revision 1.3
date: 2015/04/24 05:33:04; author: root; state: Exp; lines: +1 -1
unregister the driver
—————————-
revision 1.2
date: 2015/04/24 05:25:51; author: root; state: Exp; lines: +1 -1
cleanup the driver using __exit func
—————————-
revision 1.1
date: 2015/04/24 05:21:08; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Character Driver, Device Drivers | Leave a comment

Implemented IPC using FIFO for 3 clients

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:
Decleared all the header files that are useful for the program.
Also decleared the structure of req_client which includes operator and operands.
Gave the prototypes for the invoke_process_client1().
Gave the prototype for invoke_process_client2().
Gave the prototype for invoke_process_client3().
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 11:15:39;  author: root;  state: Exp;  lines: +0 -1
Also decleared the union semun which includes a value.
Gave the prototype for wait operation i.e semaphore_p().
Gave the prototype for signal operation i.e semaphore_v().
Gave the prototype for destroying the semaphore i.e del_semvalue().
----------------------------
revision 1.1
date: 2015/04/15 11:14:54;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_add.c,v
Working file: req_add.c
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 requesting client(req_client) requesting for add operation.
Created a FIFO between req_add and server.
We have created this FIFO in O_WRONLY mode .
Req_add wrote the request structure to the server.
Also used semaphore wait function i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 11:39:10;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_RDONLY mode .
Accepted the result through FIFO.
----------------------------
revision 1.2
date: 2015/04/15 11:32:54;  author: root;  state: Exp;  lines: +0 -1
Now we have used the semaphore signal function i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:31:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_sub.c,v
Working file: req_sub.c
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 requesting client requesting for subtract operation.
Created a FIFO between req_sub and server.
We have created this FIFO in O_WRONLY mode .
Req_sub wrote the request structure to the server.
Also use semaphore wait operation i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 11:50:28;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_WRONLY mode .
Accepting the result from the server.
----------------------------
revision 1.2
date: 2015/04/15 11:49:02;  author: root;  state: Exp;  lines: +37 -0
Also used semaphore signal operation i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:47:51;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_mul.c,v
Working file: req_mul.c
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 requesting client requesting for multiplication operation.
Created a FIFO between req_mul and server.
We have created the FIFO in O_WRONLY mode .
Also used semaphore wait operation i.e semaphore_p().
----------------------------
revision 1.3	locked by: root;
date: 2015/04/15 12:00:12;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO in O_RDONLY mode .
Accepting the result from server through FIFO .
----------------------------
revision 1.2
date: 2015/04/15 11:56:25;  author: root;  state: Exp;  lines: +1 -0
Also use semaphore signal operation i.e semaphore_v().
----------------------------
revision 1.1
date: 2015/04/15 11:55:57;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: adder.c,v
Working file: adder.c
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 processing client i.e adder.c
Accepting the request structure send by the server.
Performing the addition operation.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 12:42:06;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
Send back the result to the server through pipes.
also used kill()signal.
----------------------------
revision 1.1
date: 2015/04/15 12:41:16;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: subtractor.c,v
Working file: subtractor.c
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 processing client performing subtraction operation.
Accepting the request structure from the server.
Performing the subtraction operation.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 12:48:29;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
send back the result to the server.
----------------------------
revision 1.1
date: 2015/04/15 12:47:26;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: multiplier.c,v
Working file: multiplier.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
This is processing client performing multiplication operation.
Accepting the request structure from server.
Performing the multiplication operation.
----------------------------
revision 1.2
date: 2015/04/15 12:56:24;  author: root;  state: Exp;  lines: +1 -0
Performed the operation and computed the result.
send the result back to the server.
----------------------------
revision 1.1
date: 2015/04/15 12:55:40;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: server.c,v
Working file: server.c
head: 1.4
branch:
locks: strict
	root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 4
description:
Open the FIFO in O_RDONLY  mode .
And accepted the request structure from 3 clients.
Created fork().
invoke_process client1() and send the request structure to the respective pro_client i.e adder
invoke_process_client2() and send  the request structure to the respective pro_client i.e subtractor.
invoke_process_client3() and send the request structure to the respective pro_client i.e multiplier.#[A
Also we have used the signal handler and signal handler functions .
We have created a pipe between server and pro_clients.
----------------------------
revision 1.4	locked by: root;
date: 2015/04/15 12:30:06;  author: root;  state: Exp;  lines: +1 -0
Created another FIFO between server and req_clients in O_WRONLY mode .
Also send back the result to the req_clients through FIFO.
----------------------------
revision 1.3
date: 2015/04/15 12:24:55;  author: root;  state: Exp;  lines: +1 -0
Sending the request structure to the pro_clients through pipes.
Accepting the result send by the pro_clients through pipes.
----------------------------
revision 1.2
date: 2015/04/15 12:20:30;  author: root;  state: Exp;  lines: +1 -0
also used the semget() for creating sem_id .
and also used the semctl() for initialising the semaphore.
----------------------------
revision 1.1
date: 2015/04/15 12:19:32;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

Implemented ipc using fifo for 1 client

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:
Decleared the standard headerfiles used for the program 
also 
Decleared the structure for req_client
Gave the prototype for invoke_pro_client()
Decleared the prototype for union senum for implementing semaphores
Gave the prototyoe for the wait operation i.e semaphore_p() and also for the signal operation i.e semaphore_v()
----------------------------
revision 1.1	locked by: root;
date: 2015/03/30 11:53:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_client.c,v
Working file: req_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:
Created FIFO in O_WRONLY mode 
writing the request structure into the server through fifo .
Again Created Result FIFO in O_RDONLY mode 
Accepting the Result from the server through FIFO.
Displaying the result.
----------------------------
revision 1.1	locked by: root;
date: 2015/03/30 11:58:42;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: pro_client.c,v
Working file: pro_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:
Accepting the request structure through pipe from the server.
Performing adding operation.
Sending the result back to the server.
Performing kill operation to kill the signal.
----------------------------
revision 1.1	locked by: root;
date: 2015/03/30 12:07:24;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: server.c,v
Working file: server.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
Accepting the request structure frm the req_client through req_client fifo.
Created pipe between server and pro_client.
Sending the request structure to the pro_client through pipe.
Also Created the signal function and signal handler.
Created  a semaphore by using semget()and also initializes the semaphore by using semctl().
Also destroyed that semaphore by using IPC_RMID command .
Accepting the Result from the pro_client through pipe 
Also sending the result back to the req_client through Result FIFO.
----------------------------
revision 1.1	locked by: root;
date: 2015/03/30 12:25:53;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

Implemented Pipes through Signals for 3 clients

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:
Declared stdio.h,stdlib.h,unistd.h
Declred the prototype for invoke_req_clients()
Gave the prototype for struct req_client which include one operator and two operand.
Gave the prototype for invoke_pro_clients()
—————————-
revision 1.1    locked by: root;
date: 2015/04/15 06:24:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_add.c,v
Working file: req_add.c
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;    selected revisions: 1
description:
This is requesting client .
Wrote the request containing one operator and two operands to the server using pipe and signals
Declared signal handler and signal handler function.
At last reading result from the server.
—————————-
revision 1.1
date: 2015/04/15 06:32:51;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_sub.c,v
Working file: req_sub.c
head: 1.1
branch:
locks: strict
root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;    selected revisions: 1
description:
This is requesting client for subtract operation
Wrote the request to the server using pipes and signals
Declared signal handler and signal handler function.
At last reading result form the server./
—————————-
revision 1.1    locked by: root;
date: 2015/04/15 06:36:58;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_mul.c,v
Working file: req_mul.c
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 requesting is requesting client for multiplication operation.
Wrote the request to the server using pipes and signals.
Declared signal handler and siagnal hander function.
—————————-
revision 1.2    locked by: root;
date: 2015/04/15 06:56:57;  author: root;  state: Exp;  lines: +0 -2
Accepting the result from the server.
..
—————————-
revision 1.1
date: 2015/04/15 06:43:56;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: adder.c,v
Working file: adder.c
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 processing client for add operation.
Accepting the request from the server.
through pipes
Performing the add operation.
and generating the result.
—————————-
revision 1.2    locked by: root;
date: 2015/04/15 07:28:57;  author: root;  state: Exp;  lines: +1 -1
Wrote the result back to the server..
used the kill() signal .
—————————-
revision 1.1
date: 2015/04/15 07:23:37;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: subtractor.c,v
Working file: subtractor.c
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 processing client.
Accepting the request from the server through pipes.
Generating the result.
—————————-
revision 1.2    locked by: root;
date: 2015/04/15 07:34:07;  author: root;  state: Exp;  lines: +1 -1
Sending result back to server.
—————————-
revision 1.1
date: 2015/04/15 07:33:27;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: multiplier.c,v
Working file: multiplier.c
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 processing client .
Accepting the request from the server through pipes.
Processing the request and generating the result.
—————————-
revision 1.2    locked by: root;
date: 2015/04/15 07:40:14;  author: root;  state: Exp;  lines: +1 -1
Sending the result back to server.
—————————-
revision 1.1
date: 2015/04/15 07:39:36;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: server.c,v
Working file: server.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;    selected revisions: 2
description:
Accepting different requests from 3 requesting clients that are req_add(),req_sub(),req_mul().
Through pipes
Created another pipe between server and 3 processing clients.
invoked the pro_clients and passed all 3 requests to the differnt pro_clients through pipes.
—————————-
revision 1.2    locked by: root;
date: 2015/04/15 07:16:02;  author: root;  state: Exp;  lines: +0 -1
Accepting the result from the pro_clients through pipe.
Sending back the result to req_clients through pipe.
Also use the signals for synchronization.
—————————-
revision 1.1
date: 2015/04/15 07:10:44;  author: root;  state: Exp;
Initial revision
=============================================================================

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

Implemented pipes using signals for 3 clients

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:
Decleared all the header files useful for this program i.e stdio.h,stdlib.h,unistd.h,signal.h
Also decleared the structure of req_client which incerand and also pid .
Gave the prototype for invoke_req_client .
Gave the prototype for invoke_pro_client.
Also Gave the prototypes for reading the request from req_client and.
Also gave the prototypes for signal() used in the program.
----------------------------
revision 1.1	locked by: root;
date: 2015/04/15 06:22:33;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_add.c,v
Working file: req_add.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
This is requesting client requesting for add()operation.
The req_add wrote the request to the server by using pipes and signals.
The request includes operator and 2 operands on whbe performed .
it also includes the pid in the request .
After that it accepts the result from the server by using pipes .
Decleared the signal handler and also signal handler function.
----------------------------
revision 1.1	locked by: root;
date: 2015/04/15 06:32:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_sub.c,v
Working file: req_sub.c
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 requesting client requesting for the sub() operation.
The req_sub wrote the request which includes operator and operands and pid to the server .
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 06:40:01;  author: root;  state: Exp;  lines: +24 -0
Accepts the result send by the server .
Decleared the signal handler and signal handler function.
----------------------------
revision 1.1
date: 2015/04/15 06:39:02;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: req_mul.c,v
Working file: req_mul.c
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 requesting client requesting for multiplication operation.
Req_mul wrote the request which includes operator,operands and pid to the server.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 06:48:49;  author: root;  state: Exp;  lines: +2 -1
Accepts the request#[C#[C#[C#[C#[C#[.
Accepts the result from the server.
Decleared the signal handler and signal handler function.
----------------------------
revision 1.1
date: 2015/04/15 06:43:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: adder.c,v
Working file: adder.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
This is processing client .
Accepting the request from the server.
Performing the add operation on the operands.
Accepted the request by using pipes .
----------------------------
revision 1.2
date: 2015/04/15 07:27:18;  author: root;  state: Exp;  lines: +1 -1
Performed the operation and also computed the result .
Worte back result to the server through pipes.
also used the kill()signal.
----------------------------
revision 1.1
date: 2015/04/15 07:22:18;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: subtractor.c,v
Working file: subtractor.c
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 processing client.
Accepting the request frm the server through pipes .
Performing sub operation on the operands.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 07:33:02;  author: root;  state: Exp;  lines: +0 -1
Performed the operation and also computed the result.
Wrote back result to the server through pipes.
Also used the kill()signal.
----------------------------
revision 1.1
date: 2015/04/15 07:32:09;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: multiplier.c,v
Working file: multiplier.c
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 processing client.
Accepting the request from the server through pipes.
Performing the mul operation on the operands .
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 07:39:55;  author: root;  state: Exp;  lines: +0 -1
Performed the result and computed the result.
Send back the result to the server through pipes .
Also used kill()signal.
----------------------------
revision 1.1
date: 2015/04/15 07:39:02;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: server.c,v
Working file: server.c
head: 1.2
branch:
locks: strict
	root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;	selected revisions: 2
description:
Accepting different different requests from the 3 different clients that are req_add(),req_sub(),req_mul().
Through pipes.
Created another pipe.
between server and 3 processing clients.
invoked the pro_client and passed all the 3 requests to the different different pro_clients.
----------------------------
revision 1.2	locked by: root;
date: 2015/04/15 07:13:32;  author: root;  state: Exp;  lines: +0 -1
Accepting the result from the pro_clients through pipe .
Sending back the result to the req_clients through pipe.
Also use the signals for synchronization.
./
----------------------------
revision 1.1
date: 2015/04/15 07:03:27;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

Successfully created simplest possible kernel module and registered device in kernel.

RCS file: header.h,v
Working file: header.h
head: 1.3
branch:
locks: strict
vineet: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
This is base header file for simplest kernel module.
included modules.h
included init.h
Added author, license and devise description.
.,
—————————-
revision 1.3 locked by: vineet;
date: 2015/04/24 05:42:14; author: vineet; state: Exp; lines: +0 -1
defined major number using extern storage class.
—————————-
revision 1.2
date: 2015/04/24 05:40:13; author: vineet; state: Exp; lines: +1 -0
Created macro for dev_name.
—————————-
revision 1.1
date: 2015/04/24 05:38:17; author: vineet; state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.3
branch:
locks: strict
vineet: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
This is the base file for initialization function.
created initialization function.
printed hello kernel using printk
—————————-
revision 1.3 locked by: vineet;
date: 2015/04/24 05:42:55; author: vineet; state: Exp; lines: +0 -1
printed major number using printk.
—————————-
revision 1.2
date: 2015/04/24 05:40:46; author: vineet; state: Exp; lines: +1 -0
registered device using register_chrdev.
—————————-
revision 1.1
date: 2015/04/24 05:38:17; author: vineet; state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.3
branch:
locks: strict
vineet: 1.3
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is base file for cleanup function.
created cleanup function.
printed exit message using prink
—————————-
revision 1.3 locked by: vineet;
date: 2015/04/24 05:43:12; author: vineet; state: Exp; lines: +0 -1
added major no. to unregister function.
—————————-
revision 1.2
date: 2015/04/24 05:41:10; author: vineet; state: Exp; lines: +1 -0
unregistered device using unregister_chrdev
—————————-
revision 1.1
date: 2015/04/24 05:38:17; author: vineet; state: Exp;
Initial revision
=============================================================================

Posted in Character Driver | Leave a comment

initialisation of driver

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
initializing the function
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 10:28:36;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
ending the function
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 10:28:40;  author: root;  state: Exp;
Initial revision
=============================================================================

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:
include header files
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 10:28:30;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

registeration of driver is done

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:
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 11:12:23;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
register the driver
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 11:12:15;  author: root;  state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.1
branch:
locks: strict
	root: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1;	selected revisions: 1
description:
unregister the driver
----------------------------
revision 1.1	locked by: root;
date: 2015/04/24 11:12:19;  author: root;  state: Exp;
Initial revision
=============================================================================
Posted in Uncategorized | Leave a comment

Initialisation & registration of driver is done

RCS file: header.h,v
Working file: header.h
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
this is basic header file
—————————-
revision 1.1
date: 2015/04/24 05:20:37; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: init.c,v
Working file: init.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is driver intialisation file
—————————-
revision 1.3
date: 2015/04/24 05:32:26; author: root; state: Exp; lines: +3 -3
register the driver
—————————-
revision 1.2
date: 2015/04/24 05:24:42; author: root; state: Exp; lines: +3 -3
intialize driver using __init func
—————————-
revision 1.1
date: 2015/04/24 05:20:49; author: root; state: Exp;
Initial revision
=============================================================================

RCS file: clean.c,v
Working file: clean.c
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
this is driver cleanup file
—————————-
revision 1.3
date: 2015/04/24 05:33:04; author: root; state: Exp; lines: +1 -1
unregister the driver
—————————-
revision 1.2
date: 2015/04/24 05:25:51; author: root; state: Exp; lines: +1 -1
cleanup the driver using __exit func
—————————-
revision 1.1
date: 2015/04/24 05:21:08; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Character Driver, Device Drivers | Leave a comment

connecting the server and client throw the socket….

4/22 07:57:28; author: root; state: Exp; lines: +2 -2
compute the size of stringRCS file: ./server_test.c,v
Working file: ./server_test.c
head: 1.5
branch:
locks: strict
root: 1.5
access list:
symbolic names:
keyword substitution: kv
total revisions: 5; selected revisions: 5
description:
declare the header.h
declare two character array of bufsize
and also declare three integer varible
—————————-
revision 1.5 locked by: root;
date: 2015/04/22 08:02:57; author: root; state: Exp; lines: +2 -2
give the fork call
for the reading and writing the data from clint side
—————————-
revision 1.4
date: 2015/04/22 08:00:01; author: root; state: Exp; lines: +2 -2
give bind call and listen call for queue
—————————-
revision 1.3
date: 2015/0
also assign the type of network
—————————-
revision 1.2
date: 2015/04/20 08:36:04; author: root; state: Exp; lines: +2 -2
create socket and check its file descriptor
—————————-
revision 1.1
date: 2015/04/20 08:35:07; author: root; state: Exp;
Initial revision
=============================================================================

Posted in Uncategorized | Leave a comment

Three different thread exclusively work to open, read and write operation.

RCS file: multi_thread.c,v
Working file: multi_thread.c
head: 1.1
branch:
locks: strict
vishal: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Three different thread is created to open a file read the data from the file and write on some other file exclusively.
—————————-
revision 1.1 locked by: vishal;
date: 2015/04/21 16:46:47; author: vishal; state: Exp;
Initial revision

Posted in Project 03: Client Server Communication using Linux and IPC, Project 6: Client Server using Inter Process Communication Mechanism, Uncategorized | Leave a comment