struct semaphore stsem //lunux 中定義乙個訊號量
sema_init(&stsem, n) //初始化乙個訊號量; cnt > 0 表示同時被cnt個人使用;cnt=0用於同步,需要+1之後才能被使用。
up(&stsem) //釋放資源,訊號量的值cnt+1
down(&stsem) //獲取訊號量,如果訊號量的cnt>0,則獲取成功,獲取成功後cnt-1。如果獲取訊號量失敗則掛起程序。
down_trylock //和down大致功能一直,區別是down_trylock獲取是被不會掛起,所以根據這個介面的返回值,要自己定義處理措施。
wait_queue_head_t stwaitq //定義乙個等待佇列
init_waitqueue_head(&stwaitq) //初始這個待佇列
wake_up(stwaitq) //喚醒
wait_event_timeout(&stwaitq,flag,time) //獲取訊息佇列,當flag=1是獲取成功;當flag=0時,獲取失敗,程序阻塞,進過time時間後重新喚醒。
poll_wait(,&stwaitq,) //這個函式在.poll中使用,和wait_event_timeout差不多的效果 都需要被喚醒
gstmemcb //共享記憶體控制塊
strmemdev //控制塊.裝置
stsem //共享記憶體訊號量
Linux GPIO驅動 驅動框架概述
gpio是嵌入式開發中最常見的介面,之前自己就有寫過小的gpio驅動,提供ioctl介面給使用者空間操作。但直到最近才發現linux自身就有完善的gpio驅動框架,並且通過sysfs向使用者空間提供操作介面。linux的gpio驅動框架層次及資料結構如下 最上層是用來向向使用者空間提供介面,使用者可...
驅動基本框架
include ring0.h 驅動在解除安裝的時候,經過這裡,我們可以在這裡釋放一些資源。斷開通話 void driverunload pdriver object driverobject 函式派遣的irp,如果我們不需要用到這裡通訊。ntstatus iodispatch pdevice ob...
Power Supply驅動框架
power supply驅動框架和具體驅動 power supply驅動程式用於讓使用者空間可以讀取系統中的供電裝置資訊。供電裝置可以是直流電源 ac usb或者電池等。17.5.1 power supply驅動框架 power supply驅動程式與使用者空間的介面是sys檔案系統,該型別驅動程式...