快裝置驅動程式之是記憶體模擬的磁碟支援格式化

2021-06-07 15:52:16 字數 1625 閱讀 8937

在塊裝置驅動程式分析之框架構建那一節裡面已經提到過

block_device_operations

這樣乙個結構體。顧名思義,它的作用就是來進行塊裝置的處理,對應的就是各種函式,但是並不對應塊裝置的讀寫處理函式,這是因為對塊裝置的讀寫在別的地方完成了,具體來說就是在request函式中被完成了,對於這個函式,我們今後會來分析的,現在先放一放。

在本節裡面我們要完成的功能是使塊裝置支援分割槽,對塊裝置的這種操作由函式

.getgeo來完成。這個函式是為一些沒有磁碟特性的塊裝置構造磁碟的一些屬性,**如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

static struct gendisk *ramblock_disk;

static request_queue_t *ramblock_queue;

static unsigned char *ramblock_buf;

static int major;

#define ramblock_size (1024*1024)

static define_spinlock(ramblock_lock);

static int ramblock_getgeo(struct block_device *bdev, struct hd_geometry *geo)

static struct block_device_operations ramblock_fops = ;

#define ramblock_size (1024*1024)

static void do_ramblock_request(request_queue_t * q)

else

end_request(req, 1); }

} static int ramblock_init(void)

static void ramblock_exit(void)

module_init(ramblock_init);

module_exit(ramblock_exit);

module_license("gpl");

測試:

(1) insmod ramblock.ko

(2) ls /dev/ramblock*   資訊如下:brw-rw----    1 0        0        254,   0 jan  1 02:26 /dev/ramblock

(3)分割槽:fdisk /dev/ramblock

輸入:m 可以檢視幫助資訊

輸入:n 用於建立新的分割槽

輸入:p   用於建立主分割槽

然後根據提示可以建立分割槽。

塊裝置驅動程式分析之記憶體模擬磁碟

include include include include include include include include include include include include include include include include include include includ...

塊裝置驅動之NAND FLASH驅動程式

一.框架總結 二.硬體原理 相比於nor flash。我們能夠清楚的看出引腳少了非常多,主要是輸入輸出引腳進行了復用。如今我說下各引腳的用途。a.ldata0 ldata7這8個引腳為輸入輸出引腳。命令 位址 資料的傳輸都是由這8個引腳實現的 引腳復用,節約引腳 b.rnb 此引腳用來判忙。由於命令...

基於記憶體對映的裝置驅動程式

通過新增核心模組實現乙個基於記憶體對映的雜項裝置驅動程式。拓展 該模組只實現了顯示記憶體對映區域資訊的功能,而且該資訊是固定 拓展部分實現了將當前程序在記憶體對映後的vma區域的資訊顯示出來。編譯時 make sudo insmod miscdev map.ko sudo chmod a rw de...