EmbLogic's Blog

Charecter Driver logfile

RCS file: ./basicregister.c,v
Working file: basicregister.c
head: 1.32
branch:
locks: strict
sampath: 1.22
sampath: 1.32
access list:
symbolic names:
keyword substitution: kv
total revisions: 32; selected revisions: 32
description:
Base program for driver
Registering the driver into the kernel using register_chrdev
inserting the module using insmod
unregistering using unregister_chrdev
removing the module using rmmod
—————————-
revision 1.32 locked by: sampath;
date: 2013/07/31 13:23:52; author: sampath; state: Exp; lines: +84 -22
Implementation of IOCTL
Able to map ioctl call mapping done through file_operations
calling IOCTL from application for reseting the values using SCULL_IOC_RESET
Able to reset to initial values
calling IOCTL call from application for changing the quantum size using SCULL_IOC_SQUANTUM
Able to chage quantum value and further write and read operations are performed accordind to the new quantum size
—————————-
revision 1.31
date: 2013/07/28 12:22:25; author: sampath; state: Exp; lines: +43 -2
Implementation of proc
calling create_proc_read_entry
mapping function which contain sculldev Information device name,major number allocated,quantum size, qset size, no of bytes written and read by application
Able to access from proc directory
—————————-
revision 1.30
date: 2013/07/28 06:42:14; author: sampath; state: Exp; lines: +16 -3
Implementation of spinlock for synchronization
initialized spin_lock_init and locking using spin_lock in open
unlocking at the end of read using spin_unlock
Also tested synchronization using spin_lock_irq and spin_unlock_irq
spin_lock_irqsave and spin_lock_irqrestore
synchronizing using spinlock and completion
—————————-
revision 1.29
date: 2013/07/27 19:26:57; author: sampath; state: Exp; lines: +16 -8
Initialized sema_init and init_completion in open within if condition if(opened in write only mode) as the application level has calling open twice once in write and second in read only mode
removed declaring sem_post in close and declared at the end of read so as to allow another application to open afetr first application complete reading operation
note: care should be taken as open and close are called twice from same application
—————————-
revision 1.28
date: 2013/07/25 06:49:48; author: sampath; state: Exp; lines: +14 -6
Implemented completion
declared init_completion in open
wait_for_completion in read
completion in write
—————————-
revision 1.27
date: 2013/07/24 15:45:58; author: sampath; state: Exp; lines: +51 -10
Corrected memory allocation error for scull_Qset
Initialised scull_dev[lv]->scull_Qset=NULL for all lv values
Able to perform trimming operation correctly
Implementation of sema_init is done
Able to synchronize correctly for multi applications
Tested for 3 applications
—————————-
revision 1.26
date: 2013/07/22 14:05:23; author: sampath; state: Exp; lines: +7 -1
done with implementation of semaphores sema_init
using down and up
able to synchronize correctly tested running 3 applications at once
—————————-
revision 1.25
date: 2013/07/22 12:27:19; author: sampath; state: Exp; lines: +76 -8
Scull trim Implementation done if application opens in write only mode
sucessfully trimming required no of quantum upto required no of bytes
—————————-
revision 1.24
date: 2013/07/19 07:23:36; author: sampath; state: Exp; lines: +35 -75
Sucessfully tested driver using 3 multithreaded application one at a time
Able to write and read data sucessfully
Trying to synchronize multiple application running at ones
—————————-
revision 1.23
date: 2013/07/17 05:19:21; author: sampath; state: Exp; lines: +75 -28
Defined llseek function mapped from function call
Able to read data from application according to lseek offset in application
done with read operation using lseek
—————————-
revision 1.22 locked by: sampath;
date: 2013/07/13 11:04:51; author: sampath; state: Exp; lines: +15 -54
done with read and write operations for multiple scullqsets
—————————-
revision 1.21
date: 2013/07/13 10:43:24; author: sampath; state: Exp; lines: +1 -1
added ubuff+tnobsr in copy_to_user for cursor position
able to read data at the application
—————————-
revision 1.20
date: 2013/07/13 10:17:59; author: sampath; state: Exp; lines: +35 -26
sucessfully Implemented reading operation for 98 bytes of data
able to read tnobsr in application
—————————-
revision 1.19
date: 2013/07/13 07:17:49; author: sampath; state: Exp; lines: +20 -13
new
—————————-
revision 1.18
date: 2013/07/13 04:52:08; author: sampath; state: Exp; lines: +49 -36
Able to read 63 bytes of data from kernel to user buffer.
verification done by returning tnobsr to user application.
—————————-
revision 1.17
date: 2013/07/12 08:12:41; author: sampath; state: Exp; lines: +80 -11
Implemented read operation trying to read from kernel to user buffer using copy_to_user
Able to read only 8bytes of data
tryin g to implement for complete read operation for reading 100bytes
—————————-
revision 1.16
date: 2013/07/11 20:56:23; author: sampath; state: Exp; lines: +5 -10
Able to return 0 from read operation of kernel buffer to application
—————————-
revision 1.15
date: 2013/07/11 20:10:35; author: sampath; state: Exp; lines: +34 -25
Sucessfully implemented for multiple qsets
Tested writing operation for 100 bytes of data
no of scull qset are 2 and no of quantums created are 13
—————————-
revision 1.14
date: 2013/07/11 11:12:47; author: sampath; state: Exp; lines: +33 -10
sucessfully implemented write operation for multiple quantums
able to automate correct no of quantums
—————————-
revision 1.13
date: 2013/07/11 07:57:21; author: sampath; state: Exp; lines: +24 -7
Sucessfully implemented write operation
using kernel facility copy_from_user
testing for only 4bytes of data for which one quantum is enough
—————————-
revision 1.12
date: 2013/07/10 11:43:26; author: sampath; state: Exp; lines: +75 -21
Implementation of scullqset, qset and quantum done
automated number of scullqsets and quantums wrt the application
—————————-
revision 1.11
date: 2013/07/10 03:53:40; author: sampath; state: Exp; lines: +120 -34
Implemeenting write operation
fetched private->data to sculldev
Implemented auto calculation for number of scull_qset and number of quantums
allocated memory for scull_qset qset and quantum calling their functions separately and trying to link them
—————————-
revision 1.10
date: 2013/07/09 07:28:58; author: sampath; state: Exp; lines: +22 -0
Implemented basic write and read operations
—————————-
revision 1.9
date: 2013/07/08 07:27:12; author: sampath; state: Exp; lines: +39 -41
Implementation of scull_trim for future use
—————————-
revision 1.8
date: 2013/07/05 04:53:38; author: sampath; state: Exp; lines: +1 -1
Initialised cdev_del after completing the usage of cdev
—————————-
revision 1.7
date: 2013/07/05 04:51:02; author: sampath; state: Exp; lines: +9 -8
Added ret_cdev to check the return value of cdev_add
—————————-
revision 1.6
date: 2013/07/04 13:07:35; author: sampath; state: Exp; lines: +17 -7
Initialising multiple devices
assining dev using MKDEV
—————————-
revision 1.5
date: 2013/07/04 11:03:31; author: sampath; state: Exp; lines: +23 -10
memory mapping through container_of
pointing scull through inode
—————————-
revision 1.4
date: 2013/07/03 10:49:38; author: sampath; state: Exp; lines: +19 -2
Assigning values to members of sculldev in scullinit and printing
—————————-
revision 1.3
date: 2013/07/02 13:40:19; author: sampath; state: Exp; lines: +17 -2
Initialised function for scull_open
and scull close
calling open function from application
communicating from user spaceapplication to kernelspace driver
—————————-
revision 1.2
date: 2013/07/02 10:34:24; author: sampath; state: Exp; lines: +44 -4
Implemented struct scull
registering the device in device table
Initialized cdev_init
pointing to dev through cdev
—————————-
revision 1.1
date: 2013/07/01 07:16:06; author: sampath; state: Exp;
Initial revision
=============================================================================

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>