EmbLogic's Blog

Category Archives: Device Drivers

project 05==character driver

things to be kept in mind while doing “Character Driver” 1>Be very patient as you will get different errors with silly solutions. 2>As you are dealing with multiple files like in my case files are header.h,declaration.h,init.c,clean.c,fops.h,prototypes.h,devopen.c, devrelease.c,devwrite.c…BE CAREFUL about the … Continue reading

Posted in Character Driver | Leave a comment

Character_Driver

RCS file: header.h,v Working file: header.h head: 1.3 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 3;    selected revisions: 3 description: include header files that are needed in this program struct sculldev structure is included here … Continue reading

Posted in Character Driver | Leave a comment

Character driver driver

head 1.32; access; symbols; locks; strict; comment @ * @; 1.32 date 2014.05.06.06.20.21; author root; state Exp; branches; next 1.31; 1.31 date 2014.05.04.09.46.22; author root; state Exp; branches; next 1.30; 1.30 date 2014.05.04.08.15.17; author root; state Exp; branches; next 1.29; … Continue reading

Posted in Character Driver | Leave a comment

character driver proc with kernel 3.12

Add two header proc_fs.h, seq_file.h Initialize the proc by proc_create() and remove by remove_proc_entry() Map the file operation in structure write open proc function and give entry

Posted in Character Driver | Leave a comment

Linux /proc File System

  /proc is very special in that it is a virtual filesystem. It’s sometimes referred to as a process information pseudo-file system. It doesn’t contain ‘real’ files but runtime system information (e.g. system memory, devices mounted, hardware configuration, etc).Inside the … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code to show how to implement a semaphore(a type of locking technique) in scull to synchronize same operations issued by multiple applications.

Semaphore in Scull Scenario :Writer application must execute before the reader application. There are two applications which have to perform several operations on the node 1. Application 1: Application 1 is a multithreaded application in which open() , write() and … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code showing the difference between *loff and filep->f_pos when multiple write() system calls are issued by the application.

  Difference between loff_t *loff and filep->f_pos: When an application issues write() system call , chardev_write() function is called because it is mapped to (*write) function pointer.chardev_write() function contains 4 arguments namely: 1. A pointer to the struct file structure. … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code to show how to perform read operation in multiple qset arrays.

RCS file: readf.c,v Working file: readf.c head: 1.18 branch: locks: strict root: 1.18 access list: symbolic names: keyword substitution: kv total revisions: 18;    selected revisions: 18 description: chardev_read() function reside here which is responsible for performing the read operation. —————————- … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code to show how to perform read operation in multiple quantums.

RCS file: readf.c,v Working file: readf.c head: 1.14 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 14;    selected revisions: 14 description: chardev_read() function reside here which is responsible for performing the read operation. —————————- revision 1.14 … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code showing how to read data in a single quantum using copy_to_user() function.

RCS file: readf.c,v Working file: readf.c head: 1.11 branch: locks: strict root: 1.11 access list: symbolic names: keyword substitution: kv total revisions: 11;    selected revisions: 11 description: chardev_read() function is implemented here in this file. —————————- revision 1.11    locked by: … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code showing how to write data in multiple quantums from a user application.

RCS file: writef.c,v Working file: writef.c head: 1.19 branch: locks: strict root: 1.19 access list: symbolic names: keyword substitution: kv total revisions: 19;    selected revisions: 19 description: chardev_write() function reside here. —————————- revision 1.19    locked by: root; date: 2014/03/03 19:00:50;  … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code showing how to write data in multiple qset arrays from a user application.

RCS file: writef.c,v Working file: writef.c head: 1.37 branch: locks: strict root: 1.37 access list: symbolic names: keyword substitution: kv total revisions: 37;    selected revisions: 37 description: chardev_write() function reside here. —————————- revision 1.37    locked by: root; date: 2014/03/04 18:55:04;  … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Memory-Mapped I/O v/s Port-Mapped I/O

Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) (which is also called isolated I/O) are two complementary methods of performing input/output between the CPU and peripheral devices in a computer. An alternative approach is using dedicated I/O processors—commonly known as channels … Continue reading

Posted in Parallel Port Driver | Leave a comment

Module code to show how to perform “trim” operation by calling chardev_trim() before the device is opened for writing.

RCS file: openf.c,v Working file: openf.c head: 1.14 branch: locks: strict root: 1.14 access list: symbolic names: keyword substitution: kv total revisions: 14;    selected revisions: 14 description: The functionality of chardev_open() is implemented here inside this file.Whenever the application calls … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment

Module code to show how to write data in a single quantum using copy_from_user() function.

RCS file: writef.c,v Working file: writef.c head: 1.15 branch: locks: strict root: 1.15 access list: symbolic names: keyword substitution: kv total revisions: 15;    selected revisions: 15 description: chardev_write() function reside here. —————————- revision 1.15    locked by: root; date: 2014/03/01 11:19:07;  … Continue reading

Posted in Character Driver, Device Drivers | Leave a comment