動態記憶體分配:
(1)kmalloc(size_t size , int flag)和kfree(const void *addr)
分配核心內部的動態記憶體,記憶體分配速度快,但是大小限制在
32*page_size(即32*4k)以內
(2)vmalloc(unsigned long size)和vfree(const void *addr)
分配核心內部連續的記憶體空間,此函式分配的是實體地址,並且沒有限
制可分配的記憶體大小,若沒有可分配的記憶體,程序就會進入休眠狀態,
因此,此函式不能用在中斷服務函式或中斷禁止狀態
(3)__get_free_pages(unsigned int gfp_mask,unsigned int order)
free_pages(unsigned long addr,unsigned int order)
gfp_mask:使用kmalloc中使用的引數
order:指定次數= 2 * page_size <= 32*page_size
此函式是以記憶體頁為單位的分配函式
記憶體池:主要用在塊裝置驅動程式上
(1)mempool_create()函式和mempool_destroy()函式
mempool_create():生成記憶體池管理結構體的記憶體
mempool_destroy():取消記憶體池管理物件
(2)mempool_alloc()和mempool_free()
mempool_alloc():從記憶體池的管理結構體pool中,分配記憶體物件
mempool_free():向記憶體池釋放已分配的記憶體物件
5 Linux 裝置檔名
ide 硬碟 dev hd a d scs sata usb 硬碟 dev sd a p u盤 dev sd a p 與sata相同 軟碟機 dev df 0 1 印表機 25針 dev lp 0 2 usb dev usb lp 0 15 滑鼠 usb dev usb mouse 0 15 ps2...
5 Linux時間程式設計
include time t time time t calptr 返回距計算機元年的秒數 define time t long include struct tm gmtime const time t calptr 獲取世界標準時間utc struct tm include struct tm ...
Linux驅動開發之靜態申請裝置號
一 1 標頭檔案 include linux fs.h 2 api 靜態申請裝置號 int register chrdev region dev t,unsigned,const char 動態分配裝置號 int alloc chrdev region dev t unsigned,unsigned...