Basic conceptsBlock Devices (Blockdevice)---is a random access device with a certain structure, the reading and writing of this device is block -based, he uses buffer zone to hold temporary data, waiting for the condition to mature, from the cache once written to the device or from the device to read the buffer at once area.Character devices (Character device)---is a sequential data flow device in which read and write is performed by character , and these characters are continuously formed into
}};static struct Dm9000_plat_data Mini2440_dm9k_pdata = {The number of digits in the data line is 16 bits, and no e2prom is used. Flags = (Dm9000_platf_16bitonly | Dm9000_platf_no_eeprom),. dev_addr = {0x08,0x90,0x90,0x90,0x90,0x90},//mac address};static struct Platform_device Mini2440_device_eth = {. Name = "dm9000",//device name. id =-1,. num_resources = Array_size (Mini2440_dm9k_resource),. Resource = Mini2440_dm9k_resource,//Resources. Dev = {. Platform_data = mini2440_dm9k_pdata,//Private d
locks and semaphores take the form of "get lock-access critical section-release lock".*************************************************************************************************************** **********5. MutexThe mutex and the semaphore are basically the same. Not introduced.Summary: Concurrency and race are widespread, these mechanisms are a good way to solve the problem, interrupt masking is rarely used alone, atomic operations can only be done for integers, so the spin lock and signal
)definitionAmount of Completion:structcompletion com;2)Initialize:Init_completion (com);//If you feel this two-step trouble, you will be given a macro that defines and initializes the declare_completion (COM);3) WaitAmount of Completion:void__sched Wait_for_completion (structCompletion *x);//waiting for a completion to be awakenedint__sched wait_for_completion_interruptible (structCompletion *x);//interruptible wait_for_completionUnsignedLong__sched Wait_for_completion_timeout (structCompletion
kernel
unsigned long copy_to_user (void __user *to, const void * from, unsigned long count)
unsigned long copy_from_user (void *to, const void __user *from, unsigned long count);
Any function that accesses user space must be reentrant, must be able to execute concurrently with other driver functions, and must be in a state that can legally hibernate
Read method
If the return value is equal to the count parameter for passing the read
Linux Network DriverI would like to use this article to commemorate the past yearsI. PrefaceIn Linux, the network driver is also a big head, how to understand the network drive is as a Linux driver engineers must have the skills. But the same equipment, in different people's hands will have different effects, the reason is that the driver is good or not.Two. Devi
Activate the network card to see the network card status
Ifconfig eth0 up (NIC device name, eth0 for example)
Ifconfig-a
Mode two: Source code driver package installation method (Take Realtek rtl8168/8111 Nic as an example)
Download the source code package from the Realtek website, then the Linux system, create a directory, extract the source code package into this directory.
Mkdir/temp
Cd/t
ZotozoOctober 7
High_wayOctober 7
WangxinOctober 4
Font size: Big medium small blog Linux Device Driver Summary (6): 2. Share interrupt number ()
Category: 6 interruptions
Summary of Linux Device Drivers (6): 2. Share the interrupt number
Bytes
The previous section describes how to call the request_irq () interface to match the interrupt number with the inte
Release date:Updated on: 2013-02-27
Affected Systems:XenSource XenDescription:--------------------------------------------------------------------------------Bugtraq id: 57740CVE (CAN) ID: CVE-2013-0231Xen is an open-source Virtual Machine monitor developed by the University of Cambridge.
On Linux kernel 2.6.18 and 3.8, the pciback_enable_msi function of the Xen PCI backend Driver (drivers/xen/pciback/conf_
network card driver from the IBM official website, use USB stick and other tools to upload to Linux server, then compile
RPM-IVH bnx2-
Cd/root/rpmbuild
RPMBUILD-BB Specs/bnx2.spec
Install the compiled driver package
Cd/root/rpmbuild/rpms/x86_64
RPM-IVH bnx2-
After successful installation, the following path will be displayed:/lib/modules/
Copy the generated module files to the directory:/l
This example is for Android up-Reading Exploration (vol. 1): The Demo sample program included with the HAL and Driver Development book. are now pasted out for inspection.Terminal operations, commands that may be used:Insmond Word_count.kolsmod | grep Word_count to see if the driver was successfully installed Rmmod WORD_COUNTDMESG | grep word_cout | Tail-n 2 View log information with Linux driver output Cat/var/log/syslong | grep Word_count | Tail-n 2m
will have to also." ”3, see example Drive, Linux kernel driver, generally have a relatively simple example code, specifically, see the first step of the TXT document. With this simple example code, we further clarify how the drive works.4, good, ready to work to complete, here should formally start. Write it yourself? No, or secretly lazy, online to find ready-made, there is just your chip driver, really lucky, direct use, of course, often can not be
based on the Sbull program in the Linux device driver book to Linux Block device driver summary analysis.Before you begin, learn about the core data structures in this block device:struct Sbull_dev {int size; /* Device Size in sectors */U8 *data; /* The data array */Short users; /* How many users * *Short Media_change; /* Flag a media change? */spinlock_t lock; /* for mutual exclusion */struct Request_queue
(struct work_struct *work, void (*function) (void *), void *data);
int queue_work (struct workqueue_struct *queue, struct work_struct *work);
int queue_delayed_work (struct workqueue_struct *queue, struct work_struct *work, unsigned long delay);
The return value of the above two functions is nonzero means that the given work_struct structure is already waiting in the queue
int cancel_delayed_work (struct work_struct *work);
The entry
Transferred from: http://blog.chinaunix.net/uid-15724196-id-128140.html2nd Chapter+---------------------------------------------------+| Write a block device driver |+---------------------------------------------------+| Zhao Lei || Email[email protected]|+---------------------------------------------------+| The copyright of the article belongs to the original author. || You are free to reprint this article, but the original copyright information must be retained.| For commercial use, be sure t
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.